软考中涉及扩展与包括关系的辨认,先不说考试的事,扩展与包括关系是UML中非经常见、非常基础的一种关系,然而我发现非常多同学都特别easy混淆,甚至软考真题中都存在题目和答案有待商榷的地方。此篇博客实属楼主匆忙而著,文章简明、短小,意解各位备考童鞋扩展与包括之困惑……
扩展:
《extend》
A—————>B(A扩展出B)
B作为扩展用例,A是基本用例,该表示方法表明向基本用例中的某个扩展点插入扩展用例。严格来说,扩展用例在用例模型中。通过分析业务抽象出关键的可选核心业务而形成。
包括:
《include》
A—————>B(A包括于B)
B作为基本用例,A是包括用例,该表示方法表明在运行基本用例的用例实例过程中必须运行包括用例。
与扩展用例一样。包括用例也用在用例模型中,通过分析业务抽象出关键的必选核心业务而形成。包括用例是被封装的,它代表可在各种不同基本用例中复用的行为。
扩展:
与包括关系不同,扩展关系是可选的。而没必要的,即使没有扩展用例。基本用例也是完整的;假设没有基本用例。扩展用例是不能单独存在的;假设有多个扩展用例,同一时间用例实例也仅仅会使用当中一个。
包括:
与扩展用例不同,包括用例是必需的,而不是可选的。假设没有包括用例,基本用例是不完整的。
使用扩展关系可能基于下面理由:
- 表明用例的某一部分是可选的系统行为,这就把可选行为与必选行为分开来了。
- 表明仅仅在特定条件下才运行。
- 表明有些行为能够基本用例的扩展点插入,但要看详细运行基本用例时与角色进行的交互。
使用包括用例可能基于下面理由:
- 从基本用例中分解出这种行为:基本用例依赖于运行包括用例所得的结果。
- 包括用例是被分解出来的、多个用例共同拥有的行为。