UML——用例图
用例图中由四个部分组成:角色,关系,用例以及系统。
拿网站系统为例:
角色:游客,注册用户,管理员等;
关系:包含(include),扩展(extend),泛化(generalization);
用例:角色能够完成的任务(功能);
系统:整体系统,子系统。
介绍三种关系的不同:
包含:当两个或者多个用例具有相同子用例的时候,就将子用例独立出来,比如 两个用例 发贴和回帖,它们具有相同的子用例----登录,所以可以将登录独立出来
图1
因为子用例是从基用例独立出来的,所以基用例单独不能执行,必须得将子用例和基用例结合起来才可以。
扩展:基用例无需知道子用例是什么,即子用例对基用例没有影响,所以基用例可以单独执行。
比如用例--查询通讯录,有还有两个用例,一个是导出通讯录,另一个是 打印通讯录。那么后两个用例则可以作为前者的扩展。
图2
因为基用例并不感知扩展的子用例,所以扩展的子用例在系统执行时可有可无,由用户决定。
泛化:即继承,子用例将为继承基用例的所有行为。比如 用户分为会员和管理员,会员和管理员继承了用户的所有行为。
图3
区别:
包括(include):要实现基用例则必须把include的子用例都实现。
扩展(extend):要实现基用例与extend的子用例的实现无关。
泛化(generalization):基用例是抽象的,不能实现,只能靠子用例来实现。