UML系列内容之四:用例图

这一季我们来了解一下UML中的用例图。

在开发系统之前,最重要的工作是获取用户的需求,而在用户需求中最重要的是关于用户提出的系统功能性需求,我们可以借助用例图来可视化的表达用户的需求。

用例图(UseCaseDiagram)是由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的视图,是被称为参与者的外部用户所能观察到的系统功能的模型图。

用例图常在需求分析阶段使用。

用例图中主要的元素包括参与者、用例以及各元素之间的关系。

除此之外,用例图中还可以包含注解和约束。

参与者(Actor)是与主体系统交互的外部实体。

参与者可以是系统外部的人、子系统、其它系统等。

每个参与者实际上是一个角色集。

在UML中,参与者使用使用人形的图形表示,并给这个参与者赋予一个名字。

如下图中的“读者”即是图书馆借阅系统中的一个参与者。

参与者应位于系统边界之外,而不是系统的一部分。

在进行用例建模时,确定参与者是用例图建模的第一步。那么,如何确定系统的参与者呢?我们可以从以下思路进行考虑:

(1)系统的服务对象

如图书馆借阅系统中的读者;

(2)为其提供支持以完成工作的人

如图书馆借阅系统中的图书馆工作人员,他需要借助系统帮助读者完成借阅、还书、催还工作。

(4)外部设备:需要向外部设备传输信息或从外部设备读入信息,如读卡器。

(5)其它系统或子系统:如借阅系统中的财务系统,财务系统并非借阅系统的功能,但借阅系统需要向其传递信息以完成超期罚款工作。

(7)特定事件:如外卖系统中自动接单,是由订单产生事件推动的。

在识别参与者时,要注意以下几点:

参与者位于系统的外部,而不是系统的一部分;

参与者通过系统边界与系统进行交互;

参与者间的主要关系是泛化。泛化关系是一般和特殊(具体)之间的关系。

在泛化关系中一个参与者的抽象描述可以被一个或多个具体的参与者所共享。

下图描述了图书馆借阅系统中参与者之间的泛化关系。

上图中,读者是一个“一般”参与者,下面的教职工、学生、教职工家属等是“具体”的参与者。

泛化使用实线空心三角形箭头来表示,箭头指向更一般的参与者,箭尾端在“具体”参与者这端。

参与者泛化可以理解为:“具体”参与者是一种“一般”参与者,如教职工是一种读者。

在参与者泛化中,表示“一般”参与者可执行的用例,作为“具体”(“特殊”)参与者也可以执行。

用例是参与者可以感受到的系统服务或功能单元。它定义了系统要实现的一个目标。用例只定义系统的一个行为,而不显示系统的内部结构。

用例最大的优点是站在用户的角度描述系统功能。

在图形上,用例使用实线椭圆来表示,并在椭圆内部或下部标注用例的名称:

可以通过以下要点来识别用例:

(1)参与者需要系统提供哪些功能,以支持他的工作?

(2)参与者是否需要查询系统中的某些信息?

(3)参与者是否需要改变系统中的某些信息,如创建、修改和删除操作?

(4)系统发生的特定事件或状态的改变是否需要通知参与者?

(1)识别出的用例应该反应出系统的目标,即“要做什么”,而非“怎么做”,就是说用例不是系统实现的细节;

(2)从参与者(用户)的角度出发定义用例,而非系统的角度。

(3)用例应为参与者提供有价值的结果,而非动作的集合;

(4)避免陷入功能分解,步骤分解;

(5)每个参与者都应该有可执行的用例,每个用例都应关联至少一个参与者

在确定好系统的用例后,需要给各个用例进行命名。

用例的命名需要站在用户的角度描述参与者达到的目标。可以使用下述命名方式:

(状语)动词+(定语)宾语

也就是说,用例的名称应该是动宾短语的格式。

如选课、借阅图书、订购货物、使用信用卡支付。

用例粒度是指用例细化或综合系统功能的程度。也可以说用例所包含的系统服务或功能单元的多少。用例粒度过粗或过大,则用例包含的系统功能就越多,反之越少。

用例粒度过粗,不便于理解系统,粒度过细会使用例模型过于庞大,给设计带来困难。

用例粒度过细,可能会陷入功能分解,如:

实际上,系统中很多业务都包含这种增、删、改、查的操作,这样做并不能为用户提供任何有意义的目标,反而会忽略了用户的真正目的。

