记得之前一直想总结总结用例图中的关系,在软考里经常出现!当时看看之前的总结,看看解释挺好区分的。今天看了看网上的资料。解释的都很详细。下面是我做题的总结,只是针对考试,离我们学习还有点距离!
用例之间的3种关系:包含(include)概括(generalize)和扩展(entend)
如果多个用例中都含有相同的事件流,那么可以将其抽象出来放在一个单独的用例中,其他用例都可以通过包含(include)这个用例来使用其中的事件流。包含关系可以避免在多个用例的描述中重复拷贝相同事件流。
概括关系是子用例继承父用例的行为,而子用例本身还可以增加新的行为或重置父类的某些行为。这种关系与面向对象程序设计中的继承很类似。
一个用例(基础用例,base use case)中加入一些新的行为后构成了另外一个用例(扩展用例,extending use case)那么这两个用例之间的关系就是扩展关系。扩展关系与概括关系有相似之处,但是比概括关系更加严格。基础用例必须声明特定的扩展点,而扩展用例只能在这些扩展点上添加新行为。
包含关系和扩展关系的区别在于,抽象用例中的事件流一定要插入到基本用例中去,并且插入点只有一个,通常抽象用例不能脱离基本用例而单独存在。扩展用例的事件流往往可以抽象为基本用例的备选事件流,在扩展关系中,可以根据一定的条件来决定是否将扩展用例的事件流插入到基本用例的事件流中,并且插入点可以有多个。
extend:如果可以从此用例的执行中,在需要时转向执行另一个用例,执行完返回之前的用例继续执行,用例间存在extend关系。
这些总结的观点有点窄,不妨碍我们作为判断的思考点。其他详细解释:用例图中的关系说明。大多数的时候我们看几张图就明白了。下面是几张图!