在此活动中,重点是创建至少一个显示每个服务组件的功能组件与技术组件之间关系的类图。 标准的 UML 建模适用于此阶段。
在模式的使用方面,最好以可扩展且开放更改的方式来构造结果对象图。如果期望进行大幅度的更改,建议在此阶段执行可变性分析。
如先前的任务中所述,在对更改进行设计,或预计由于将来的业务更改而会对 IT 系统的设计和结构产生重大影响时,明智的做法是采用可变性分析技术。这些技术使用设计模式重构共同点并将变化外部化。可将早期发现的共同点和变化作为起点,然后通过使用公共设计模式(例如策略、状态[i]、规则对象
[ii] 和类型对象等)加以扩充。
在详细设计过程中进行的分析确定了共同点并重点构建可拔插变化,并包含了六大原则,这些原则有助于从较少的软件系统变化方面分离出变化,并隔离和封装这些变化:
-
将领域中不断变化的方面与不变的方面区分开来,并对变化的方面进行建模:对不断增加的变化进行确定、区分、封装和外部化。
-
为每个变化点创建类型层次结构。
-
向每种变化类型指定规则类型。
-
实施三个级别的抽象;使用聚集继承元方式。
-
从高于对象的复用级别开始,并在每个复用级别构建资产;在变化点周围构建小框架。通常而言,每个框架的类不应超过 7+-2 个。
-
每个复用元素都具有自己的行为。将行为外部化为可读取到应用程序中的可配置数据以允许软配线。
[i] Erich
Gamma, Richard
Helm, Ralph
Johnson, John
Vlissides, Design Patterns, Addision-Wesley 1994.
[ii] Arsanjani, A., Rule Object: A Pattern Language for Flexible Modeling and Construction of Business Rules,
Washington University Technical Report number: wucs-00-29, Proceedings of the Pattern Languages of Program
Design, 2000.
|