UML系列图-用例图
2016-03-31 14:04
260 查看
用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。
用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,
以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。帮助开发团队以一种可视化的方式理解系统的功能需求。
用例图由参与者(Actor),用例(use case),子系统,关联关系四部分组成。
1 参与者(Actor):表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
2 用例:就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。(参与者想要系统做的事情)
3 子系统:用来展示系统的一部分功能,这部分功能联系紧密。
4 关联关系:关联、泛化、包含、扩展
a. 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
b. 泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
c. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
d. 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
包含(include)、扩展(extend)、泛化(Inheritance) 的区别:
条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;
直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;
参考资料:/article/5136040.html
用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,
以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。帮助开发团队以一种可视化的方式理解系统的功能需求。
用例图由参与者(Actor),用例(use case),子系统,关联关系四部分组成。
1 参与者(Actor):表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
2 用例:就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。(参与者想要系统做的事情)
3 子系统:用来展示系统的一部分功能,这部分功能联系紧密。
4 关联关系:关联、泛化、包含、扩展
a. 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
b. 泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
c. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
d. 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
包含(include)、扩展(extend)、泛化(Inheritance) 的区别:
条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;
直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;
参考资料:/article/5136040.html
相关文章推荐
- Tomcat常见问题处理办法
- ios CAShapeLayer和UIBezierPath
- iOS在更改用户头像并保存至本地沙盒目录中对于UIImagePickerController、UIAlertController的使用
- redis集群搭建
- Qt 事件处理机制
- mongodb查看数据库和表的信息
- 递归3_计算多个数字
- 浅谈Activity之启动方式(5种启动方式和隐式启动)
- VSCode配置C++编写环境
- mysq windows和linux安装以及常见命令文档
- Android--短信拦截及IP拨号
- 对集合类Vector和Enumeration的应用
- iOS 设计模式之工厂模式
- Java基础collection
- poj2527——Polynomial Remains(多项式相除)
- 项目总结1(头文件,switch,&&,位变量)
- Codeforces Round #346 (Div. 2) C模拟
- AutoCompleteTextView自定义item布局
- Javascript和Ajax中文乱码吐血版解决方案
- 2.1.1 搭建基本postfix环境-安装postfix和dovecot