用例图
现在为大家介绍UML的第一种图,用例图,也是软件开发中的第一张图,那么接下来就详细的介绍一下。
用例图 (Use-casediagrams)
用来描述用户的需求,从用户的角度描述系统的功能,并指出各个功能的执行者,强调谁在使用系统,系统为执行者完成那些功能呢,
如图,用例图的基本元素便是角色,用例,关系。
角色(Actor)
角色是一些人或事,例如对系统输入的人,激活系统,或者接受系统的信息,对系统产生的结果感兴趣的人或者事,或者交互的系统。
理解用例的主角:
1、 主角是位于系统边界之外的
2、 主角对系统有着明确的期望和明确的回报要求
3、 主角的期望和回报要求在系统边界之内的
在图中用小人表示,如下图
用例(use case)
用例就是功能的描述,在用例图中用椭圆表示,如上图
理解用例需求的特征:
1、 一个明确的有效的目标才是一个用例的来源
2、 一个真实的目标应该完备地表达主角的期望
3、 一个有效的目标应当在系统边界内,由主角发动,并具有明确的后果
用例的粒度:
1、 在业务建模阶段,用例的粒度以每个用例能够说明一件完整的事情为宜。
2、 在系统建模阶段,用例视角是针对计算机的,因此用例的粒度是以一个用例能够描述操作者与计算机的一次完整交互为宜。
关系
用例图中涉及的关系有:关联、泛化、包含、扩展。
1. 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
2. 泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
3. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
4. 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
5. 依赖(Dependency)
以上4种关系,是UML定义的标准关系。但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示,表示源用例依赖于目标用例。
【箭头指向】:指向被依赖项
包含(include)、扩展(extend)、泛化(Inheritance)的区别:
条件性:泛化中的子用例和包括中的被包含的用例会无条件发生,而扩展中的延伸用例的发生是有条件的;
直接性:泛化中的子用例和扩展中的延伸用例为参与者提供直接服务,而包括中被包含的用例为参与者提供间接 服务。
对扩展而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
对泛化而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;
下面结合机房收费系统的操作员用例为大家介绍一下