前言:UML是 Unified Modeling language 的缩写,是一种统一建模语言,主要在软件需求分析与设计阶段使用。UML一共包括9个图,分别是用例图、类图、对象图、序列图、协作图、状态图、活动图、构件图、部署图。本篇仅讨论用例图,后续再慢慢补充。
用例图:
1、定义:由参与者(actor)、用例(use case)、边界以及它们之间的关系构成的用于描述系统功能的视图。用来表示系统角色与系统功能发生交互的图。
参与者:不特指人,是指在使用系统或与系统交互中所扮演的角色。
用例:是对包括变量在内的一组动作序列的描述。对用例命名时,可取一个简单、描述性名称,一般为带有动作性质的词。
边界:用于区别开系统内外,一般画图可省略。
箭头:表示参与者和系统发送消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
2、关系:关联、泛化、包含、扩展。
1) 关联:任何一方都可发送或接受消息。无箭头。
2)泛化:继承关系,子用例可使用父用例的一段行为,也可以重载它。箭头指向父用例。
3)包含:将一个复杂用例所表示的功能分解成较小步骤。箭头指向分解出来的功能用例。
4)扩展:是用例功能的延申,为基础用例提供一个附加功能。扩展用例是基用例中一段相对独立且可选的动作,能访问基用例的属性,因此它可根据基用例中扩展点当前状态来判断是否执行自己,但扩展用例对基用例不可见。箭头指向基础用例。
5)依赖:除以上四种标准关系外,还有依赖关系,表示源用例依赖于目标用例。
6)区别:泛化、包含、扩展的区别。
条件性:泛化中的子用例和包含中的被包含用例会无条件发生,而扩展中的延申用例的发生是有条件的。
直接性:泛化中的子用例和扩展中的延申用例为参与者提供直接服务,而包含中的被包含用例为参与者提供间接服务。