【UML】用例图中<<extend>>与<<include>>的区别

<<extend>>与<<include>>

<<include>> 关系允许将被包含用例中的公共行为分解出来。

<<extend>> 关系通过在特定的扩展点激活另一个用例来扩展一个用例的行为,从而提供了一种可控的扩展形式。

<<include>><<extend>> 关系的不同点在于“被包含”用例对“激活”用例的完成来说是必需的。

实例分析

在这里插入图片描述

上图是一个大学注册系统的高层用例图,该模型包含了4个参与者4个用例。每一个用例由一个参与者启动,是一个完整的、外部可见的和正交的功能。除了 Student 以外,所有的参与者都是启动者。Student 首先获取考试结果和注册指导,然后才能输入和验证下学期的学习计划。
用例 Provide examination results 可以 <<extend>> 用例 Provide enrolment instructions,但前者并不总是扩展后者。例如,对新生来说,考试结果还是未知的。这就是用 <<extend>> 构建扩展型,而不是用 <<include>> 来为这个关系建模的原因。
从用例 Enter program of study 到用例 Validate program of study 建立了 <<include>> 关系,这个 <<include>> 关系表明前者总是包含后者,每当输入学习计划时,都要验证是否存在时间冲突和特殊的批准等。

发布了719 篇原创文章 · 获赞 1594 · 访问量 75万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/105197483