- 通常,在此示例中,此模式是关于不同的利益相关者的,但是在某些情况下,两个目标都具有相同的利益相关者。
我使用“偏差扩展”一词来表示扩展用例的目标与扩展用例的目标有所不同(尽管不一致),尽管扩展用例尚不清楚。
- “偏差”扩展用例的目标也可以说是“垂直于”扩展用例目标的,即“跨越”该目标(参见[1])。
- 在下图中,通过以直角绘制两个用例并使用<<deviation>> stereotype.
关于下图,该图基于[2]中Ivar Jacobson的示例:
- 呼叫处理用例允许舞会森林拨打电话。用例从舞会森林将接收器提起时开始(示例始于1979年)。
- 有条件的“流量记录”用例会计算正在拨打的电话,但仅在必须记录流量的情况下。
换句话说,可以计算一个呼叫,但是此行为对于完成“呼叫处理”用例而言不是必需的。
在模式4之后提供了有关此模式的主要观察结果。
模式4:舞会森林目标=用例目标+扩充扩展用例侧目标
在这种模式下,初始用例追求了更大舞会森林目标的一部分,而自身并不为人所知的是,扩展用例又扩展了该用例,该用例代表了更大舞会森林目标的另一部分。
- 这种模式通常是关于两个目标都有相同利益相关者的情况。
我使用“扩展扩展”一词来表示扩展用例的目标扩大了(扩展到)扩展用例的目标,尽管扩展用例尚不清楚。
- “扩展”扩展用例的目标也可以说与扩展用例的目标“线性”,即它与该目标“一致”。
- 在下一个图中,通过水平对齐两个用例并使用<<augmentation>> stereotype.
关于下图(i):
- Bonus Employee用例允许舞会森林为雇员指定一次性奖金。用例使舞会森林能够提供员工的ID,在必要时进行更正,提供奖金金额和说明以及完成或取消交易。
- 条件验证员工ID用例为舞会森林提供了所提供员工ID的员工名称。
换句话说,舞会森林可以选择验证员工ID,但是此行为对于完成“奖励员工”用例而言不是必需的。
On patterns 3 和 4
下列有关模式3和模式4的观察通常最终适用于扩展用例构造。
总而言之,扩展用例始终代表扩展用例目标的附带目标(前者未嵌套在后者中)。
结论
这四种模式(请参见第1部分的前两个部分)是由“分离关注点”产生的,在这种情况下,这需要识别以下两者之间的区别:
- 舞会森林目标与用例目标;
- 舞会森林目标与幕后利益相关者目标;
- 子目标与副目标;
- Deviation extension vs. 增强 extension.
偏差扩展用例VS。扩展扩展用例
为了与文章的主题保持一致,本节比较并对比了上面介绍的“偏差”和“扩展”扩展用例的概念。
未完待续
第3部分比较并对比了几对用例模型元素,并探讨了是否可以以包含,扩展和泛化用例的方式实例化用例。
不要忘记在下面留下您的评论。
注意
(i)在[1.2]中添加的注释引入了具有扩展用例“编辑文档”和扩展用例“检查拼写”的文字处理应用程序示例。尽管从原则上讲,这可以用作“扩展”扩展的示例,但出于以下原因,此处还是有意避免使用。
- 我怀疑使用用例模型来代表文字处理应用程序是一个好主意,因为用例虽然适合于建模顺序流程,但对于建模像字处理应用程序这样的事件驱动流程而言似乎并不理想。 (不要与[4]中详细介绍的顺序过程的松散/事件驱动耦合混淆)。
- 在预定义的顺序过程中标记扩展点很简单,但是在事件驱动的过程中这样做是非常不可能的,因为舞会森林没有必须采取的预定步骤顺序。
参考资料
[1.1] 威廉·范·加伦, 挖掘扩展用例,第1部分,2012年7月10日。
[1.2]威廉·范·加伦(Willem Van Galen), 挖掘扩展用例,第2部分,2012年7月24日。
[1.3]威廉·范·加伦(Willem Van Galen), 挖掘扩展用例,第3部分,2013年3月12日。
[2] Ivar Jacobson,用例和方面–无缝协同工作,对象技术杂志,第1卷。 2,第4号,2003年7月至8月。
[3]对象管理组(OMG),OMG统一建模语言TM(OMG UML),上层结构,版本2.4.1。
[4] 威廉·范·加伦, 建模松耦合的用例,2012年4月30日。