识别用例和用例图
02-用例和用例图

3.4.4 几种关系的比较
关系类型
说明
表示符号
关联
actor与use case之间
泛化
actor之间或use case之间
包含
use case之间
扩展
use case之间
用例图
用例图(use case diagram)是显示一组用例、角色以及它 们之间的关系的图.
在UML中, 一个用例模型若干个用例图描述.
角色
由于Actor实际上是一个特殊类, 因此它们之间可以 存在一定的关系,如:
脚本/场景
脚本(scenario)在UML中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况.
其它译名: 情景、情节、剧本.
每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
实例分析:语音邮箱系统----用例脚本
用例3: 登录系统 1. 邮箱用户完成邮箱号输入操作. 2. 邮箱用户键入密码并后跟#键.(默认号码与邮箱号相同) 3. 语音邮件系统播放邮箱菜单: 按1键接收信息. 按2键更改密码. 按3键更改问候语.
实例分析:语音邮箱系统----用例脚本
用例4: 接收信息 1. 邮箱用户完成登录操作. 2. 邮箱用户选择 “接收信息”菜单选项. 3. 语音邮件系统播放信息菜单: 按1收听当前信息; 按2存储当前信息; 按3删除当前信息; 按4返回邮箱菜单. 4. 邮箱用户选择“收听当前信息”菜单选项. 5. 语音邮件系统播放当前新信息,若无新信息,播放当前已有信 息.(注意: 只播放,不删除) 6. 语音邮件系统播放信息菜单. 7. 用户选择”删除当前信息”,则信息被永久删除. 8. 继续执行第3步.
第6章 用例图

3、构建用例模型
采 购 员 用 例 图
采购员能够通过该系统进行订货管理活动。采购员首先根据经营情 况统计所缺的生产资料,根据需要制定出订单。
UML统一建模语言
五、使用Rose创建用例图的步骤说明
3、构建用例模型
会 计 用 例 图
会计负责产品的统计分析 管理,它能够通过该系统 进行如下活动: (1)查询基本信息。会计 能够查询产品的基本信息, 根据产品的基本信息,制 定出相应的方案。 (2)查询销售信息。会计 根据销售情况汇总后交销 售部制定合理的销售方案。 (3)查询供应商信息。会 计能够查询供应商信息。 (4)查询缺货信息。会计 能够查询缺货信息。 (5)查询报损信息。会计 能够查询报损信息。
1、需求分析
“企业进、存、销管理系统” 功能性需求包括以下内容: (1)采购员根据生产原料的使用情况判断采购用品,对需要订购产品信息 统计订货的,并制作产品订单。最后根据订单进行采购活动。 (2)仓库管理员负责产品的库存管理。包括产品入库管理、处理盘点信息、 处理报损产品信息和一些信息的设置。这些设置信息,包括:供应商信息、产 品信息。仓库管理员每天对产品进行一次盘点,当发现库存产品有损坏时,及 时处理报损信息。当产品生产后,将产品进行入库。当产品销售后时,产品进 行出库处理。 (3)统计人员负责统计分析管理,包括:查询产品信息、查询销售信息、 查询供应商信息、查询缺货信息、查询报表信息,并制作报表。统计分析员使 用系统的统计分析功能,了解产品信息、销售信息、供应商信息、库存信息。 (4)在销售员为客户提供售货服务时,接受客户购买产品,根据系统的定 价计算出产品的总价,客户付款,系统自动保存客户购买记录。 (5)系统管理员负责本系统的系统维护。系统管理员负责员工信息管理、 供货商信息管理以及系统维护等。每种管理者都通过自己的用户名称和密码登 录到各自的管理系统中。
用例及用例图案例

