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.图书馆借阅管理系统流程图,数据流图,数据字典查询流程:用户查找图书->输入书名或编号->系统搜索并展示结果。 数据流图 (Data Flow Diagram, DFD): 实体:如用户、图书、借阅记录等。 过程/功能:包括借书、还书、查询等操作。 数据存储:如用户信息库、图书目录数据库、借阅状态表。 数据流:例如用户注册信息流入用户管理模块,借阅请求流向图书管理模块,归还信息https://wenku.csdn.net/answer/vkccco8cec
2.图书馆借阅系统数据流图.pdf关联图: 管理员 图书馆管理系统 书籍 读者 顶层图: 管理员 读者信息管理 书籍信息管理 借阅数据 借阅信息管理 读者数据 借阅数据 借阅 书籍 读者 数据流图: 1 管理员 借阅数据 信息 读者信息 书籍信息 借阅信息管理 返回 管理 管理 查询是否已 查询已借阅 还书 超期赔 读者 借阅 被借阅 的所有书籍 偿提醒 https://max.book118.com/html/2020/0711/6234051241002215.shtm
3.图书管理系统用例图7篇(全文)在熟悉用例概念与应用的基础上,掌握用例模型的建立,包括: 1.掌握用例图的建立。 2.掌握用例描述文档的编写。3.掌握建模工具的使用。 二、实验内容 根据以下需求设计一个图书馆管理系统的用例图模型,包括:用例图和主要用例的描述文档。 基本功能要求: 图书管理:新书登记,图书查询,图书注销; 借阅管理:借书,还书,查https://www.99xueshu.com/w/filesaiudqen.html
4.图书管理系统数据模型ER图20240203.pptx图书管理系统数据模型E-R图XXX,ACLICKTOUNLIMITEDPOSSIBILITIES汇报人:XXX目录01添加目录项标题02图书管理系统概述03实体-关系图(E-R图)04图书管理系统实体分析05图书管理系统关系分析06图书管理系统E-R图设计添加章节标题PART01图书管理系统概述PART02图书管理系统的定义和功能定义:图书管理系统是一种用于管理图书馆藏书https://m.renrendoc.com/paper/309783453.html
5.图书馆管理系统er图图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表。https://www.zboao.com/cgal/9078.html
6.图书馆借阅ER流程图模板图书馆借阅E-R模型是一种用于描述图书馆借阅系统的概念模型。它包括实体(Entity)和关系(Relationship)两部分。实体是指现实世界中可以区分的对象,如图书、读者等;关系则是指实体之间的联系,如借阅、归还等。通过建立E-R模型,可以清晰地表示图书馆借阅系统中各个实体及其之间的关系,有助于更好地理解和设计该系统。在https://www.processon.com/view/5e5f223ae4b09aaf33f5315f
7.概念模型图是什么?5个概念模型绘图示例图书借阅管理系统ER图 3. 如何绘制概念模型图 boardmix博思白板是一款简单实用的概念模型图绘制软件,支持使用多种操作系统利用浏览器在线作图。它内置多种形式的流程图模板,如泳道图、组织结构图、会议流程图、时间线、UML等多种模板,可一键免费套用,是提高绘图效率的利器,帮助你在线绘制专业的数据流图。 https://boardmix.cn/article/conceptual-data-model/
8.已知图书馆数据库,有三个实体:图书出版社读者。每位读者可以根据查询结果,当有图书在库时,读者可直接借阅;当所查书目的所有图 书己被他人借走时,读者可进行预约,待他人还书后,由馆员进行电话通知; (5)读者借书时,由系统生成本次借书的唯一流水号,并登记借书证号、书号、 借书日期,其中同时借多本书使用同一流水号,每种书目都有一个允许一次借阅的借 书时长,一般为90天https://www.xuesai.cn/souti/0BC42926.html
9.图书馆管理系统ER图;关系模型参考样本.docx文档介绍:该【图书馆管理系统ER图;关系模型参考样本】是由【鼠标】上传分享,文档一共【2】页,该文档可以免费在线阅读,需要了解更多关于【图书馆管理系统ER图;关系模型参考样本】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的https://m.taodocs.com/p-919430748.html
10.图书管理系统分析(精选十篇)图书管理系统从图书管理、用户管理、借还管理3个方面出发。其中图书管理主要针对图书管理系统的管理者而言, 它可以实现新书入库、书籍分类和库存查询等图书管理功能, 以便维护图书馆的正常运行;用户管理只有一定权限的管理员才能对普通用户进行管理, 亦是系统基础模块之一, 它有用户信息和添加用户的用户管理功能;借还管理https://www.360wenmi.com/f/cnkeyrc64zlp.html
11.图书借阅系统甘特图绘制(图书馆管理系统甘特图)今天给各位分享图书借阅系统甘特图绘制的知识,其中也会对图书馆管理系统甘特图进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 本文目录一览: 1、干货笔记|项目管理之WBS 2、管理学基础的问题计划工作的方法和技术 3、软件工程各种图的区别 4、公司管理人员工作总结5篇 5、卖方建议书https://www.huoban.com/news/post/128575.html
12.某图书馆图书借阅系统的数据关系模型如图所示。请根据该数据库某图书馆图书借阅系统的数据关系模型如图所示。请根据该数据库概念模型设计该数据库逻辑结构。 正确答案 答案解析 略 真诚赞赏,手留余香 小额打赏 169人已赞赏https://www.examk.com/p/3335020640.html
13.4.2图书借阅系统数据库设计MySQL腾讯云开发者社区- 评论 对图书有话说,可以点击评论、打分,会发给管理员进行审批,审批通过后,会在图书下公共展示该评论。 个人中心 代码语言:txt 复制 - 个人信息展示 - 我的借阅 - 我的收藏 - 修改密码、密记密码 1.4 数据流图 待补充 二、概念结构设计 说明:主要抽象出系统实体,并采用E-R模型进行设计 https://cloud.tencent.com/developer/article/2266828
14.图书馆数据库管理系统用例图用例图由用例、参与者以及它们之间的关系构成,如下图所示: 1.1 用例 用例表示参与者使用系统进行操作的功能需求。用例通常以椭圆形表示,用例名在椭圆形内。 在图书馆数据库管理系统中,例如“查询图书信息”、“借阅图书”、“归还图书”等用例。 1.2 参与者 参与者是使用系统的人、机器、其他系统或其他实体,它们与https://www.volcengine.com/theme/845520-T-7-1
15.数据库系统实体是什么意思帆软数字化转型知识库图书馆管理系统:设计一个图书馆管理系统的数据库模型,包括图书、读者、借阅记录等实体及其关系,实现图书管理、读者管理和借阅管理等功能。 医院管理系统:设计一个医院管理系统的数据库模型,包括医生、患者、病历等实体及其关系,实现医生管理、患者管理和病历管理等功能。 https://www.fanruan.com/blog/article/246844/
16.《图书管理系统》用例图活动图与时序图简单绘制图书管理系统的用例图元素、及关系分析说明文字 参与者:借阅人员、图书管理员系统功能结构:图书馆图书管理系统(总)、借阅证管理系统(分)、图书管理系统(分)、图书借阅管理系统、归还、过期处理、丢失处理、借阅信息查询、打印催还单;打印催还单作为过期处理的包含用例,图书类目查询与借阅信息查询同时由借阅人员与https://www.pianshen.com/article/28312020978/
17.2018级老年服务与管理专业人才培养方案(一)课程体系结构图 (二)实践教学体系 实践教学以学校仿真环境和养老机构真实环境为依托,以职业能力培养为主线构建实践教学体系,遵循老年照护职业岗位能力培养的基本规律,开展课程教学、仿真实训和临床实习。技能训练由简单到复杂、由单项到综合、由仿真实训到养老机构实习,在不断深入的职业实践过程中,培养学生的综合职业https://jwc.wfhlxy.com/info/1023/1358.htm
18.java实现简单的图书管理系统javaoperate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表 Root类:继承了Person类,实现operate(查阅,删除,增加,显示书籍列表)接口 User类:继承了Person类,实现operate(查询,借阅,还书,显示书籍列表)接口 Main类:Main中的主函数开启整个项目。 模型图: 声明: 本项目只是一个简单的面向对象入门https://www.jb51.net/article/217576.htm