上面这种“增删改查”无非就是用户管理,这才是参与者的真实目的。使用下面这种方式处理上面的用例也许会更好一些:

管理用户这种用例体现了系统管理员的一个目标或任务。如果非要添加上增删改查,可以使用下面的方式来表达会更好一些。

在用例建模中常犯的另外一个错误是把步骤当用例。

如下面这个,似乎挺完美,但是很明显是把操作步骤当用例了。

上面这些步骤,无非就是完成用户这个参与者的目标:注册。因此,应该改成下面这个样子:

在用例建模中,常犯的第3个错误是把系统活动当用例。

上面这个用例图中,建立连接对象、建立命令对象和执行SQL语句是系统内的活动,是用户无法感知的,不是用户的目的,用户也不关心。所以这种用例图是不准确的。

用例建模中常犯的第4个错误是使用系统观点来命名用例。

上面左右这两个用例图,哪个画得更好呢?

很明显,右边的比左边的要好,因为右边的是从用户的角度命名的用例,而左侧的用例是从系统的角度对用例进行命名,用户看到后会感到莫名其妙的。

用例图在总体上描述了用户的功能需求(系统提供的功能或服务),但对于每个用例还要进行详细的描述,以便让人知道这个用例具体要做什么,这就是用例规约。也就是说,用例模型实质上是由用例图和对每一个用例的详细描述(用例规约)组成的。

一个用例规约(usecasespecification)应该包含以下内容:

(1)用例的标识与名称;

(2)用例涉及到的参与者;

(3)用例的简要说明;

(5)用例执行的前置条件

(6)基本事件流;

(7)备选事件流;

(8)用例执行的后置条件;

(9)其它信息,如非功能性需求、设计约束、用例审核状态、编制者、修改记录等。

下面是一个用例文档中对借阅图书用例的一个描述情况。

用例之间的关系主要包括泛化、包含和扩展三种。

当多个用例拥有相似的属性或行为时,我们可以将它们的共性抽象为父用例,而其它用例作为泛化关系的子用例。子用例继承父用例中的属性和行为。

用例的泛化关系可以理解为同一业务目的的不同实现路径。

泛化(Generalization)关系在图形上使用带空心三角形箭头的实现表示,箭头由子用例指向父用例。

被包含的用例称作提供者用例,包含其它用例的用例称作客户用例。

在UML中,包含(include)关系使用带<>构造型的虚线箭头表示,箭头由基本用例(包含用例/客户用例)指向被包含的用例(提供者用例)。

下面是一个具体的例子:

基本用例提供扩展点,在扩展点中可以添加新的行为,扩展用例提供了一组插入片段,这些片段能插入到基本用例的扩展点上。

基本用例仅提供扩展点,而不必知道扩展用例的任何细节。

基本用例即使没有扩展用例也是完整的,这与包含关系不同。

一个用例可以提供多个扩展点,每个扩展点也可出现多次。

一般情况下,基本用例的执行不会涉及到扩展用例,只有在特定条件或事件发生时,才会执行扩展用例的功能。

在UML中,扩展关系使用带构造型<>的虚线箭头表示。箭头由扩展用例指向基本用例。

下面这个例子是图书馆借阅系统中,一个用例图片段:

在这个例子中,缴纳罚款即是读者的一个基本用例,也是归还图书的一个扩展用例。

“缴纳罚款”作为“归还图书”的扩展用例,只有在以下条件时,才会被执行:

(1)读者图书有超期或其它原因产生有罚款记录,且未缴清;

(2)读者选择了在归还图书后,同时缴清罚款。

扩展关系与包含关系有什么不同呢?

扩展关系中,基本用例是完整的,执行基本用例不一定执行扩展用例;但包含关系中的基本用例不完整,执行基本用例必须执行包含用例。