用例及用例图-案例
3.7 业务用例图 3.8 案例
1
3.7 业务用例图
• 作用
– 帮助了解机构及其软件系统(或工作内容) – 帮助业务过程重建工程工作 – 帮助员工(小组内成员)充分了解业务及其角色
• 什么时候需要
– 对机构不熟悉 – 机构业务发生变更 – 机构中主要部分使用的软件需建立 – 机构中有些大型复杂工作流的文档不足
20
● ⑤ 绘制用例图。
21
● ⑥ 编制用例说明。
● 用例:客房预订 ●参与者:柜台工作人员 ●说明:
① 工作人员启动预订功能。 ② 根据预订需求查看客房空闲信息。 ③ 输入预订人信息。 ④ 安排客房。 ⑤ 预订成功。
22
● ⑥ 编制用例说明。
● 用例:预订变更 ●参与者:柜台工作人员 ●说明:
A2:有冲突。
⑧系统添加新课程,并提示添加成功。
⑨系统回到管理主界面,显示所有课程,用例结束。
14
● ⑦ 对异常流程确定单独用例。 ⑧ 优化用例图,解决用例之间的冲突和重复。
15
案例3:
宾馆客房业务管理用例分析
宾馆客房业务管理提供客房预订、预订变更、 客房入住、退房结帐、旅客信息查询几个方面的 功能。
第3章 用例和用例图
● 3.4 用例图 3.4.1 用例图的作用 3.4.2 用例图的形式
● 3.5 用例描述 ● 3.6 用例分析 ● 3.7 业务用例图
● —— 重要知识点
26
本章作业
(1) 什么叫用例? (2) 用例图在软件建模中的作用是什么? (3) 用例之间存在那几种关系? (4) 包含关系和扩展关系有什么区别? (5) 参与者可以是那几种形式? (6) 什么叫事件流,作用是什么?
用例和用例图

用例
用例(use case)是Ivar Jacobson发明的. 其它的中 文译名有: 用况、用案等. 定义1: 用例是对一个活动者(actor)使用系统的一项 功能时所进行的交互过程的一个文字描述序列. 定义2: 用例是系统、子系统或类和外部参与者交互 的动作序列的说明, 包括可选的动作序列和会出现 异常的动作序列. 用例是代表系统中各个项目相关人员之间就系统的 行为所达成的契约, 软件开发过程是用例驱动的.
实例1:图书馆管理系统中的用例图
1.确定系统涉及的总体信息 图书馆管理系统是对书籍的借阅及读者信息进行统 一管理的系统,具体包括读者的借书、还书,书籍 预订;图书馆管理员的书籍借出处理、书籍归还处 理、预订信息处理;还有系统管理员的系统维护, 包括增加书目、删除或更新书目、增加书籍、减少 书籍、增加读者账户信息、删除或更新读者账户信 息、书籍信息查询、读者信息查询等。
用例图的作用
用例图展示了用例之间以及用例与参与者之间是怎样相互联 系的。用例图对系统、子系统或类的行为进行了可视化,使 用户能够理解如何使用这些元素,并使开发者能够实现这些 元素。 用例图主要用来描述用户的功能需求。UML侧重从最终用户 的角度来理解软件系统的需求,强调谁在使用系统、系统可 以完成哪些功能。用例分析技术已经是一种公认有效的用户 需求获取、分析和描述技术
情况二:假如机票购买者通过呼叫中心,由人工座席 操作订票系统购买机票,那么谁是参与者?
情况三:如果机票购买者通过呼叫中心的自动语音预 定机票而不是通过人工座席,那么谁是参与者?
情况四:如果扩大系统边界,让呼叫中心成为机票预 定系统的一个子系统,并且假设机票购买者将可以 自主选择是通过人工座席还是自动语音登录网站预 订机票,那么谁是参与者?
用例和用例图

第二页,编辑于星期二:十三点 五十六分。
第三页,编辑于星期二:十三点 五十六分。
第四页,编辑于星期二:十三点 五十六分。
第五页,编辑于星期二:十三点 五十六分。
第六页,编辑于星期二:十三点 五十六分。
第七页,编辑于星期二:十三点 五十六分。
第八页,编辑于星期二:十三点 五十六分。
第二十三页,编辑于星期二:十三点 五十六分。
第二十四页,编辑于星期二:十三点 五十六分。
第二十五页,编辑于星期二:十三点 五十六分。
第二十六页,编辑于星期二:十三点 五十六分。
第二十七页,编辑于星期二:十三点 五十六分。
第二十八页,编辑于星期二:十三点 五十六分。
第二十九页,编辑于星期二:十三点 五十六分。
第十六页,编辑于星期二:十三点 五十六分。
第十七页,编辑于星期二:十三点 五十六分。
第十八页,编辑于星期二:十三点 五十六分。
第十九页,编辑于星期二:十三点 五十六分。
第二十页,编辑于星期二:十三点 五十六分。
第二十一页,编辑于星期二:十三点 五十六分。
第二十二页,编辑于星期二:十三点 五十六分。
第三十页,编辑于星期二:十三点 五十六分。
第三十一页,编辑于星期二:十三点 五十六分。
第三十二页,编辑于星期二:十三点 五十六分。
第三十三页,编辑点 五十六分。
第九页,编辑于星期二:十三点 五十六分。
第十页,编辑于星期二:十三点 五十六分。
第十一页,编辑于星期二:十三点 五十六分。
第十二页,编辑于星期二:十三点 五十六分。
第十三页,编辑于星期二:十三点 五十六分。
第十四页,编辑于星期二:十三点 五十六分。
第2章用例和用例图

