UML—用例图

来源:互联网 发布:阿里云 cn2 编辑:程序博客网 时间:2024/06/07 12:09

前言

        UML的用例图是从用户的角度出发的,是被称为参与者的外部用户所能观察到的系统功能的模型图,使用范围非常的广,所以说一定要好好的理解该图,下面的用例图实例是我根据机房收费系统画的用例图,也是我画的有关UML的第一张图,欢迎各位大神们的指导。

内容

1、用例图:从用户的角度来描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
2、用例图的要素:参与者(在图中用小人表示),用例(在图中用椭圆表示),关系(在图中用线条表示)
1)参与者:即使用本系统的有哪些角色,不同的角色使用的系统功能部分是不同的。
2)用例:即系统具有的功能
3)关系:即角色与用例之间的关系,其中在用例图中包括三种关系:泛化、包含、扩展
①泛化:泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。
比如:在实际的生活中有很多需要部门领导审批的事情,但是审批的流程相似如下图所示:

②扩展:extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。
比如:假设 UseCaseA 的功能描述为“发送一条通知”,可是,发送通知的方式可能有许多种,例如通过邮件发送、通过短信发送等。在需求分析阶段,可能无法明确到底有多少种方式,在用例分析阶段,UseCaseA 需要留出扩展接口,然后把已知的发送方式作为扩展用例给出,例如 UseCaseB 是“通过短信发送”,而 UseCaseC 是“通过邮件发送”,此时,UseCaseB 和 UseCaseC extend 了 UseCaseA,表现为两根虚线,箭头指向 UseCaseA,用例图如下:


③包含:是一种依赖联系,其中一个用例(基础用例)的行为包含了另一个用例(包含用例)的行为。基础用例可以看到包含用例,并依赖于包含用例的执行结果。但是二者不能访问对方的属性。包含关系在用例图中使用虚线箭头+<<include>>字样,箭头指向被包含的用例。
比如:include 是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分(就象提取公因式一样),例如 UseCaseA 中包括了 a 和 b 两个流程,而 UseCaseC 中包含了 c 和 b 两个流程。为了提高复用性,可以把 b 提取出来,形成另一个用例 UseCaseB,此时,UseCaseA include UseCaseB(表现为一条指向 UseCaseB 的虚线,箭头在 UseCaseB 侧),UseCaseC 也 include UseCaseB。因而,当有 include 关系时,被 include 的用例通常会被两个以上的其他用例 include(否则就不需要重用,也就不需要提取出来了)在 include 关系中,“UseCaseA 和 UseCaseC 知道 UseCaseB 的存在,而 UseCaseB 根本不知道有 UseCaseA 和 UseCaseC)。如图:

下图是我基于机房收费系统画的用例图,第一次画图,欢迎各位大神的指点。


0 0
原创粉丝点击