在软考复习下午题的时候,涉及UML图时会有一个知识点就是用例图中包含、扩展和泛化的区别。这里我们就来总结一下。
1、包含<<include>>
包含是指当多个用例中存在相同的事件流时,可以把这些公共事件流抽象成公共用例,这个公共用例称之为抽象用例(跟类的概念有点相像,类是多个对象的抽象定义),而原始用例称为基础用例,基础用例与抽象用例之间就是包含关系。但是值得注意的是,对于包含关系而言,基础用例是抽象用例执行中不可缺少的一部分,基础用例一般不单独存在且基础用例不知道抽象用例的存在而抽象用例知道基础用例的存在。包含关系是箭头从抽象用例指向基础用例(也就是从父类指向子类)。
2、扩展<<extend>>
如果一个用例明显地混合了两种或两种以上不同的场景,可以将这个用例分为一个基础用例和一个扩展用例。扩展关系用<<extend>>关系表示,箭头指向基本用例(也就是从子类指向父类)。与此同时,扩展用例是基础用例在某些特定条件下触发产生的,扩展用例不是基础用例必须存在的部分,扩展用例可以单独存在,扩展用例知道基础用例的存在而基础用例不知道基础用例的存在。
3、泛化<<>generalization>>
泛化关系是一种继承关系,子用例将继承基用例的所有行为,也就是任何使用基用例的地方都可以使用子用例来代替。我平时是这样记住这个关系的,就是子类从父类中继承,父类就是子类的泛化。因为泛化和继承本就是一对反关系。泛化关系在用例图中用空心箭头表示,箭头方向从子用例指向基用例。
UML用例图中的三种关系,include,extend和generalization,尤其是包含和扩展,一定要分清它们二者的区别,这对我们掌握这部分的内容是很有帮助的。
UML用例图中包含、扩展和泛化的区别,布布扣,bubuko.com
原文地址:http://blog.csdn.net/gaoying_blogs/article/details/26132665