催化剂建模法

核心观点

催化剂建模法把交互和角色显式加入对象模型,并用 uses 关系说明流程或功能如何使用领域对象,使原本隐藏在静态数据结构中的业务维度可以直接被业务方阅读。

原味对象模型可以说明有哪些对象及其关系,却常把对象如何在流程、功能和交互中发挥作用隐藏在抽象之后。催化剂建模法把交互视为模型中的一等概念:交互可以代表业务流程、用例或系统功能,角色说明参与方式,uses 关系则把交互与所需对象连接起来。

催化剂建模(概念关系)

Link to original

这种结构相当于用角色和交互给对象模型添加业务标签。业务方因而能够检查某项流程由哪些对象支撑、当前模型是否缺少必要信息,并与技术方共同讨论功能范围、修改风险和实现成本。共享词汇表只需要保存模型中的名称,其余业务逻辑由模型关系本身表达。

使用方式

  1. 明确需要解释的业务流程、用例或功能,将其表示为交互。
  2. 找出参与交互的角色,以及角色在该交互中的责任。
  3. uses 关系连接交互、角色与领域对象。
  4. 让业务方沿交互阅读模型,检查对象和关系能否支撑流程。
  5. 根据反馈补充或修正领域概念,使模型本身成为统一语言

适用边界

催化剂建模法简单直接,适合流程较简单的项目或复杂项目的早期探索。流程步骤增多后,单个交互提供的粒度可能过粗;同时,交互未必能在当前架构中找到稳定的软件组件与之对应,容易出现模型信息有价值、实现映射却含糊的情况。

角色—目标—实体法把角色与目标保留在模型之外,作为发现实体的指导,可视为催化剂建模法的轻量变体。需要以更细粒度还原复杂过程时,事件建模法会把交互展开为事件序列。