您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

详解 UML 用例图画法 & 用例说明方式

时间:2020-03-17 12:24:54  来源:  作者:

一、概述

用例图是编写需求说明时经常用到的需求表达方式,用于向开发、测试同事说明需求中用户与系统功能单元之间的关系。但是很多刚接触用例的新人,在准备用例说明时并不清楚参与者与用例之间应该如何表达,网上教程五花八门,但感觉部分用例图不够规范,因此对用例图及用例说明梳理总结。

考虑到用例图的作图规范,使用Visio的UML用例组件,对用例中的各种关系进行说明。

详解 UML 用例图画法 & 用例说明方式

 

二、用例图

用例图的结构主要分为三个部分:参与者、用例、参与者与用例之间的关系,具体说明如下:

 

2.1 参与者

顾名思义,代表系统外部与系统发生交互的人或事物;需要注意,人指的是参与者与系统发生交互时的角色,不代指具体的人。

事物指的是某一个应用程序或者特殊进程;例如微信登录,通过跳转微信确认登录信息,微信对系统产生输入时,可以把微信作为参与者;而设定时间,强制退出账号时,时间这一特殊进程对系统产生输入,因此时间也可以作为参与者。

 

2.2 用例

2.2.1 用例的说明

用例是系统外部可见的一个功能单元,是某一个参与者在系统中做某件事从开始到结束的一系列活动的集合,以及结束时应该返回的可观测、有意义的结果,其中还包含可能的各种分支情况;具体用例在用例属性中说明。

2.2.2 用例的特征

  • 用例都是动宾结构;例如:登录账号
  • 用例是相互独立的
  • 用例由参与者启动
  • 有可观测的执行结果

 

2.3 关系说明

角色与用例之间的关系主要包括关联、归纳(泛化)、包含、拓展和依赖。

2.3.1 关联关系

  • 关系说明:表示参与者与用例之间的关系
  • 展示形式:以一条直线相连
  • 举例说明:用户登录系统

图1 参与者与用例之间的关联关系

2.3.2 归纳(泛化)关系

  • 关系说明:表示参与者与参与者之间、用例与用例之间的关系
  • 展示形式:用箭头表示,箭头从子参与者(子用例)指向父参与者(基础用例),一般父参与者(基础用例)相对子参与者(子用例)更为抽象
  • 举例说明:VIP会员和普通用户,归纳为用户;账号登录与微信登录,也可归纳为登录系统。
详解 UML 用例图画法 & 用例说明方式

图2 用户之间、用例之间的归纳关系

2.3.3 包含关系

  • 关系说明:表示用例与用例之间的关系
  • 展示形式:用带有“包含”的箭头表示,箭头从基础用例指向包含用例
  • 举例说明:用户在账号登录过程中,包括输入账号、输入密码、确认登录等操作
详解 UML 用例图画法 & 用例说明方式

图3 用例与用例之间的包含关系

2.3.4 拓展关系

  • 关系说明:表示用例与用例之间的关系;用于拓展用例对基础用例的增强;拓展用例是在特定条件出现时,才会被执行的用例
  • 展示形式:用带有“拓展”的箭头表示,由拓展用例指向基础用例
  • 举例说明:用户在登录过程中忘记了密码
详解 UML 用例图画法 & 用例说明方式

图4 用例与用例之间的拓展关系

2.3.5 依赖关系

  • 关系说明:表示用例与用例之间的关系;一个用例在活动执行过程中,要依赖另一个用例的执行
  • 展现形式:以一条直线相连
  • 举例说明:用户要登录系统后,才能查看首页信息
  • 补充说明:A用例依赖B用例,A用例或使用B用例执行后的返回结果,或使用B用例执行部分功能。依赖关系类似于包含关系,都是在用例执行过程中,调用其它用例来完成部分任务。

图5 用例与用例之间的依赖关系

2.3.6 注释

对于部分有特殊条件支撑的用例,也可以添加注释加以说明,例如VIP用户与普通用户登录系统后,可查看的菜单、数据甚至对系统的操作都是不一样的,此时可以在对应用例上加以注释,以强调此用例的特殊需求。

详解 UML 用例图画法 & 用例说明方式

图6 对用例进行注释

2.3.7 子系统

关系说明:用于强调某部分用例的强关联性,例如门户包含系统登录、首页信息展示等。

详解 UML 用例图画法 & 用例说明方式

图7 子系统与用例之间的关系

2.3.8 各关系的对比

为了对包含、拓展和归纳(泛化)关系更好的区分,以图7为例说明各种关系之间的差别:

1)用例的使用条件

包含用例与归纳(泛化)的子用例,都没有限定的使用条件;例如用户登录系统时,直接选择输入账号密码登录系统,或者通过微信登录系统;而忘记密码是在用户账号登录时遗忘密码才会发生的用例,是有特定条件下才会发生的用例。

2)直接、间接提供服务

归纳(泛化)的子用例与拓展用例为参与者直接提供服务,例如用户登录系统时,会直接选择账号登录或微信登录,而账号登录或微信登录直接为参与者提供登录服务;而包含关系的用例,为参与者提供间接服务,例如账号登录时,需要输入账号、输入密码等,这些用例直接鼓舞于账号登录这个用例,间接为参与者提供登录服务。

3)其余说明

  • 延伸用例与基础用例相互独立,两者之间不包含对方用例的内容。
  • 归纳(泛化)的子用例包含基础用例所有内容、基础用例与其他用例的关系以及基础用例与参与者之间的关系;例如账号登录是登录系统的子用例,但账号登录包含了登录系统的内容、登录系统与展示首页的关系以及登录系统与参与者的关系。

 

三、用例描述

完成了用例图,实际上工作只完成了一半,更重要的是对每个用例进行具体的说明;包括说明用例之间的关系、参与者身份角色以及用例从开始至结束过程中的条件及分支情况等;具体用例说明形式可参考下表:

详解 UML 用例图画法 & 用例说明方式

用例的描述针对不同业务系统,描述的重点可能会存在差异,因此用例描述的重点在于清晰表达用例需求,不必拘泥于表达形式。

 

 



Tags:UML   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
面向对象设计自从面向对象编程语言在软件开发中成为主流之后,遵循面向对象技术特点的软件设计工作,也一并发展了起来。首先要提出一个问题,就是设计的工作是要做什么? 它包括的...【详细内容】
2020-10-10  Tags: UML  点击:(88)  评论:(0)  加入收藏
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UM...【详细内容】
2020-08-14  Tags: UML  点击:(58)  评论:(0)  加入收藏
一、概述用例图是编写需求说明时经常用到的需求表达方式,用于向开发、测试同事说明需求中用户与系统功能单元之间的关系。但是很多刚接触用例的新人,在准备用例说明时并不清楚...【详细内容】
2020-03-17  Tags: UML  点击:(69)  评论:(0)  加入收藏
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分...【详细内容】
2019-09-19  Tags: UML  点击:(147)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(5)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条