用例图(Use Case Diagram)是从用户的角度描述系统的功能,并指出各功能的操作者,主要作用有3个:获取需求、指导测试、在整个过程中的其他工作流中期指导作用。用例元素包括参与者和用例,用例间的关系主要是:继承关系、扩展关系和包含关系,这里比较难区分的的是扩展关系和包含关系,比较容易混淆,分析整理一下。
【知识点】
扩展关系(Extend):当某个新用例在原来的用例基础上增加了新的步骤序列,则原来用例被称为基用例,这种关系称为扩展关系,可以这样理解这里的基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能,只有当扩展点被激活时,子用例才会被执行。由子用例指向基用例,比如说充值金额查询用例中有导出Excel子用例,离开子用例不影响充值金额查询的功能,这就是扩展关系。
包含关系(include):几个用例可以提取他们共用的用例作为子用例,使其成为自己行为的一部分,因为子用例被提出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。由基用例指向子用例,比如几个用例都要用到登录子用例,登录作为子用例没有它的参与,其他用例也无法执行,这就是包含关系。
比较:容易混淆的原因在于不理解扩展和包含的含义,所谓扩展是从基用例的基础上扩展出新的功能(子用例),子用例不影响基用例,基用例本身是完整的,没有子用例的参与也可以完成自己的功能,而包含关系是提取出来的用例是基用例的一部分基用例和子用例必须一起使用才完整。二者的关键在于离开子用例,基用例是否可以完成一个完整的功能。
如图:
【小结】
这两种关系开始一直不太理解,从网上找了一些解释,但是越看越糊涂。在师傅和小伙伴儿的点播下明了一些了,这种东西还是要自己理解,希望某天可以真正的顿悟吧!