如何确定是包含关系?
包含关系表示了两个用例是部分和整体的关系。也就是说,被包含的用例是整个动作环节中不可缺少的一环, 缺少了这一环就无法完成整个动作。使用包含关系通常用来:
1 “抽象出”不同用例之间的共同部分,提高系统建模的抽象程度。
2 表示一个动作的几个分支,而这几个分支共同完成基用例。
要 注意的是,包含关系的用例是不可拆分的,也就是说,基用例离开了子用例就无法完成整个动作。可以根据这个特点把包含关系和扩展关系轻松区别开来。
如何确定是扩展关系?
扩展关系表示子用例是基用例动作的“例 外”情况,或者分支情况。或者说,动作到基用例是可以结束的,但是在不同的条件下,也可以发生子用例描述的另外几种动作,比如下面的用例图:
扩 展关系的明显特征是,子用例并不总是发生的,或者说子用例的发生是有条件的,只有在特定条件下才能发生子用例。如果去掉子用例,我们照样可以得到一个完整 的结果,从这一点可以轻松把扩展关系和包含关系区别开来。
如何确定是泛化关系?
掌握下面几个原则:
1 泛化是一般到特殊的关系,也就意味着父用例是不能独立完成一个任务的,只有继承下来的子用例才能独立完成一个任务。泛化一般表示在不同的情况下(比如不同 权限、不同场景等)一个问题的不同处理方式。
如何区 分泛化关系和包含关系?
泛化关系和包含关系都表示不可分割的关联关系(扩展关系是可分割的),但是区别还是明显的:
泛 化关系下的子用例都有共同的特点,而包含关系下的子用例没有共同的特点。泛化表示一般和特殊的关系,包含表示整体和部分的关系。