Yaitza

UML用例图

1. 概要

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。

2. UML用例图构成

2.1 参与者(Actor)

表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。  

Actor

2.2 用例(Use Case)

用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。  

UserCase

2.3 子系统(Subsystem)

用来展示系统的一部分功能,这部分功能联系紧密。  

Subsystem

2.4 关系(Relationship)

用例图中涉及的关系有:关联、范化、包含、扩展。  

Relationship

2.4.1 关联(Association)

表示参与者与用例之间的通信,任何一方都可发送或接受消息。  

【箭头指向】:指向消息接收方(Microosoft Visio 2013提供的UML用例图绘制没有箭头指向)

Association

2.4.2 泛化(Inheritance)

就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。  
子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

【箭头指向】:指向父用例(Microosoft Visio 2013提供的UML用例图绘制没有箭头指向)

Inheritance

2.4.3 包含(Include)

包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。  

【箭头指向】:指向分解出来的功能用例

Include

2.4.4 扩展(Extend)

扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。

【箭头指向】:指向基础用例

Extend

2.4.5 依赖(Dependency)

表示源用例依赖于目标用例。

【箭头指向】:指向被依赖项

Dependency

3. 包含(include)、扩展(extend)、泛化(Inheritance) 的区别

条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的。
直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系。

一个用例图示例:

Example

🐶 您的支持将鼓励我继续创作 🐶