成绩管理
UML用例图组成( UML用例图组成(续) 用例图组成
饮料销售机
UML用例图组成( UML用例图组成(续) 用例图组成
用例与用例的扩展关联用来表示通过对已有用例增加步 用例与用例的扩展关联用来表示通过对已有用例增加步 扩展关联用来表示 骤创建一个新的用例,即对原有的用例进行了扩展。 骤创建一个新的用例 即对原有的用例进行了扩展。扩展只能 即对原有的用例进行了扩展 发生在基用例的序列中的某个具体指定点上。这个点叫做扩 发生在基用例的序列中的某个具体指定点上。 展点.在UML图中,使用带虚线箭头表示,并在线上标有构造 展点 在UML图中,使用带虚线箭头表示, 图中 带虚线箭头表示 如下图所示: 型<<extend>> 。如下图所示:
UML用例图组成( UML用例图组成(续) 用例图组成
包含关联与扩展关联的区别: 包含关联与扩展关联的区别:
存在包含关联的两个用例,在执行基本用例时 一定会执 存在包含关联的两个用例 在执行基本用例时,一定会执 在执行基本用例时 行包含用例;存在扩展关联的两个用例,在执行基本用例时 在执行基本用例时, 行包含用例;存在扩展关联的两个用例 在执行基本用例时 可以执行,也可以不执行扩展部分 可以执行 也可以不执行扩展部分. 也可以不执行扩展部分
UML用例图的作用( UML用例图的作用(续) 用例图的作用
• 用例图的主要作用: 用例图的主要作用:
– 用来描述待开发系统的功能需求和系统使用场景 – 作为开发过程的基础,驱动各阶段的开发工作 作为开发过程的基础, – 用于验证与确认系统需求
画好用例图是由软件需求到最终实现的第一步. 画好用例图是由软件需求到最终实现的第一步.
UML用例图的建模( UML用例图的建模(续) 用例图的建模
用例识别

用例图用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。
用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。
用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。
当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。
它将系统功能划分成对参与者(即系统的理想用户)有用的需求。
而交互部分被称作用例。
用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。
用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。
用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合成更大的模块。
有时,可以将用例的实例引入到图中。
用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。
一.参与者(Actor)1.参与者的概念参与者是系统外部的一个实体,它以某种方式参与用例的执行过程。
参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。
参与着由参与用例时所担当的角色来表示。
在UML中,参与者用名字写在下面的人形图标表示。
每个参与者可以参与一个或多个用例。
它通过交换信息与用例发生交互(因此也与用例所在的系统或类发生了交互),而参与者的内部实现与用例是不相关的,可以用一组定义其状态的属性充分的描述参与者。
参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可以运行的进程。
第一类参与者是真实的人,即用户,是最常见的参与者,几乎存在于每个系统中。
命名这类参与者时,应当按照业务而不是位置命名,因为一个人可能有很多业务。
用例图

用例图的Rose建模 建模 用例图的
RecordGrade
QueryGrade Teacher Student ModifyGrade
一、创建用例图 右击“ 右击“use case view” -new->use case diagram
二、重命名用例图并双击打开用例图窗口
用例 参与者 关联 扩展或包含 泛化
实例: 实例:学生管理系统
(4)意义 它有助于在将来实现系统时,确定哪些功能可以重用, 它有助于在将来实现系统时,确定哪些功能可以重用, 在编写代码时就可实现代码的重用,缩短开发周期。 在编写代码时就可实现代码的重用,缩短开发周期。
提示:执行基用例时,每次都必须调用被包含用例。 提示:执行基用例时,每次都必须调用被包含用例。
用例名称 标识符 基本操作流程
归还图书 UC0002 1.图书管理员输入图书信息 图书管理员输入图书信息 2.检索借阅该图书的借阅者的信息 检索借阅该图书的借阅者的信息 3.删除与该图书相关的借阅记录 删除与该图书相关的借阅记录 1a.图书管理员发现图书被损坏,进行损坏处罚 图书管理员发现图书被损坏, 图书管理员发现图书被损坏 1b.输入的图书不存在时,进行确认 输入的图书不存在时, 输入的图书不存在时 2a.借阅者有超期的借阅信息时,进行超期处理 借阅者有超期的借阅信息时, 借阅者有超期的借阅信息时
myCoat.pay(); } }
(3)使用场合 ) 对扩展用例的限制规则: 对扩展用例的限制规则:将一些常规的动作放在一个基本 用例中; 用例中;将可选的或只在特定条件下才执行的动作放在它 的扩展用例中。 的扩展用例中。
练习: 练习:图书管理系统
——摘自《程序员》
答案一: 答案一:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3页
2015年5月14日星期四
4.1 识别用例图
建立一个系统的用例图通常是开发过程中一个 困难的部分。
建立一个用例图包括以下步骤:
定义系统。 确定参与者和用例。 描述用例。 定义用例和参与者之间的关系。 定义用例之间的关系。
第4页 2015年5月14日星期四
4.1 识别用例图
客户和开发者通过用例图达成共识,用例图包 括以下几个内容:
第9页 2015年5月14日星期四
4.2 用例图组件
二、用例(Use Case)
The specification of a sequence of actions, including variants, that a system (or other entity) can perform, interacting with actors of the system. A use case is a coherent unit of functionality provided by a system, a subsystem, or a class as manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by the system.
第19页
2015年5月14日星期四
4.3 用例关系
3. 泛化关系
用例的泛化关系指的是一个父用例可以被特 化为多个子用例,而父用例和子用例之间的 关系就是泛化关系。 A generalization from use case A to use case B indicates that A is a specialization of B.
第13页
2015年5月14日星期四
4.2 用例图组件
用例的文档化
一旦决定了每个用例将做什么和谁将调用它,就应 该写一个简短的文本来描述这一点。这段描述在开 发过程的初始阶段完成,它应该以一些句子说明用 例的目的,还应该说明用例提供的功能的高层次定 义。
第14页
2015年5月14日星期四
4.2 用例图组件
第17页
2015年5月14日星期四
4.3 用例关系
2. 扩展关系
在一定条件下,把新的行为加入到已有的用例中,获得的新 用例称为扩展用例,原有的用例称为基础用例,从扩展用例 到基础用例的关系就是扩展关系。
An extend relationship from use case A to use case B indicates that an instance of use case B may be extended by the behavior specified by A.
识别用例的方法
使用已经定义的参与者来识别用例。对于每个参与 者,都需要回答一系列问题:
参与者需要哪些功能? 参与者需要什么支持?
参与者如何与系统信息交互?
用例必须一直与至少一个参与者相关联。
第15页
2015年5月14日星期四
4.3 用例关系
用例之间的关系
用例与用例之间有三种关系:
包含关系(include):当一个用例一直使用 另一个用例时就确定为包含关系。
谁将与系统交互。(参与者)
系统将做什么。(用例) 需要什么接口。(关系)
第5页
2015年5月14日星期四
4.2 用例图组件
一、参与者(Actor) :
参与者代表的是与系统交互的任何人或任何事物。 参与者是外部的,不是系统的组成部分,但如果要 使用或支持参与者,则需要一个接口。 An Actor defines a coherent set of roles that users of use cases play when interacting with use cases. An actor has one role for each use case with which it communicates.
2015年5月14日星期四
4.4 书写用例文档
前置后置条件 ATM自动取款机的取款用例的前置条件?
ATM用户的帐户里有足够的金额
第26页
2015年5月14日星期四
4.4 书写用例文档
基本路径描述 1.使用主动语言
2.句子必须以参与者或者系统做主语
3.每一句都要朝目标迈进 4.只书写“可观测的” 5.不要涉及界面细节
第8页
2015年5月14日星期四
4.2 用例图组件
参与者如何确定?可以通过以下一些问题来帮 助你确定参与者:
谁使用系统的主要功能? 谁从系统获取信息? 谁支持和维护系统? 谁需要系统的支持以履行他们的日常职责? 在组织里这个系统被用到哪里? 与系统交互的是哪些硬件设备? 与这个系统交互的其他系统是哪些?
第27页
2015年5月14日星期四
4.4 书写用例文档
使用主动语言 1.欧文从贝克汉姆处得到传球,守门员...
2.贝克汉姆传球给欧文,欧文射门,守门员扑救...
3.用户名和密码被验证
4.系统验证用户名和密码
第28页
2015年5月14日星期四
4.4 书写用例文档
每一句都要朝目标ቤተ መጻሕፍቲ ባይዱ进 参与者填写姓名
订票
在UML中,用例的泛化关系是通过一个从 子用例指向父用例的三角箭头表示的,如右 图所示。
网上订票
电话订票
第20页
2015年5月14日星期四
例1 建立项目与资源管理系统的Use case图
系统的主要功能是:项目管理,资源管理和系 统管理。项目管理包括项目的增加、删除、更 新。资源管理包括对资源和技能的添加、删除 和更新。系统管理包括系统的启动和关闭,数 据的存储和备份等功能。
系统能够从帐户中扣除取款金额
系统允许选择“打印数据” 或者 “不打印数据”
系统能够显示交易结束信息
第2页 2015年5月14日星期四
4.1 识别用例图
用例图最重要的作用是使最终用户和开发者之 间进行交流。
在开发的初始阶段,通过确定系统的参与者和 主要用例来建立用例图。在细化阶段,把更多 的详细信息加入到已确定的用例中,用例模型 将越来越成熟。
第4章 用例和用例图
一个系统的初始阶段是从获得需求开始的。一 旦需求确定了,就可以在问题说明中确定用例。
本章说明了如何从问题说明中提取用例以及如 何建立用例图模型。
第1页
2015年5月14日星期四
用例:基于用户目标的需求组织形式
立足开发者视角(银行取款) 系统要求用户输入合法的密码
系统能够接受用户录入的取款金额
第6页
2015年5月14日星期四
4.2 用例图组件
一、参与者:
参与者用于表示使用系统的对象,参与者可以是 一个人或者一个系统。参与者由一个固定的图形表 示,并在图形下面列出参与者的名字。
管理员
第7页
2015年5月14日星期四
4.2 用例图组件
每个参与者的名称要反映参与者的角色,而不 是它的功能或它的实例,所以给参与者提供一个最 能描述其功能的合适名称是非常重要的。并且我们 要避免为代表人的参与者起一个实际人名。如:参 与者张三是个“教师”,是他所扮演的角色。如果 命名为 “张三”就不对了。
第23页
2015年5月14日星期四
4.4 书写用例文档
前置后置条件(起点与终点) 前置条件:开始用例前所必需的系统及其环境 条件。 注:前置条件必须是系统在用例开始前能检测 到的。 后置条件:用例成功后系统应该具备的状态。
第24页
2015年5月14日星期四
4.4 书写用例文档
前置后置条件
第25页
第10页
2015年5月14日星期四
4.2 用例图组件
用例简介
用例对参与者和系统之间的交互建立模型。它是通 过参与者调用功能来启动的,这将会产生一个可视 化的结果。一个用例产生的结果必须是一个给系统 用户的特定值。
用例的功能和结果必须是一个完整且有意义的事件 流。它阐明了系统提供给参与者的功能。
第11页
第22页
2015年5月14日星期四
4.4 书写用例文档
(10) ATM从客户帐户中减去所取金额。 (11) ATM向客户提供要取的钱。 (12) ATM打印清单。 ATM退出客户的卡,用例结束。 子事件流a: a1. 提示用户输入无效密码,请求再次输入; a2. 如果三次输入无效密码,系统自动关闭,退出客户银行卡。 子事件流b: b1. 提示用户余额不够。 b2. 返回(5),等待客户重新选择。 后置条件:结束取款事件。
第21页
2015年5月14日星期四
4.4 书写用例文档
用例描述: 用例名称:取款 前置条件: 基本路径: (1) 客户将卡插入ATM机,开始用例。 (2) ATM显示欢迎消息并提示客户输入密码。 (3) 客户输入密码。 (4)ATM确认密码有效。如果无效则执行子事件流a。 (5) ATM提供以下选项:存钱,取钱,查询。 (6) 用户选择取钱选项。 (7) ATM提示输入所取金额。 (8) 用户输入所取金额。 (9) ATM确定该帐户是否有足够的金额。如果余额不够,则执行子事件流b。
第31页
2015年5月14日星期四
4.4 书写用例文档
不要涉及界面细节 会员从下拉框中选择类别
会员在相应文本框中输入查询条件
会员点击”确定”按钮
第32页
2015年5月14日星期四
4.4 书写用例文档
用例名称:结账 用例描述:会员完成一次与商店的交易 参与者:会员 前置条件:会员已经完成选购 基本路径: 1. 会员请求结账 2. 系统检查账户是否处于打开状态 3. 系统检查库存是否满足 4. 系统检查会员提交的信息是否充分 5. 系统合计订单总价 6. 系统显示收费明细 7. 会员确认 8. 系统保存订单信息,通知供应商发货,减少相应库存数量。