THE END
1.图书馆管理系统业务流程图数据流程图ER图经管图书馆管理系统业务流程图-数据流程图-ER图 https://bbs.pinggu.org/forum.php?mod=viewthread&tid=13094115
2.UML图书馆图书管理系统建模图书馆管理系统uml类图UML--图书馆图书管理系统建模 图书馆图书管理系统: 整理功能性需求: 需求分析: 用例的事件流描述: 部分系统对象类图: 部分交互作用图(时序图、协作图): 时序图:描绘借阅者借书过程 协作图:说明借阅者、图数管理系统、图书管理员、书刊、借阅信息之间的关系https://blog.csdn.net/m0_68312388/article/details/134860538
3.图书馆管理系统用例图活动图类图时序图工学(13页)图书馆管理系统用例图、活动图、类图、时序图工学.docx 13页内容提供方:资料杂货铺 大小:2.36 MB 字数:约7.47千字 发布时间:2023-10-23发布于四川 浏览人气:476 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)https://m.book118.com/html/2023/1022/7111146146005201.shtm
4.图书馆管理系统UML用例图迅捷画图,在线制作流程图这是一份图书馆管理系统UML用例图模板,简单围绕图书馆管理系统的功能用例进行制图,从外部用户角度描述系统功能的需求,帮助实现图书馆管理系统的开发,希望可以帮助您绘制UML用例图.https://www.liuchengtu.com/process/3313.html
5.图书馆管理系统UML用例图流程图模板图书馆管理系统UML用例图展示了系统的主要参与者(用户)和他们与系统之间的交互。主要参与者包括图书管理员、读者和系统管理员。图书管理员负责图书的采购、分类、借阅和归还等操作;读者可以查询图书信息、借阅和归还图书;系统管理员负责用户管理、权限设置和维护系统。通过这个用例图,我们可以清晰地了解到各个参与者在系统https://www.processon.com/view/5eeecdc2e0b34d4dba4af0b6
6.图书馆管理系统UML建模嫣雨染秋3.系统管理员:增加书目、删除或更新书目、预定信息处理、增加书籍减少书籍、增加借阅者账户信息、删除或更新借阅者账户信息、书籍信息查询、借阅者信息查询 二、 用例建模 1.提取参与者 借阅者、图书馆管理员、系统管理员 2.提取用例 ①借阅者请求服务的用例图 https://www.cnblogs.com/yanyuranqiu/p/4541917.html
7.图书馆管理系统GUIpython图书馆管理系统类图下面将使用如属官的借阅管理系统做一个图书馆管理系统的UML类图。参考自*Library Domain Model* 最终的绘制结果大致如下: 前期建模 对于图书馆的借阅系统的建模,首先我们把所有需要定义的基础类定义出来。分别是Book(书籍)、Library(图书馆)、Patron(顾客)、Librarian(图书管理员)四个基础的对象。 https://blog.51cto.com/u_12995/8955098
8.uml图书借阅管理系统用例图图中想表示查询借阅信息是必须要在用户登录之后才能实现的。推荐使用trufun plato UML2建模工具,里面带有图书管理系统的UML模型,欢迎到trufun官网下载使用 设计几个类,用UML类图说明一个 学生借阅图书 系统 基于UML的图书馆借阅管理系统设计(1)系统分析(包括系统描述(问题域描述)、用例模型、分析类图)。(2)系统设计(https://www.zboao.com/cgal/9422.html
9.UML图书管理系统分析:用例类图与流程本文主要探讨了使用UML(统一建模语言)进行软件需求分析,以图书管理系统为例,涵盖了用例图、类图、顺序图、状态图、活动图、组件图和部署图等多个方面,旨在清晰展示系统功能模块及各模块间的关系。在UML软件需求分析中,首先对图书管理系统进行了需求描述,强调了21世纪信息管理的重要性和图书管理系统在提高工作效率和服务https://www.166ai.cn/665.html
10.图书管理系统用例图7篇(全文)图书管理系统 UML建模与设计模式 实验报告 计算机与信息工程学院 一、实验目的 在熟悉用例概念与应用的基础上,掌握用例模型的建立,包括: 1.掌握用例图的建立。 2.掌握用例描述文档的编写。3.掌握建模工具的使用。 二、实验内容 根据以下需求设计一个图书馆管理系统的用例图模型,包括:用例图和主要用例的描述文档。 https://www.99xueshu.com/w/filesaiudqen.html
11.uml类图怎么画?跟着案例一起学习画UML类图(2)建模UML是一种建模语言,用模型元素来组建整个系统的模型,面向对象的分析在于加强对问题空间和系统任务的理解,是现代软件工程环境中对象分析和设计的重要工具,设为面向对象技术的重要结果之一 三、绘制UML类图的步骤 下面,我们就以一个简单的图书馆管理系统为例,来看看如何绘制不同的UML类图:确定类和属性:https://baijiahao.baidu.com/s?id=1789662829484749280&wfr=spider&for=pc
12.图书馆管理系统用例图活动图类图时序图.doc该【图书馆管理系统用例图、活动图、类图、时序图 】是由【艾米】上传分享,文档一共【15】页,该文档可以免费在线阅读,需要了解更多关于【图书馆管理系统用例图、活动图、类图、时序图 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文https://www.taodocs.com/p-857406246.html
13.广州》?形考作业3基于UML的大学图书馆图书信息管理系统设计基于UML 的大学图书管理系统分析与设计 1.概述 随着现代科学技术的发展和社会的进步,各大大学的图书馆规模也不断扩大,与此同时,图书的种类和数量以及有关图 书的各种信息也迅速的增加,这一庞大的信息量也对图书馆的信息管理技术提出了更高的要求。为了避免图书管理上的混乱, https://www.diandahome.com/235535.html
14.uml图书管理系统需求分析与设计二、图书馆图书管理系统的需求分析与设计过程 图书管理系统的开发和应用主要通过两个步骤来实现:首先是基于系统功能的需求分析,其次是系统模型的设计和实现。 2.1需求分析 需求分析是信息系统设计过程中的一个重要阶段,其中一个主要任务是确定系统的功能需求,并采用面向对象方法,即基于UML的可视化系统进行需求分析。需求分https://www.360wenmi.com/f/file68j4f5m2.html
15.基于UML的图书管理系统的设计基于UML的图书管理系统的设计,面向对象,UML, ROSE,图书管理系统, 随着计算机技术特别是网络技术的飞速发展,计算机的应用领域不断扩大,各行各业都离不开计算机,图书管理也不例外。我国对图书的https://wap.cnki.net/touch/web/Dissertation/Article/2007133361.nh.html
16.《图书管理系统》用例图活动图与时序图简单绘制今天做了一道UML技能抽查题目——图书管理系统用户信息管理模块,做一下笔记。 使用工具:startUML 用例图的绘制: 用例 ├── 登录 └── (Association)系统管理员 ——> └── (Association)图书馆工作人员 ——> └── (Association)教职员工 —&m https://www.pianshen.com/article/28312020978/
17.学生信息管理系统ER图,数据流图用例图以及用例说明(部分)软件图书馆信息管理系统报告.pdf 上传者:qq_58157133时间:2021-11-24 个人通讯录系统uml图 uml图ER图,数据流程图等课程设计必备图 上传者:muir1989111时间:2011-12-16 旅游信息管理系统.zip 人工智能-项目实践-信息管理系统 上传者:admin_maxin时间:2024-03-06 https://www.iteye.com/resource/m0_45272112-13585493
18.(完整版)图书馆管理系统用例图活动图类图时序图借书时,读者先将书拿予管理员,管理员对书籍和读者进行检验,若书籍和 读者都符合借书条件,则借书成功。2、还书时序图59图书馆管理系统还书时序图时序图说明】(1)login ():登录系统。(2)getitem(): 取得书籍条目信息。(3)update ():对图书馆书籍条目和借阅者信息进行更新条目。 还书时,读者先将书交给管理员https://www.renrendoc.com/paper/181918072.html
19.图书馆系统UML协作图推荐分类 流程图组织架构图模型图思维导图图表图形分析画布示意图UML图路线图时间轴E-R图鱼骨图关系图概念图韦恩图甘特图基础教育高校与高等教育毕业/考证知识科普项目管理IT/软件教育工作互联网公司经营物流人事/行政生活攻略工作计划财务市场分析政府电子商务数据分析新能源金融医疗PPT https://imiaoban.com/pic/37460.html
20.怎么画图书馆管理系统流程图?模板一键下载!图书馆管理系统流程图是一种用于表示和描述图书馆管理系统操作和流程的图形化工具。它由各种图形符号和文本说明组成,能够清晰地表示图书馆管理系统中各个环节之间的关系、数据的流动和处理过程。那么图书管理系统流程图怎么画呢?本文结合好用的流程图软件博思白板boardmix为大家进行分享,快来学习吧!在线流程图的类型有哪https://boardmix.cn/article/library-management-system-flowchart/
21.蔡伟鸿14.[科研课题]系统漏洞扫描和基于IPv6协议的一致性测试系统(2004B10101037) 项目来源: 广东省科技项目, 2004 主持人: 蔡伟鸿 15.[科研课题]基于UML状态图的IPv6协议测试方法的研究 项目来源: 广东省自然科学基金(04010981), 2004 主持人: 蔡伟鸿 16.[科研课题]具有数字版权的电子产品交易平台 http://eng.stu.edu.cn/info/1082/1806.htm