如何写用例图
一、什么是用例图?
用例图是用户与系统交互的简单表达形式,展现了用户和与他相关的用例之间的关系。
通过用例图,人们可以获知系统不同种类的用户和用例。
这段是摘录自百度百科的用例图描述。
通过描述我们可以知道,用例图由:参与者、用例,和他们两者之间的关系组成。
用例图用于描述用户是如何和系统交互的。
接下来我们说下用例图的关键要素
二、参与者
概念
参与者指的是系统与外部交互的人或者事物。
这里的人指的是角色,而非特定的个人。
事物一般指程序或者特殊进程。
使用要点
要界定参与者,首先需要确定系统的范围。
如果系统是一个app程序,参与者一般就是使用app的用户。
如果系统是由app程序和管理后台组成,参与者则是用户和运营。
如果系统指的是后台服务,参与者可能就是app,或者其他调用服务的程序或者进程了。
表示方式
一般参与者用小人表示,并标记角色
三、用例
概念
用例英文叫 use case,直接翻译其实就是使用案例。
用例描述了参与者和系统的交互行为。
通俗点讲就是参与者可以在系统干什么,或者外部可见的功能单元。
使用要点
一般用例都是动宾结构:查看黑名单列表,创建商品。
用例之间都是相互独立的。
用例一般是由参与者启动的。
用例的执行结果是可以观测的。
表示方式
还有用例描述的椭圆
四、参与者与用例的关系
参与者与用例之间有:关联、泛化、包含、拓展关系
关联关系
参与者与用例之间最常见的交互关系就是关联。
关联关系表示参与者与用例之间的通信,任何一方都可以发送或者接收消息。
比如运营和和整个运营后台的使用关系就是关联。
表示方式
关联关系用直线连接即可。
泛化关系
了解过面向对象开发的同学比较容易理解这种关系。
泛化描述了父、子两类元素关联;子元素有父元素所有特性,但是子元素实现方式有不同。
通俗点讲就是爹妈和儿子之间的关系。
儿子继承了父母的基因,但是又和父母之间有些不同。
表示方式
「子元素」空心箭头指向「父元素」
包含关系
包含关系指的是一个用例中包含若干小步骤。
表示方式
虚线箭头指向子用例,并标明包含关系
拓展关系
拓展关系比较容易和包含关系混淆。
拓展是指特定情况下触发的场景,对基础用例的增强。
表示方式
「基础用例」虚线箭头指向「拓展用例」,并标明拓展关系
关联、拓展、包含关系的区别
关联关系只要你愿意,所有元素之间都可以有关联。
本质上,拓展和包含本身就是一种关联关系。
拓展关系只在特定条件下触发。
比如「注册」是「登录」的拓展用例。
只有新用户才会需要注册,老用户直接登录即可。
包含关系是用例有若干小步骤,小操作更倾向于描述整体和个体的关系。
五、其他
注释
注释可以对用例的一些补充或者强调事项进行详细描述。
表示方式
泳道
泳道可以将用例划分到不同纬度,从而视觉直观上让人容易区分使用场景。
表示方式
将相关用例放到统一泳道中,并标记好泳道名即可。
六、小结
用例图是产品的常用工具。
可以快速的和业务方或者开发沟通功能。
实际使用中,通常不会严格按照标准绘制。
用例图终究还是一个表达工具,主要是辅助各方达成一致。
切勿舍本逐末,为了画用例图而画。