用例和用例图
一.用例及相关术语
用例(Use case)
用例是一组动作序列的描述,系统执行这些动作序列为参与者产生一个可观察的结果值。
每个用例都有一个区别于其他用例的名称。(使用主动句或短语)
注意:用例一般采用业务语言(而不是技术语言),站在用户的角度(而不是系统角度),给出系统可以做什么,而不是怎么做(不考虑实现)。
主题(系统边界)
是由一组用例所描述的一个类。这个类通常是一个系统或者子系统。用例描述了这个类的行为方面。参与者表示与该主题交互的其他类的方面。放在一起用来描述主题的完整性为。
场景(scenario)或事件流
场景又被称作用例实例。执行一次用例的动作序列,就是用例的一个实例。
可以通过足够清晰、外部人员很容易理解的文字描述一个事件流(场景)。用来说明一个用例的行为。
描述时,采用主动语句:
例如: 用户......
ϵͳ......
用户......
......
除了采用语言描述,在之后更精细的设计中,采用一组顺序图描述一个用例的一组场景。
用例之间的关系
用例间可以有三种关系:
1. 泛化关系
类似于类的泛化关系,通俗的理解为多种途径(方式)。
例:
对于确认用户这个用户的身份,可以通过密码和视网膜扫描两种途径。
2. 包含关系
用力之间的包含关系表示基用例在他的内部说明的某一位置上显式地合并了另一个用例的行为。
运用包含关系,通过把公共的行为放到它自己的一个用例中,可以避免多次描述相同的事件流(场景)。(类似于函数调用,把共同的事件流提取出来,封装到一个用例中,想要使用这个用例的事件流时,把它包含进来即可)
3. 扩展关系(延伸关系)
用力几件的延伸关系意味着,基用例由延伸用例简介指出一个位置上隐式地合并了延伸用例的行为。基用例可以单独存在,在一定条件下,它的行为可以被另一个用例地行为延伸。
分辨包含与扩展关系
-
包含:基用例的主事件流(主成功场景)一定有被包含的用例的主事件流。
-
扩展:基用例的主事件流不一定有扩展的用例的事件流,在一定情况下,会执行扩展的事件流。
参与者
参与者表示用例的使用者在于这些用例进行交互时所扮演的角色的一个紧密的集合。通常,参与者代表人、硬件设备或者另一个系统所扮演的角色。
注意:参与者不是物理上的一个人,一个人可以扮演多种角色,可以是多个参与者。
参与者之间的关系
参与者之间仅存在一种关系“泛化”
用例与参与者
参与者仅通过关联(实线)与用例相连,一个参与者和一个用例之间的关联表示两者之间的通信,任何一方都可以发送和接受消息。
箭头表示谁线发起了对话,无箭头表示双方都可以发起会话,箭头不代表数据流,数据永远是双向的
二.用例图
用例图是表达用例和参与者及其之间关系的载体。由主题、参与者、用例和关系组成。
作用:描述“谁”(参与者)用“系统”(主题)“做什么”(用例);或者“系统”“做什么”需要“谁”
表示法
把主题表示为一个矩形,主题的名字在矩形内,其中包含一组表示用例的椭圆。用人形图形表示参与者,放在矩形外面,名字放在人形图的下方。从参与者到与之通信的用例椭圆之间用实线连接(可能包含箭头)。用例之间的关系,画在矩形内。
如图,如果一个用例有多个参与者与之通信,表示这个用例需要与这些参与者一起通信,缺少一个参与者,都不满足用例的主事件流
三.建模流程
- 确定系统边界(主题)
- 确定参与者
- 确定用例
- 确定用例关系
- 书写用例规格说明
用例规格说明
内容包括:
- 用例名称
- 执行者(参与者)
- 涉众利益
- 事件流(场景):基本流(主事件流、主成功场景)、备选流
- 特殊需求
- 前置条件
- 后置条件
- 扩展点
最后说一点,建模是一个增量式的过程,并不能一蹴而就
来源:51CTO
作者:小码农丨
链接:https://blog.csdn.net/qq2071114140/article/details/100673965