是由主角、用例以及它们之间的关系构成的用于描写叙述系统功能单元之间关系的的静态视图。
外部用户所能观察到的系统功能的模型图,呈现了一些參与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模
主要用途是以一种可视化的方式理解系统的功能需求。方便开发团队的开发。
用例图的基本元素:角色、用例、关系
角色:不是特指人。是指系统以外的,在使用系统或与系统交互中所扮演的角色。
因此參与者能够是人,能够是事物。也能够是时间或其它系统等等。
另一点要注意的是,參与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
用例是參与者想要系统做的事情。对于对用例的命名,我们能够给用例取一个简单、描写叙述性的名称。一般为带有动作性的词
以下着重简绍一下
关系:表示參与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方。当中用例总是要由參与者来启动。有四种关系:关联、泛华、包括、扩展
关联 |
參与者与用例之间的关系 |
|
泛华 |
同类的參与者或用例之间 |
|
包括 |
用例之间 |
|
扩展 |
用例之间 |
|
泛化关系:把共同的行为提取出来表示为通用行为,子行为能够添加新的行为和含义或者覆盖父行为中的行为和含义。
<子用例画到父用例箭头>
关联关系:表示參与者与用例之间的通信。不论什么一方都可发送或接受消息。
<箭头指向消息接收方>
扩展关系:基本用例必须声明扩展点。而扩展用例仅仅能在扩展点上添加新的行为和含义。
相当于加入附加功能。
<指向基础用例>
包括关系:把一个复杂用例的功能。分解成较简单的用例。
<指向分解出来包括用例>
差别:
泛化中的子用例和包括中的被包括的用例会无条件发生,而扩展中的延伸用例的发生是有条件的;
对扩展(extend)而言,延伸用例并不包括基础用例的内容,基础用例也不包括延伸用例的内容。
对泛华(Inheritance)而言。子用例包括基础用例的全部内容及其和其它用例或參与者之间的关系。