UML用例图的画法详细介绍【软件工程】

文章目录

    • I.总述和预备知识
    • II.关联(Association)关系
    • III.泛化(Generalization)关系
    • IV.包含(Include)关系
    • V.扩展(Extend)关系
    • VI.总结


I.总述和预备知识

首先,用例图是用来描述系统功能的技术,表示一个系统中用例与参与者及其关系的图,主要用于需求分析阶段,同时它由参与者(actor)、用例(case)和容器(container) 三部分组成,并具有关联(Association)、泛化(Generalization)、包含(Include)和扩展(Extend) 四种关系。

【预备知识】:关于组成成分:参与者、用例和容器

参与者(actor): 表示与应用软件或系统进行交互的用户、组织或外部系统,画图时用一个小人表示:
在这里插入图片描述
用例(case): 表示外部可见的系统或软件的功能,对系统提供的服务进行描述,画图时用椭圆和文字表示:
在这里插入图片描述
容器(container): 代表着一个系统,画图时用一个矩形表示,矩形内一般是一个一个的用例:

UML用例图的画法详细介绍【软件工程】_第1张图片
下面从用例图的四种关系进行逐一介绍。


II.关联(Association)关系

关联(Association)关系是用例图最常见的一种关系,简单理解就是参与者(actor)与每个用例(case)之间存在的一种相互交流、通信的关系,发生的对象是参与者和用例。这种关系与类图的关联关系很相似,可以近似理解。

画法上,关联关系无论是双向的还是单向的,一律用单向的实线箭头从参与者指向用例

在这里插入图片描述


III.泛化(Generalization)关系

泛化(Generalization)关系是我们通常理解的继承关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系;子用例可以使用父用例的一段行为,也可以重载它。此时,父用例通常是抽象的,而子用例表现出很强的具体性。(这里的子用例和父用例同样适用于参与者)

在用例图中,泛化关系存在于用例(case)之间参与者(actor)之间,但通常不会出现在二者混合之间。画法上,泛化关系表示为实线、空心三角箭头,从“子”指向“父”

UML用例图的画法详细介绍【软件工程】_第2张图片


IV.包含(Include)关系

包含(Include)关系是用来表示把一个较复杂用例所表示的功能分解成较小的步骤的一种关系。从定义不难看出,这种关系只会存在于用例(case)之间,并且通常是对一个复杂的用例进行拆解操作。

画法上,包含关系表示为两个部分:首先是一条虚线箭头,从较复杂的用例指向拆解出的功能用例;第二部分是在虚线上标注《include》,表示这是包含关系(与下一个扩展关系进行区分):

UML用例图的画法详细介绍【软件工程】_第3张图片


V.扩展(Extend)关系

扩展(Extend)关系是用来表示用例功能的延伸的一种关系。这种关系同样是发生在用例(case)之间,相当于为基础用例提供一个附加功能用例。

画法上,扩展关系同样分两个部分:首先是一条虚线箭头,从延伸功能用例指向基础用例(直观感受与包含关系刚好相反);第二部分是在虚线上标注《extend》,表示这是扩展关系:

UML用例图的画法详细介绍【软件工程】_第4张图片


VI.总结

对四种关系的画法进行一个总结:

关系 UML画法
关联关系 一条从参与者指向用例实线
泛化关系 一条从 “子”指向“父”空心三角实线
包含关系 一条从较复杂用例指向拆解出的功能用例虚线,并标有 《include》
扩展关系 一条从延伸功能用例指向基础用例虚线,并标有 《extend》

最后放一个登录注册系统的UML用例图:

UML用例图的画法详细介绍【软件工程】_第5张图片

你可能感兴趣的:(软件工程,uml,需求分析)