UML用例图-教程详解
一、用例图的定义:
由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图上绘制一个参与者(表示一个系统用户),可绘制一个人形符号。参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者。
用例图描述了系统提供的一个功能单元.用例图的主要目的是帮助开发团队以一种图形化的方式理解系统的功能需求,包括给基于基本流程的"角色"关系,以及系统内部用例之间的关系。使用用例图可以表现出用例的组织关系。这种组织关系包括整个系统的全部用例或者完成相关功能的一组用例.
二、用例之间的关系
1、 包含关系
1)包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在UML中,包含关系是通过带箭头的虚线段加<<include>>字样来表示,箭头由基础用例(Base) 指向被包含用例(Inclusion) 。
包含关系代表着基础用例会用到被包含用例,具体的讲就是将被包含用例的事件流插入到基础用例的事件流中。需要注意的是,同等语义的关系被表述为使用(uses) 。
2)在处理包含关系时,具体的做法就是把几个用例的公共部分单独的抽象出来成为一个新的用例。主要有两种情况需要用到包含关系:
A) 第一,多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成为一个用例,然后让其他用例来包含这一用例。
B) 第二,某一个用例的功能过多、事件流过于复杂时,我们也可以把某一段事件流抽象成为一个被包含的用例,以达到简化描述的目的。
2、扩展关系
1)在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例(Extension) ,原有的用例叫做基础用例(Base) ,从扩展用例到基础用例的关系就是扩展关系。一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。
3、泛化关系
用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。在用例的泛化关系中,子用例继承了父用例所有的结构、行为和关系,子用例是父用例的一种特殊形式。子用例还可以添加、覆盖、改变继承的行为。在UML中,用例的泛化关系通过一个带有空心三角箭头的直线从子用例指向父用例来表示。
泛化的示例:银行存款有两种方式,一种是银行柜台存款,一种是AT M机存款。在这里,银行柜台存款和AT M机存款都是存款的一种特殊方式,因此“存款” 为父用例,“银行柜台存款” 和“ATM 机存款” 为子用例。
实例演示:
下面的用例图是我根据《机房收费系统》中的操作员的权限进行绘制的: