用例和用例图
UML用例和用例图
![UML用例和用例图](https://img.taocdn.com/s3/m/ac9c70c04b35eefdc9d33336.png)
h
18
主要内容
基本概念:Use case、Actor、
Scenario Use case间的关系 Use Case 分析技术 案例讲解
h
19
关系
• 参与者与用例之间
– 关联关系
• 用例与用例之间
– 包含关系 (include) – 扩展关系 (extend) – 泛化关系 (generalization)
• 主事件流: • 1、系统显示ID和密码窗口; • 2、顾客键入ID和密码,然后按OK键; • 3、系统验证顾客ID和密码,并显示个人信息窗口; • 4、顾客键入姓名、街道地址、城市、邮政编码、电话号码,然
后按OK键; • 5、系统验证用户是否为老顾客; • 6、系统显示可以卖的商品列表; • 7、顾客在准备购买的商品图片上单击,并在图片旁边输入要购
• 用例结束后的系统状态
• 其他需要描述的内容
用例描述原则:尽可能写的“充分”,而不是追求写的形 式化、完整或漂亮。
h
32
h
33
书写用例文档
——路径交互步骤的描述
只书写“可观测”的 使用主动语句 句子必须以执行者或系统作为主语 每一句都要朝目标迈进 分支和循环 不要涉及界面细节
h
34
书写用例文档
买的数量。选购商品完毕后按Done按钮; • 8、系统通过库存系统验证要购买的商品是否有足够库存; • …….(后续描述省略)
问题:对用户界面的描述过于详细,对于需求文档来说, 详细的用户描述对获取需求并无帮助。
h
45
改进后的描述
• Use Case:Buy Something • 参与者:Customer • 主事件流: • 1、顾客使用ID和密码进入系统; • 2、系统验证顾客身份; • 3、顾客提供姓名、地址、电话号码; • 4、系统验证顾客是否为老顾客; • 5、顾客选择要购买的商品和数量; • 6、系统通过库存系统验证要购买的商品是否有足
用例及用例图案例
![用例及用例图案例](https://img.taocdn.com/s3/m/e9c6224ca6c30c2258019e22.png)
用例及用例图-案例
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) 什么叫事件流,作用是什么?
用例和用例图
![用例和用例图](https://img.taocdn.com/s3/m/70675ef2cc1755270622088a.png)
第二页,编辑于星期二:十三点 五十六分。
第三页,编辑于星期二:十三点 五十六分。
第四页,编辑于星期二:十三点 五十六分。
第五页,编辑于星期二:十三点 五十六分。
第六页,编辑于星期二:十三点 五十六分。
第七页,编辑于星期二:十三点 五十六分。
第八页,编辑于星期二:十三点 五十六分。
第二十三页,编辑于星期二:十三点 五十六分。
第二十四页,编辑于星期二:十三点 五十六分。
第二十五页,编辑于星期二:十三点 五十六分。
第二十六页,编辑于星期二:十三点 五十六分。
第二十七页,编辑于星期二:十三点 五十六分。
第二十八页,编辑于星期二:十三点 五十六分。
第二十九页,编辑于星期二:十三点 五十六分。
第十六页,编辑于星期二:十三点 五十六分。
第十七页,编辑于星期二:十三点 五十六分。
第十八页,编辑于星期二:十三点 五十六分。
第十九页,编辑于星期二:十三点 五十六分。
第二十页,编辑于星期二:十三点 五十六分。
第二十一页,编辑于星期二:十三点 五十六分。
第二十二页,编辑于星期二:十三点 五十六分。
第三十页,编辑于星期二:十三点 五十六分。
第三十一页,编辑于星期二:十三点 五十六分。
第三十二页,编辑于星期二:十三点 五十六分。
第三十三页,编辑点 五十六分。
第九页,编辑于星期二:十三点 五十六分。
第十页,编辑于星期二:十三点 五十六分。
第十一页,编辑于星期二:十三点 五十六分。
第十二页,编辑于星期二:十三点 五十六分。
第十三页,编辑于星期二:十三点 五十六分。
第十四页,编辑于星期二:十三点 五十六分。
第05讲用例分析与用例图
![第05讲用例分析与用例图](https://img.taocdn.com/s3/m/6c2fcc1fcfc789eb172dc860.png)
基于用例的需求分析过程
获取原始需求
开发一个可以理解的需求
识别参与者
识别用例
确定关系
55/ 55
思考
软 件
工 基于用例的需求分析过程可大致分几步? 程 什么是系统边界
用例的概念 用例的关系 参与者的定义与关系
56/ 55
软 实验06
件 工
画出系统用例图
程 注意用例的粒度与关系
软 用例粒度-3
件 “四轮马车”
工 程
C(Create)
R(Read)
U(Update)
D(Delete)
所有业务最终会成为CRUD?
CRUD能为Actor提供价值?
CRUD掩盖业务,锐变成关系数据库的建模:
“系统就是数据的增删改查”
关心数据的存储和维护,反而忽略了用户的目的
36
用例的动态执行过程可以用U M L的交 互作用来说明,可以用状态图、顺序图、 协作图、活动图或非正式的文字描述来 表示
25/55
用例的命名
软
件 执行者视角:
工
程 (状语)动词+(定语+ )宾语
顾客
购买商品 <<extend>> 信用卡支付
26/55
识别用例
软
件 工
识别用例
程 关键词:价值
12/ 55
用例与用例关系
软
件 工
用例图
程
参与者
用例
用例关系
13/ 55
软 用例图
件 工 程
获取需求、指导测试、 对过程中的其他工作流 起指导作用
14/ 55
参与者
软 件
工 参与者,Actor
实验报告1--用例和用例图
![实验报告1--用例和用例图](https://img.taocdn.com/s3/m/fc8c1b15844769eae009ed7c.png)
中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。
加深了对书本知识的认识和记忆。
在实验中我学会了去如何操作ro se工具图。
通过ro se工具图,可以去清晰的去展示一个关系等。
使用非常方便。
13种uml简介、工具及示例
![13种uml简介、工具及示例](https://img.taocdn.com/s3/m/44e1e336a36925c52cc58bd63186bceb19e8edf8.png)
13种uml简介、工具及示例UML(Unified Modeling Language)是一种用于软件开发的标准化建模语言,它使用图形表示法来描述软件系统的不同方面。
在软件开发过程中,使用UML可以帮助开发人员更清晰地理解系统的结构和行为,从而更好地进行设计和实现。
UML提供了包括结构模型、行为模型和交互模型在内的多种建模方式,其中每种模型都有各自的符号和语法规则。
通过使用这些模型,开发人员可以将系统分解成不同的部分,然后逐步细化这些部分的设计,以便更好地组织和管理项目。
在UML中,最常用的建模元素包括用例图、类图、时序图、活动图、状态图等。
每种图表都有其特定的用途和表达能力,开发人员可以根据实际需要选择合适的图表进行建模。
除了建模元素外,UML还定义了一系列的建模工具,这些工具可以帮助开发人员更高效地进行建模和分析。
其中一些常用的建模工具包括Enterprise Architect、Rational Rose、StarUML等。
下面将对13种UML简介、工具及示例进行详细介绍:1. 用例图(Use Case Diagram)用例图是UML中描述系统功能和用户交互的基本图表之一。
它用椭圆表示用例,用直线连接用例和参与者,展示了系统外部用户和系统之间的交互。
用例图可以帮助开发人员更清晰地理解系统的功能需求,从而指导系统的设计和实现。
示例:一个简单的在线购物系统的用例图包括用例“浏览商品”、“添加商品到购物车”、“提交订单”等,以及参与者“顾客”和“管理员”。
2. 类图(Class Diagram)类图是UML中描述系统结构和静态关系的基本图表之一。
它用矩形表示类,用线连接类之间的关系,包括关联关系、聚合关系、继承关系等。
类图可以帮助开发人员更清晰地理解系统的对象结构和类之间的关系,从而支持系统的设计和重构。
示例:一个简单的学生信息管理系统的类图包括类“学生”、“课程”、“教师”等,以及它们之间的关系如“选修”、“授课”等。
第2章用例和用例图
![第2章用例和用例图](https://img.taocdn.com/s3/m/7563114bc850ad02de8041c6.png)
成绩管理
UML用例图组成( UML用例图组成(续) 用例图组成
饮料销售机
UML用例图组成( UML用例图组成(续) 用例图组成
用例与用例的扩展关联用来表示通过对已有用例增加步 用例与用例的扩展关联用来表示通过对已有用例增加步 扩展关联用来表示 骤创建一个新的用例,即对原有的用例进行了扩展。 骤创建一个新的用例 即对原有的用例进行了扩展。扩展只能 即对原有的用例进行了扩展 发生在基用例的序列中的某个具体指定点上。这个点叫做扩 发生在基用例的序列中的某个具体指定点上。 展点.在UML图中,使用带虚线箭头表示,并在线上标有构造 展点 在UML图中,使用带虚线箭头表示, 图中 带虚线箭头表示 如下图所示: 型<<extend>> 。如下图所示:
UML用例图组成( UML用例图组成(续) 用例图组成
包含关联与扩展关联的区别: 包含关联与扩展关联的区别:
存在包含关联的两个用例,在执行基本用例时 一定会执 存在包含关联的两个用例 在执行基本用例时,一定会执 在执行基本用例时 行包含用例;存在扩展关联的两个用例,在执行基本用例时 在执行基本用例时, 行包含用例;存在扩展关联的两个用例 在执行基本用例时 可以执行,也可以不执行扩展部分 可以执行 也可以不执行扩展部分. 也可以不执行扩展部分
UML用例图的作用( UML用例图的作用(续) 用例图的作用
• 用例图的主要作用: 用例图的主要作用:
– 用来描述待开发系统的功能需求和系统使用场景 – 作为开发过程的基础,驱动各阶段的开发工作 作为开发过程的基础, – 用于验证与确认系统需求
画好用例图是由软件需求到最终实现的第一步. 画好用例图是由软件需求到最终实现的第一步.
UML用例图的建模( UML用例图的建模(续) 用例图的建模
用例和用例图
![用例和用例图](https://img.taocdn.com/s3/m/f08b9f6f30126edb6f1aff00bed5b9f3f90f72b0.png)
技巧 实地观察
访谈
描述
• 直接观察个人工作旳情况,以发觉现存旳实践方式和
问题
• 从个人处搜集特定信息
特定群体 调查
对一组人员进行调查,以便了解工作态度和共同看法
• 问卷调查 搜集详细数据和统计意义上比较主要旳数据
• • 顾客指 导
让最终顾客告诉你,他们是怎样操作系统旳
• 原型制作 模拟一种无法直接测试旳系统
人、外部系统、外部因素等
12
3.2.2 辨认参加者:参加者要点
• 参加者指在系统中所扮演旳角色。即在拟定参加者时,
应主要考虑他旳角色,而不是这个角色旳实例。
• 某些组织中可能有诸多营销人员,但他们均起着同
一种作用,扮演着相同旳角色。
• 一种顾客也能够扮演多…种角色:一种高级营销人员
既能够是贸易经理,也能够是一般旳营销人员。
小一点旳蓝色大理石
5
3.2.1 获取原始需求:如此脆弱
客户/顾客旳要 求/想法/期望
验收
分析和设计
没价值旳 软件需求
补文档
软件产品 编码和测试
软件设计
6
3.2.1 获取原始需求:也需要开发
客户/顾客旳要 求/想法/期望
软件产品
开发
验收
编码和测试
有价值旳 软件需求
分析和设计
软件设计
7
3.2.1 获取原始需求:技巧
第三章 用例和用例图
1
3.1 概述
• 用例图着重从系统外部执行者旳角度来描述系统需要提
供哪些功能,执行者能够是人或外部系统。
2
3.1 概述
用例图旳构成元素
• 图中旳元素涉及:参加者、用例、某些表达关系旳连接
用例和用例图
![用例和用例图](https://img.taocdn.com/s3/m/162c175ce518964bcf847cda.png)
访客用例图
会员用例图
书店管理员用例图
3、用例描述 (1)细化用例描述----搭框架
用例名称:搜索图书 概述:用户根据关键字搜索图书 前置条件:无 事件流: 基本事件流 扩展事件流 后置条件: 无
3、用例描述 (2)细化用例描述----填"血肉"
事件流: •基本事件流 1 用户点击“搜索图书”,用例开始。 2 系统显示搜索图书商品界面,提示用户输入商品关键字。 3 用户输入图书关键字,选择提交。 4 系统访问数据库,根据关键字查询相关的图书商品信息, 并把查询出的图书信息显示搜索图书页面。 5 用例结束。 •扩展事件流 4a) 系统未查出所要商品相关信息,显示提示信息,用例 结束。 4b) 系统查出用户输入的关键字为空,显示提示信息并返 回基本事件流2。
编写用例描述应遵循以下几点:
使用简单的语法,主语明确,语义易于理解;在事件流描 述中让读者直观地了解是参与者在控制还是系统在控制; 从第三者观察的角度指出参与者的动作,以及系统的响应; 显示参与者的意图而非动作 显示过程向前推移,每一步都有前进感;
构建结构良好的用例
为系统和部分系统中单个的、可标识的、合理的原子行为 命名。 将多个用例的公共的行为抽取出来放到一个被包含用例中。 对于变化部分,将其抽取出来,放到扩展用例中。 清晰的描述事件流。
扩展关系(Extend)
扩展关系表示基本用例在由扩展用例间接说明的一个位置 上隐式的合并了另一个用例(扩展用例)的行为。 基本用例不知道扩展用例的任何细节,没有扩展用例,基 本用例是完整的。只有在特定条件下,它的行为可以被扩 展用例的行为扩展,因此扩展关系处理事件流的异常或者 可选事件。
第5讲2-用例及用例图
![第5讲2-用例及用例图](https://img.taocdn.com/s3/m/15f4b11f326c1eb91a37f111f18583d049640fb5.png)
a 经过读卡机,储户插入ATM卡
b ATM系统从卡上读取银行ID、帐号、并验证帐号。 c 储户键入密码,系统检验密码。 d 储户按确认键,输入取款金额。 e ATM把帐号和取款金额传递给银行系统,取回帐户余额。 f ATM输出现金,并显示帐户余额。 d ATM统计事务到日志文件。
参加者
1. 参加者旳概念 参加者(actor)是外部需要与系统交互旳事物。
也被称为活动者。 2.参加者旳三种类型
①. 人:客户,读者,库管员 ②. 设备:计算机,磁盘,读卡机等 ③. 外部系统:上层系统等
参加者旳表达
参加者能够表达为下面三种形式。
参加者之间旳关系
参加者之间能够有泛化关系。
用例之间旳关系(1)
用例之间能够具有下列几种关系:
➢ 泛化关系 ➢ 包括关系 ➢ 扩展关系
参加者与用例之间旳关系
关联关系 参加者与用例之间是关联关系,表达参加者与用
例之间具有使用,交互信息旳关联。
用例之间旳关系(3)
泛化关系 参加者与参加者之间,用例与用例之间存在一般与 特殊旳关系。
用例之间旳关系(4)
包括关系 两个用例之间,一种用例(基本用例)旳行为包括了 另外一种用例(包括用例)旳行为。 包括关系用依赖关系旳<<include>>构造型来表 达。
某学校网上选课系统旳用例分析(1)
管理员经过系统管理界面进入系统,建立本学期 要开设旳多种课程,将课程信息保存到数据库中, 并能够对课程进行改动和删除。 学生经过客户机浏览器进入系统,选择课程:能够 查询课程,选择课程,支付课程费用。
某学校网上选课系统旳用例分析(2)
●找出系统外部参加者,拟定系统边界和范围。
第03章 用例和用例图
![第03章 用例和用例图](https://img.taocdn.com/s3/m/e914b7c24028915f804dc22b.png)
前置条件
后置条件
一个条件列表, 这些条件必须在访问用例前得到满足
一个条件列表, 这些条件必须在用例完成之后得到满足
基本操作流程 描述用例中各项工作都顺利进行时用例的工作方式
可选操作流程 描述变异工作方式、出现异常或发生错误的情况下的路径
20 面向对象分析与设计 & UML
3.6 用例的描述
用例的描述格式(续表)
14 面向对象分析与设计 & UML
3.4.4 几种关系的比较
关系类型 关联 泛化 包含 扩展 说明 actor与use case之间 actor之间或use case之间 use case之间 use case之间 表示符号
15
面向对象分析与设计 & UML
3.5 用例图
用例图(use case diagram)是显示一组用例、参与者以及 它们之间的关系的图.
26
面向对象分析与设计 & UML
3.8 常见问题分析
(1) 用例的粒度问题
对于一个目标系统进行用例分析后得到的用 例数目有多少比较合适?
27
面向对象分析与设计 & UML
3.8 常见问题分析
(2) 用例的分解/合并 系统中相似的功能, 是合并为一个用例还是 分解为几个用例?
方法1 一中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况. 其它译名: 情景、场景、情节、剧本. 每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
例:在“订货”用例中包括几个相关脚本: • 订货顺利进行的脚本; • 相关货源不足时的脚本; • 购货者的信用卡被拒绝时的脚本; • ……
用例和用例图
![用例和用例图](https://img.taocdn.com/s3/m/eebebbb769dc5022aaea004e.png)
如何绘制用例图 1、用例分析技术步骤(不固定,可根据需要调整):
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ 找出系统外部的参与者和外部系统,确定系统的边界和范围。 确定每一个参与者所期望的系统行为 把这些系统行为命名为用例 使用泛化、包含、扩展等关系处理系统行为的公共或变更部分 编制每一个用例的脚本 绘制用例图 区分基本事件流和异常情况的事件流,如有需要可以把表示异常 情况的事件流作为单独的用例来处理 ⑻ 细化用例图,解决用例间的重复与冲突。
用例之间的关系 4、参与者与用例之间的关系:关联关系Association
关联关系描述参与者与用例之间的关系,在UML中它是 两个或多个类元之间的关系,它描述了类元的实例间的 联系。(类元,一种建模元素,常见类元包括类、参与者 、构件、数据类型、接口、结点、子系统以及用例等, 其中类是最常见的类元) 关联关系表示参与者和用例之间的通信。在UML中,关 联关系用直线或箭头表示。如果参与者启动了用例,箭 头指向用例;如果参与者利用了用例提供的服务,箭头指 向参与者。如果二者是互动的,则是直线。 例:汽车租赁系统用例图(部分)。显示的是“客户”参与者以 及与他交互的3个用例,“预定”、“取车”、“还车” 。
FEAT01.新增书籍信息 FEAT03.书籍信息按计算机类、非计算机类分别建档 FEAT04.录入新书时能够自动按规则生成书号 FEAT05.计算机类与非计算机类书籍采用不同的书号规则 FEAT06.录入新书时如果重名将自动提示 FEAT02.修改已有的书籍信息 FEAT07.按书名、作者、类别、出版社等关键字组合查询书籍 FEAT08.列出所有书籍信息 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行 FEAT09.记录外借情况 FEAT10.外借状态能够自动反应在书籍信息中 FEAT11.按人、按书查询外借情况 FEAT12.列出所有的外借情况 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行 FEAT13.按特定时间段统计购买金额、册数 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行
用例和用例图
![用例和用例图](https://img.taocdn.com/s3/m/0a0e3406a300a6c30c229f85.png)
扩展关系
扩展点是一个条件,决定扩展是否会被使用, 扩展点定义了一个扩展用例一直在监视的条 件,一旦条件满足,扩展用例就将自己加入 到执行用例中。比如基用例向系统报告一个 错误,该错误这是某个扩展用例监视的条件, 在收到这个条件后,扩展用例就插入执行, 对错误进行处理,执行完毕后,基用例被允 许从中断的地方继续执行。
用例图
用例图是基于用例的方法的一部分,基 于用例的方法还包括对用例的文本描述 和用例脚本。文本描述用来强调用例的 需求细节,脚本则用来说明用例执行中 的选项、测试需求以及为后续的开发提 供较高层次的测试计划。
参与者(1)
参与者是某种类型的用户,用户指使用系 统的人,或者是其他的的系统、设备。 参与者的图形表示见教材P24页图3.4所示。
用例和用例图
教学目的
熟悉用例的概念,掌握用例图的作用; 掌握用例之间的关系; 学会使用用例对软件系统需求建模; 掌握用例描述; 掌握Rose下用例建模。
用例建模概述
用例图从用户的角度来描述系统功能,并 指出各功能的操作者,其基本组成成份是系 统、参与者和用例。 用例从外部用户的角度来描述系统应该实现 什么样的功能。 参与者是与系统进行交互的外部实体,系统 是实现各种用例的“黑盒”。
establish credit
监督员
用例图
用例图包含三个元素,它们是:参与者、用例、关 系。 参与者:参与系统成功操作的某些人、系统、设 备甚是是企业所扮演的角色。 用例:标志系统的某个关键行为。每个用例都表 达了系统必须达到的目标或必须产生的结果。 关系:标志参与者和用例之间的交互称为关联。 每个关联成为在用例描述中加以解释的对话,而每 个用例描述又提供了一组脚本,它们有助于开发测 试用例。用例之间有包含、扩展和泛化关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用例
用例(use case)是Ivar Jacobson发明的. 其它的中 文译名有: 用况、用案等. 定义1: 用例是对一个活动者(actor)使用系统的一项 功能时所进行的交互过程的一个文字描述序列. 定义2: 用例是系统、子系统或类和外部参与者交互 的动作序列的说明, 包括可选的动作序列和会出现 异常的动作序列. 用例是代表系统中各个项目相关人员之间就系统的 行为所达成的契约, 软件开发过程是用例驱动的.
实例1:图书馆管理系统中的用例图
1.确定系统涉及的总体信息 图书馆管理系统是对书籍的借阅及读者信息进行统 一管理的系统,具体包括读者的借书、还书,书籍 预订;图书馆管理员的书籍借出处理、书籍归还处 理、预订信息处理;还有系统管理员的系统维护, 包括增加书目、删除或更新书目、增加书籍、减少 书籍、增加读者账户信息、删除或更新读者账户信 息、书籍信息查询、读者信息查询等。
用例图的作用
用例图展示了用例之间以及用例与参与者之间是怎样相互联 系的。用例图对系统、子系统或类的行为进行了可视化,使 用户能够理解如何使用这些元素,并使开发者能够实现这些 元素。 用例图主要用来描述用户的功能需求。UML侧重从最终用户 的角度来理解软件系统的需求,强调谁在使用系统、系统可 以完成哪些功能。用例分析技术已经是一种公认有效的用户 需求获取、分析和描述技术
情况二:假如机票购买者通过呼叫中心,由人工座席 操作订票系统购买机票,那么谁是参与者?
情况三:如果机票购买者通过呼叫中心的自动语音预 定机票而不是通过人工座席,那么谁是参与者?
情况四:如果扩大系统边界,让呼叫中心成为机票预 定系统的一个子系统,并且假设机票购买者将可以 自主选择是通过人工座席还是自动语音登录网站预 订机票,那么谁是参与者?
怎样确定用例的粒度?(用例规模的大小)
用例的粒度可大可小,一般一个系统控制在20个左右,但
没有严格规定 用例是系统级的、抽象的描述,不是细化的(考虑的是 “做什么what”,而不是“怎样做how”) 对复杂的系统可以划分为若干子系统处理
实际上,用例粒度的划分依据最标准的方法是一个 用例的粒度是否合适,是以该用例是否完成了参与 者的某个目的为依据的。
怎样识别用例
参与者希望系统执行什么任务? 参与者在系统中访问哪些信息?(创建、存储、修改、删
除等) 需要将外界的哪些信息提供给系统? 需要将系统的哪个事件告诉参与者? 如何维护系统?
如何判断一个用例是否是一个优秀的用例呢? ① 用例是否描述了应该做什么,而不是如何做? ② 用例的描述是否采取了参与者的视点? ③ 用例是否对参与者有价值? ④ 用例描述的时间流是否是一个完整场景? ⑤ 是否所有的参与者、用例都有相应的关联用例或关 联参与者?
几种关系的比较
关系类型 关联 泛化 包含 扩展 说明 actor与use case之间 actor之间或use case之 间 use case之间 表示符号
use case之间
思考:
需求建模—用例图 用例图
需求分析的第一步是确定系统能够做什么,谁来使用 这个系统。
用例图(use case diagram)是显示一组用例、参与者 以及它们之间的关系的图。 用户、项目管理员、分析人员、开发人员、质保人员 都可以通过用例图了解系统功能。
什么是用例?
用例是一种需求方法学 把用例解释为某个参与者(actor)要做的一件事,这样 的一件事有以下几个特征:
1、这件事是相对独立的; 2、这件事的执行结果对参与者来说是可观测的和有意义的; 3、这件事必须由一个参与者发起 ;不存在没有参与者的用 例,用例不应该自动启动,也不应该主动启动另一个用例。 用例总是由一个参与者发起,并且满足特征二; 4、这件事必然是以动宾短语形式出现的 。
在对参与者建模的过程中,注意以下几点: (1)参与者表示人和事物与系统发生交互时所扮演的 角色,而不是特定的人或特定的事物; (2)每个参与者需要一个具有业务一样的名字; (3)一个人或事物在与系统交互时,可以同时或不同 时扮演多个角色。
UML中的Actor实际上是一个版型化的类, 可以有三种 表示形式
例:在“订货”用例中包括几个相关脚本: • 订货顺利进行的脚本; • 相关货源不足时的脚本; • 购货者的信用卡被拒绝时的脚本; • ……
用例图中的关系
关联(accociation) 包含(include) 扩展(extend) 泛化(generalization)
关联(accociation)
一个用例功能过多,可分解成小用例,构成包含依赖
本例中,被包含用例不能单独执行,没有Actor直接指向
它们
扩展关系
扩展(extend) (是一种依赖关系,加了版型
<<extend>>) 一个用例(在某些扩展点extension point上)扩展另一个 用例的功能,构成新用例;箭头方向由扩展用例指向被扩 展用例(即基本用例); 扩展用例依赖于被扩展用例(基本用例),只是部分片段 组成,不是完整的独立用例,无法单独执行; 扩展用例不一定每次都被执行和调用。(吃饭前也可以不 洗手),而被包含用例每次必须执行。 肯定没有参与者指向扩展用例,因为扩展用例依赖基本用 例。
每个用例都有参与者启动(每个用例必须和一个参与者关
联,有一个参与者来参与),除包含和扩展用例 用例和参与者之间是关联关系,有三种形式。
பைடு நூலகம்
泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子用例也可以增加新的行为和含义或覆盖父用例中 的行为和含义.
Icon形式
Label形式
Decoration形式
由于Actor实际上是一个类, 因此它们之间可以存在 一定的关系,参与者之间的关系一般表现为特殊/一 般化关系,即,泛化关系。
思考: 1、这样一个需求:每天自动统计网页访问量,
生成统计报表,并发送至管理员信箱。这个
需求的参与者是谁? 2、自动售货机的参与者是谁?
怎样识别参与者
谁向系统提供信息? 谁从系统获取(使用)信息?
谁管理这个系统?
谁维护这个系统? 系统要使用哪些外部资源?(系统启动打印机、扫描仪)
系统是否和已经存在的系统交互?(跨行转账的外部银行
系统、时间到了定时启动系统某功能)
查找参与者时请注意,参与者一定是直接并且主动的 向系统发出动作并获得反馈的,否则就不是参与者。 下面对机票预订系统进行分情况讨论: 情况一:机票购买者通过登录网站购买机票,那么谁 是参与者?
2.确定系统的参与者
根据图书馆管理系统的需求分析,可以确定如下几点: (1)作为一个图书馆管理系统,首先需要借阅者的参与,借阅 者可以登录系统查询所需要的书籍,查到所需书籍后可以考 虑预订,当然最重要的是借书、还书操作。 (2)对于系统来说,借阅者发起的借书、还书等操作最终还需 要图书馆管理员来处理,他们还可以负责图书的预订取消。 (3)对于图书馆管理系统来说,系统的维护操作也是相当重要 的,维护操作主要包括增加书目、删除或更新书目、增加书 籍、减少书籍等操作。 系统的参与者主要有:借阅者、图书馆管理员、图书馆管理 系统维护者。
UML中用例用椭圆表示, 使用动宾结构或主谓结构命 名.
例: 字处理程序中, “置正文为黑 体”和”创建索引”都可以是用 例.
使用用例进行需求分析的特点:
1. 用例从使用系统的角度描述系统中的信息. 2. 用例描述用户提出的一些可见需求, 对应一个具体的用户目标. 3. 用例是对系统行为的描述, 属于UML的动态建模部分.
UML的用例图示意
参与者有三大类:系统用户、与所建造的系统交互的 其它系统和一些可以运行的进程。
第一类参与者是真实的人,即用户,命名这类参与者时,
应当按照业务命名; 第二类参与者是其它的系统,这类位于程序边界之外的系 统也是参与者。 第三类参与者是一些可以运行的进程,如时间。当经过一 定的时间触发系统中的某个事件时,时间就成了参与者。
3.确定系统用例 识别用例最好的方法就是从分析系统的参与者开始, 考虑每个参与者是如何使用系统的。
(1)借阅者请求服务的用例 ① 登录系统; ② 查询自己的借阅信息; ③ 查询书籍信息; ④ 预订书籍; ⑤ 借阅书籍; ⑥ 归还书籍。
(2)图书馆管理员处理借书、还书等的用例 ① 处理书籍借阅; ② 处理书籍归还; ③ 删除预订信息。
用例图的组成
用例图由如下元素组成: 参与者(Actor):也称为参与者,它代表系统的用户。 系统边界(System Scope):它确定系统的范围。 用例(Use Case):它代表系统提供的服务。 关系(Association):关联关系(Association)、
包含关系(Include)、扩展关系(Extend)以及
用例和用例图
用例建模是UML建模的一部分,它也是UML里最基 础的部分; 用例建模的最主要功能就是用来表达系统的功能性 需求或行为; 用例建模可分为用例图和用例描述; 用例图是由软件需求分析到最终实现的第一步,它 描述人们如何使用一个系统,是外部参与者所能观 察到的系统功能的模型图,该图呈现了一些参与者 和一些用例,以及它们之间的关系,主要用于对系 统、子系统或类的功能行为进行建模,用画图的方 法来完成; 用例描述用来详细描述用例图中每个用例,用文本 文档来完成。
使用用例时注意的问题:
1. 不要将所有的需求都以用例的形式表示出来. 2. 用例只描述系统功能性方面的需求, 它只是全部需求的一部分. 3. 本质上用例分析是功能分解技术, 但目前是OO开发的第一步. 4. 用例是与实现无关的关于系统功能的描述.
思考:
网上选课系统
脚本
其它译名: 情景、场景、情节、剧本. 脚本就是用例的一次完整的、具体的执行过程。用例 与脚本的关系,如同类与对象的关系。 每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.