UML,用例图

用例图是UML的重要组成部分,主要用来描述用户的需求。

一.用例图概述

1.组成部分:执行者、用例、执行者与用例之间的关系

   【执行者】使用系统的人或其他系统,可以是一个人、一个系统,甚至可以是一个软件实体,如:定时器。

   【用例】描述的是用户可见的需求,一个具体的用户目标。由执行者执行。

   【两者间关系】表示了一个执行者和一个用例之间的关系。

2.图符

UML,用例图

3.关系

主要用的三种关系:包含、泛化和扩展。

【包含关系】

含义 :使用包含用例来封装一组跨越多个用例的相似动作,以便多个基础用例复用。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。

表示 :实箭头加<include>

举例 :机房收费系统中,管理员在结账时有多个操作,其中包含注册学生信息、充值和退卡等。

样图 :

UML,用例图

扩展关系】

● 含义 :扩展用例为基础用例添加新的行为。扩展用例可以访问基础用例的属性,因此它能根据基础用例中扩展点的当前状态来判断是否执行自己。但是扩展用例

对基础用例不可见。 对于一个扩展用例,可以在基础用例上有几个扩展点。

表示 :实箭头加<extend>

● 举例 :机房收费系统中,有好几项查询结果都需要导出为Excel表,其中各项查询就属于基础用例,而导出Excel表就属于扩展用例。对于查询而言,是否导出都

不受影响。

 样图 :

UML,用例图

泛化关系】

● 含义 :子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。也就是通常说的继承。

 表示 : 空三角实箭头

 举例 :机房收费系统中,最明显的继承关系就是三个不同级别的用户。其中,一般用户权限最低,管理员权限最高。

 样图 :

UML,用例图

.关系比较

其实,用例图相对来说,还是比较简单的。关键在于关系的选用。下面,就将三者做个比较。

首先,三者的侧重点是不同的。

泛化侧重表示子用例间的互斥性; 包含侧重表示被包含用例对Actor提供服务的间接性;扩展侧重表示扩展用例的触发不定性;

其次,在一个系统中,有些操作是肯定发生的,有些操作是未必发生的。

泛化和包含用例就属于肯定发生的用例,而扩展用例属于未必发生用例。

最后,可能在关系的选用上,每个人的理解不同,也会造成一定的偏差,所以,也不需要特别死板而固定各种用例之间的关系,自己思考就好。

三.机房收费系统用例图

【管理员】

UML,用例图

【操作员】

UML,用例图

一般用户】

UML,用例图

四.学习心得

这是UMl中的第一种图的完工,花了很长的时间,刚开始必须对用例图做一个进一步的详细了解,这样后面才有可能达到水到渠成的那一步。通过自己的实践,对UML画图工具又熟悉了,对用例图也熟悉了,对机房收费系统的需求也熟悉了。总之,实践才是王道。

上一篇:开始,UML


下一篇:软工文档编写总结