用例和用例图.
UML用例和用例图
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、系统通过库存系统验证要购买的商品是否有足
用例及用例图案例
用例及用例图-案例
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) 什么叫事件流,作用是什么?
实验报告1--用例和用例图
中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。
加深了对书本知识的认识和记忆。
在实验中我学会了去如何操作ro se工具图。
通过ro se工具图,可以去清晰的去展示一个关系等。
使用非常方便。
餐馆系统用例及用例图
•记录预约(Recork booking)事件路径:1接待员输入要预约的日期2系统显示该日的预约3有一张合适的餐桌可以使用:接待员输入顾客的姓名、电话、预约的时间、用餐人数和餐桌号4系统记录并显示新预约。
可选或例外的事件路径3a 没有可用的餐桌:1 没有合适的餐桌可以使用,用例终止3b 餐桌过小1 接待员输入顾客的姓名电话预约时间,用餐人数和餐桌号2 用餐人数多于餐桌容纳的人数,系统询问是否继续预约3 如果回答“否”, 用例将不进行预约而终止4 如果回答“是”, 预约将被输入,并附有一个警告标志。
•记录到达:(Record arrival)基本事件路径1领班输入当前日期2系统显示当天的预约3领班确认一个选定的预约已经到达4系统对此进行记录并更新显示器,将顾客标记为已经到达。
可选或例外的事件路径3a 没有提前预订:1 系统中没有记录该顾客的预约,领班输入预约时间、人数和餐桌号,创建一个未预约登记;2 系统记录并显示新预约//将红字的部分,独立为一个用例,用例描述如下:●记录未预约顾客(Record walk_in)基本事件路径1 侍者领班执行“显示预约”用例2 侍者领班输入时间、用餐人数和分配给顾客的餐桌3 系统记录并显示新预约●取消预约(Cancel booking)基本事件路径1 侍者领班执行“显示预约”用例2 接待员选择要求的预约3 接待员取消该预约4 系统询问接待员确认取消5 接待员回答“是”,系统记录取消并更新显示可选或例外的事件路径4a 预约的时间是在该现时间之前1 系统显示,预约的时间是在该查询时间之前,2 系统显示不能取消过去某段时间的预约4b 已经记录了顾客到来的预约1 系统显示不能取消该预约 调换餐桌(Table transfer)基本事件路径1 侍者领班选择需要的预约2 侍者领班改变该预约的餐桌分配3 系统记录改变并更新显示•显示预约(Display Bookings):1用户输入一个日期2系统显示当日的预约。
门户网站用例图与用例描述
5.用例终止
其他事件流A1:
在按“提交”按钮之前,管理员随时可以按“返回”按钮,文本框的任何修改内容都不会影响网站首页的新闻信息
异常事件流:
1.提示错误信息,管理员确认
2.返回到管理系统主页面
后置条件:
网站首页的新闻信息被更新
注释:无
4-3删除新闻:
参与者:用户
简要说明:
游客可以浏览新闻,帖子,留言等各种信息。
前置条件:
游客已经在浏览门户网站
基本事件流:
1.用户点击信息标题
2.系统跳转到详细信息页面;
3. 游客浏览信息;
4.用例终止;
其他事件流A1:
无
异常事件流:
1.提示错误信息,游客确认;
2.返回到门户网站首页。
后置条件:
无
注释:无
7-2:修改个人信息
前置条件:
管理员已经登管理系统
基本事件流:
1.管理员鼠标点击“浏览留言”按钮,发出留言审核请求;
2.系统提供系统中存储的留言,分页显示留言内容;
3. 管理员选择一条留言标题,点击浏览留言详细信息;
4.管理员可以在选择要回复的留言;
5. 管理员点击提交回复留言
6.用例终止;
其他事件流A1:
在按“提交”按钮之前,管理员随时可以按“返回”按钮,返回到浏览页面
其他事件流A1:
在按“确认”按钮之前,管理员随时可以按“返回”按钮,不会影响网站首页的新闻信息
异常事件流:
1.提示错误信,管理员确认
2.返回到管理系统主页面
后置条件:
网站首页的新闻信息被更新
注释:无
5:管理用户
用例和用例图统一建模语言
UML用例图的建模(续)
Record grades Update grades Generate cards
Distribute report cards
View grades
UML用例图的建模(续)
2、区分用例优先次序
这项任务通常是由系统分析人员完成,他们对哪一项任务 最关键,哪一项任务最艰巨有最好的全局认识。他们还可以确 定出哪个用例可以为其他用例所重用。在上例中,可以提出以 下优先次序列表:
UML的用例图标
UML用例图组成(续)
3、用例图的关联 1)角色与用例的关联 角色与用例的关联表示角色与用例相关性。在UML中是使
用一条实线连接角色与用例,如下图所示。
UML用例图组成(续)
成绩管理
UML用例图组成(续)
2)角色与角色的关联
角色与角色的关联用来表示一般角色与特殊角色的泛化关 系。在UML图中,使用带空心三角箭头的实线表示。如下图所示:
用例图在各种开发活动中被广泛使用,但 它最经常用做描述系统以及子系统.
UML用例图的作用(续)
• 用例图的主要作用:
– 用来描述待开发系统的功能需求和系统使用场景 – 作为开发过程的基础,驱动各阶段的开发工作 – 用于验证与确认系统需求
画好用例图是由软件需求到最终实现的第一步.
第二章 用例和用例图
(4) 统计
①经理能够使用系统的统计功能,了解商品销售情况、库 存情况、供应商情况,以便进行合理的营销策略。 ②经理按市场情况适时变动商品价格。
案例----超市进销存系统用例图建模
2.建立超市进销存系统的用例图模型
在系统需求分析中需考虑:系统用例图模型需要哪些视 图,每个视图包含什么内容?视图中成员是否需构成包?
02-用例和用例图
使用用例时注意的问题:
1. 2. 3. 4. 不要将所有的需求都以用例的形式表示出来. 不要将所有的需求都以用例的形式表示出来 用例只描述系统功能性方面的需求, 它只是全部需求的一部分. 用例只描述系统功能性方面的需求 它只是全部需求的一部分 本质上用例分析是功能分解技术, 但目前是OO开发的第一步 开发的第一步. 本质上用例分析是功能分解技术 但目前是 开发的第一步 用例是与实现无关的关于系统功能的描述. 用例是与实现无关的关于系统功能的描述
(2) 储户按“取款”按钮 并输入 • 设置交易类型为“取款” 储户按“取款”按钮,并输入 设置交易类型为“取款” 取款数目 • ATM系统获得取款金额 系统获得取款金额 (3) 储户取走现金 储户取走现金/ATM卡/收据 卡 收据 • 输出现金、收据和 输出现金、收据和ATM卡 卡 (4) 储户离开 只描述了actor的行为 的行为 只描述了 • 系统复位 只描述了System的行为 的行为 只描述了
3.4.2 包含关系
包含关系是指一个用例(基本用例 的行为包含了另一 包含关系是指一个用例 基本用例)的行为包含了另一 基本用例 个用例(包含用例 的行为. 包含用例)的行为 个用例 包含用例 的行为 包含关系是依赖关系的版型, 但其含义更多. 包含关系是依赖关系的版型 但其含义更多
右图的例子演示了 包含关系
常见问题分析
(1) 用例的粒度问题 对于一个目标系统进行用例分析后得到的用 例数目有多少比较合适? 例数目有多少比较合适
常见问题分析
(2) 用例的分解 合并 用例的分解/合并 系统中相似的功能, 系统中相似的功能 是合并为一个用例还是 分解为几个用例? 分解为几个用例
用例的描述
用例的描述格式(续表 用例的描述格式 续表) 续表
用例和用例图
访客用例图
会员用例图
书店管理员用例图
3、用例描述 (1)细化用例描述----搭框架
用例名称:搜索图书 概述:用户根据关键字搜索图书 前置条件:无 事件流: 基本事件流 扩展事件流 后置条件: 无
3、用例描述 (2)细化用例描述----填"血肉"
事件流: •基本事件流 1 用户点击“搜索图书”,用例开始。 2 系统显示搜索图书商品界面,提示用户输入商品关键字。 3 用户输入图书关键字,选择提交。 4 系统访问数据库,根据关键字查询相关的图书商品信息, 并把查询出的图书信息显示搜索图书页面。 5 用例结束。 •扩展事件流 4a) 系统未查出所要商品相关信息,显示提示信息,用例 结束。 4b) 系统查出用户输入的关键字为空,显示提示信息并返 回基本事件流2。
编写用例描述应遵循以下几点:
使用简单的语法,主语明确,语义易于理解;在事件流描 述中让读者直观地了解是参与者在控制还是系统在控制; 从第三者观察的角度指出参与者的动作,以及系统的响应; 显示参与者的意图而非动作 显示过程向前推移,每一步都有前进感;
构建结构良好的用例
为系统和部分系统中单个的、可标识的、合理的原子行为 命名。 将多个用例的公共的行为抽取出来放到一个被包含用例中。 对于变化部分,将其抽取出来,放到扩展用例中。 清晰的描述事件流。
扩展关系(Extend)
扩展关系表示基本用例在由扩展用例间接说明的一个位置 上隐式的合并了另一个用例(扩展用例)的行为。 基本用例不知道扩展用例的任何细节,没有扩展用例,基 本用例是完整的。只有在特定条件下,它的行为可以被扩 展用例的行为扩展,因此扩展关系处理事件流的异常或者 可选事件。
软件工程课件之第4章用例和用例图
4.2.3 泛化关系
借阅者
.9 泛化关系
4.2.4 分组关系
在一些用例图中,用例的数目可能很多,这时就需要把 这些用例组织起来。这种情况在一个系统包含很多子系 统时就会出现。另一种可能就是,当你按顺序和用户会 谈,收集系统需求时,每个需求必须用一个单独的用例 来表达,这时就需要某种方式来对这些需求进行分类。
4.1.1 参与者
例如,在“图书管理系统”中,可以认为“读者”是 “学生读者”和“教师读者”的泛化,而“学生读者” 还可以具体化为“本科生读者”和“研究生读者”;同 样,“图书管理员”也是“采购员”、“ 编目员”及 “借阅人员”的泛化。图4.3表示出了参与者之间的泛 化关系。
4.1.1 参与者
“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
4.2.2 扩展关系
借阅者
<<include>>
还书
<<extend>>
查询图书 交罚款
图4.8 扩展关系
区别与联系:
联系:都是从现有的用例中抽取出公共的那部分信息
,作为一个单独的用例,然后通过不同的方法来重用这 个公共的用例,以减少模型维护的工作量。
因此,在“图书管理系统”中“借阅者”和“系统管理 员”都是参与者。
4.1.1 参与者
【例4-1】客户给销售员发来传真订货, 销售员下班前 将当日订货单汇总输入系统。谁是系统的参与者?
分析:根据参与者的定义可知,此系统的参与者是销售 员。
4.1.1 参与者
【例4-2】在需求分析中常见的权限控制问题,一般的 用户只可以使用一些常规的操作,如查询等,而管理员 除了常规操作之外还需要进行一些系统管理工作,如一 些关键数据的增加、删除、修改等,操作员既可以进行 常规操作又可以进行一些配置操作。
第5讲2-用例及用例图
a 经过读卡机,储户插入ATM卡
b ATM系统从卡上读取银行ID、帐号、并验证帐号。 c 储户键入密码,系统检验密码。 d 储户按确认键,输入取款金额。 e ATM把帐号和取款金额传递给银行系统,取回帐户余额。 f ATM输出现金,并显示帐户余额。 d ATM统计事务到日志文件。
参加者
1. 参加者旳概念 参加者(actor)是外部需要与系统交互旳事物。
也被称为活动者。 2.参加者旳三种类型
①. 人:客户,读者,库管员 ②. 设备:计算机,磁盘,读卡机等 ③. 外部系统:上层系统等
参加者旳表达
参加者能够表达为下面三种形式。
参加者之间旳关系
参加者之间能够有泛化关系。
用例之间旳关系(1)
用例之间能够具有下列几种关系:
➢ 泛化关系 ➢ 包括关系 ➢ 扩展关系
参加者与用例之间旳关系
关联关系 参加者与用例之间是关联关系,表达参加者与用
例之间具有使用,交互信息旳关联。
用例之间旳关系(3)
泛化关系 参加者与参加者之间,用例与用例之间存在一般与 特殊旳关系。
用例之间旳关系(4)
包括关系 两个用例之间,一种用例(基本用例)旳行为包括了 另外一种用例(包括用例)旳行为。 包括关系用依赖关系旳<<include>>构造型来表 达。
某学校网上选课系统旳用例分析(1)
管理员经过系统管理界面进入系统,建立本学期 要开设旳多种课程,将课程信息保存到数据库中, 并能够对课程进行改动和删除。 学生经过客户机浏览器进入系统,选择课程:能够 查询课程,选择课程,支付课程费用。
某学校网上选课系统旳用例分析(2)
●找出系统外部参加者,拟定系统边界和范围。
用例和用例图
如何绘制用例图 1、用例分析技术步骤(不固定,可根据需要调整):
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ 找出系统外部的参与者和外部系统,确定系统的边界和范围。 确定每一个参与者所期望的系统行为 把这些系统行为命名为用例 使用泛化、包含、扩展等关系处理系统行为的公共或变更部分 编制每一个用例的脚本 绘制用例图 区分基本事件流和异常情况的事件流,如有需要可以把表示异常 情况的事件流作为单独的用例来处理 ⑻ 细化用例图,解决用例间的重复与冲突。
用例之间的关系 4、参与者与用例之间的关系:关联关系Association
关联关系描述参与者与用例之间的关系,在UML中它是 两个或多个类元之间的关系,它描述了类元的实例间的 联系。(类元,一种建模元素,常见类元包括类、参与者 、构件、数据类型、接口、结点、子系统以及用例等, 其中类是最常见的类元) 关联关系表示参与者和用例之间的通信。在UML中,关 联关系用直线或箭头表示。如果参与者启动了用例,箭 头指向用例;如果参与者利用了用例提供的服务,箭头指 向参与者。如果二者是互动的,则是直线。 例:汽车租赁系统用例图(部分)。显示的是“客户”参与者以 及与他交互的3个用例,“预定”、“取车”、“还车” 。
FEAT01.新增书籍信息 FEAT03.书籍信息按计算机类、非计算机类分别建档 FEAT04.录入新书时能够自动按规则生成书号 FEAT05.计算机类与非计算机类书籍采用不同的书号规则 FEAT06.录入新书时如果重名将自动提示 FEAT02.修改已有的书籍信息 FEAT07.按书名、作者、类别、出版社等关键字组合查询书籍 FEAT08.列出所有书籍信息 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行 FEAT09.记录外借情况 FEAT10.外借状态能够自动反应在书籍信息中 FEAT11.按人、按书查询外借情况 FEAT12.列出所有的外借情况 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行 FEAT13.按特定时间段统计购买金额、册数 FEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行
用例和用例图
扩展关系
扩展点是一个条件,决定扩展是否会被使用, 扩展点定义了一个扩展用例一直在监视的条 件,一旦条件满足,扩展用例就将自己加入 到执行用例中。比如基用例向系统报告一个 错误,该错误这是某个扩展用例监视的条件, 在收到这个条件后,扩展用例就插入执行, 对错误进行处理,执行完毕后,基用例被允 许从中断的地方继续执行。
用例图
用例图是基于用例的方法的一部分,基 于用例的方法还包括对用例的文本描述 和用例脚本。文本描述用来强调用例的 需求细节,脚本则用来说明用例执行中 的选项、测试需求以及为后续的开发提 供较高层次的测试计划。
参与者(1)
参与者是某种类型的用户,用户指使用系 统的人,或者是其他的的系统、设备。 参与者的图形表示见教材P24页图3.4所示。
用例和用例图
教学目的
熟悉用例的概念,掌握用例图的作用; 掌握用例之间的关系; 学会使用用例对软件系统需求建模; 掌握用例描述; 掌握Rose下用例建模。
用例建模概述
用例图从用户的角度来描述系统功能,并 指出各功能的操作者,其基本组成成份是系 统、参与者和用例。 用例从外部用户的角度来描述系统应该实现 什么样的功能。 参与者是与系统进行交互的外部实体,系统 是实现各种用例的“黑盒”。
establish credit
监督员
用例图
用例图包含三个元素,它们是:参与者、用例、关 系。 参与者:参与系统成功操作的某些人、系统、设 备甚是是企业所扮演的角色。 用例:标志系统的某个关键行为。每个用例都表 达了系统必须达到的目标或必须产生的结果。 关系:标志参与者和用例之间的交互称为关联。 每个关联成为在用例描述中加以解释的对话,而每 个用例描述又提供了一组脚本,它们有助于开发测 试用例。用例之间有包含、扩展和泛化关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.确定系统的参与者
根据图书馆管理系统的需求分析,可以确定如下几点: (1)作为一个图书馆管理系统,首先需要借阅者的参与,借阅 者可以登录系统查询所需要的书籍,查到所需书籍后可以考 虑预订,当然最重要的是借书、还书操作。 (2)对于系统来说,借阅者发起的借书、还书等操作最终还需 要图书馆管理员来处理,他们还可以负责图书的预订取消。 (3)对于图书馆管理系统来说,系统的维护操作也是相当重要 的,维护操作主要包括增加书目、删除或更新书目、增加书 籍、减少书籍等操作。 系统的参与者主要有:借阅者、图书馆管理员、图书馆管理 系统维护者。
怎样识别参与者
谁向系统提供信息? 谁从系统获取(使用)信息?
谁管理这个系统?
谁维护这个系统? 系统要使用哪些外部资源?(系统启动打印机、扫描仪)
系统是否和已经存在的系统交互?(跨行转账的外部银行
系统、时间到了定时启动系统某功能)
查找参与者时请注意,参与者一定是直接并且主动的 向系统发出动作并获得反馈的,否则就不是参与者。 下面对机票预订系统进行分情况讨论: 情况一:机票购买者通过登录网站购买机票,那么谁 是参与者?
用例和用例图
用例建模是UML建模的一部分,它也是UML里最基 础的部分; 用例建模的最主要功能就是用来表达系统的功能性需 求或行为; 用例建模可分为用例图和用例描述; 用例图是由软件需求分析到最终实现的第一步,它描 述人们如何使用一个系统,是外部参与者所能观察到 的系统功能的模型图,该图呈现了一些参与者和一些 用例,以及它们之间的关系,主要用于对系统、子系 统或类的功能行为进行建模,用画图的方法来完成; 用例描述用来详细描述用例图中每个用例,用文本文 档来完成。
(3)系统管理员进行系统维护的用例 ① 查询借阅者信息; ② 查询书籍信息; ③ 增加书目; ④ 删除或更新书目; ⑤ 增加书籍; ⑥ 删除书籍; ⑦ 添加借阅者账户; ⑧ 删除或更新借阅者账户。
4.使用Rose绘制用例图
使用Rose绘制用例图的步骤: 1.创建用例图 2.添加参与者与用例 3.添加参与者与用例之间的关系 4.添加用例之间的关系
用例
用例(use case)是Ivar Jacobson发明的. 其它的中 文译名有: 用况、用案等. 定义1: 用例是对一个活动者(actor)使用系统的一项 功能时所进行的交互过程的一个文字描述序列. 定义2: 用例是系统、子系统或类和外部参与者交互 的动作序列的说明, 包括可选的动作序列和会出现异 常的动作序列. 用例是代表系统中各个项目相关人员之间就系统的 行为所达成的契约, 软件开发过程是用例驱动的.
一个用例功能过多,可分解成小用例,构成包含依赖
本例中,被包含用例不能单独执行,没有Actor直接指向
它们
扩展关系
扩展(extend) (是一种依赖关系,加了版型
<<extend>>) 一个用例(在某些扩展点extension point上)扩展另一个 用例的功能,构成新用例;箭头方向由扩展用例指向被扩 展用例(即基本用例); 扩展用例依赖于被扩展用例(基本用例),只是部分片段 组成,不是完整的独立用例,无法单独执行; 扩展用例不一定每次都被执行和调用。(吃饭前也可以不 洗手),而被包含用例每次必须执行。 肯定没有参与者指向扩展用例,因为扩展用例依赖基本用 例。
ቤተ መጻሕፍቲ ባይዱ
用例图的组成
用例图由如下元素组成: 参与者(Actor):也称为参与者,它代表系统的用户。 系统边界(System Scope):它确定系统的范围。 用例(Use Case):它代表系统提供的服务。 关系(Association):关联关系(Association)、
包含关系(Include)、扩展关系(Extend)以及
几种关系的比较
泛化和扩展表示用例之间的 “is a”, 包含关系表示 用例之间的“has a”. 扩展关系的基本用例是 well formed 的. 一个基本用 例执行时, 可以执行或不执行扩展用例. 包含关系的基本用例可以不是或是 well formed 的. 执行基本用例时, 一定会执行被包含用例. 需要重复处理两个或多个用例时, 可以考虑包含关系. 处理正常行为的变型且只是偶而描述时, 可以考虑只 使用泛化关系. 处理正常行为的变型且希望采用更多控制方式时, 可 以在基本用例中设置扩展点, 使用扩展关系.
什么是用例?
用例是一种需求方法学 把用例解释为某个参与者(actor)要做的一件事,这样 的一件事有以下几个特征:
1、这件事是相对独立的; 2、这件事的执行结果对参与者来说是可观测的和有意义的; 3、这件事必须由一个参与者发起 ;不存在没有参与者的用 例,用例不应该自动启动,也不应该主动启动另一个用例。 用例总是由一个参与者发起,并且满足特征二; 4、这件事必然是以动宾短语形式出现的 。
3.确定系统用例 识别用例最好的方法就是从分析系统的参与者开始, 考虑每个参与者是如何使用系统的。
(1)借阅者请求服务的用例 ① 登录系统; ② 查询自己的借阅信息; ③ 查询书籍信息; ④ 预订书籍; ⑤ 借阅书籍; ⑥ 归还书籍。
(2)图书馆管理员处理借书、还书等的用例 ① 处理书籍借阅; ② 处理书籍归还; ③ 删除预订信息。
包含关系
包含(include) (是一种依赖关系,加了版型
<<include>>) 两个以上用例有共同功能,可分解到单独用例,形成包含 依赖; 箭头方向由基本用例指向被包含用例; 执行基本用例时,每次都必须调用被包含的用例(吃饭前 洗手); 被包含用例也可以单独执行;
包含(include)
UML的用例图示意
参与者有三大类:系统用户、与所建造的系统交互的 其它系统和一些可以运行的进程。
第一类参与者是真实的人,即用户,命名这类参与者时,
应当按照业务命名; 第二类参与者是其它的系统,这类位于程序边界之外的系 统也是参与者。 第三类参与者是一些可以运行的进程,如时间。当经过一 定的时间触发系统中的某个事件时,时间就成了参与者。
怎样识别用例
参与者希望系统执行什么任务? 参与者在系统中访问哪些信息?(创建、存储、修改、删
除等) 需要将外界的哪些信息提供给系统? 需要将系统的哪个事件告诉参与者? 如何维护系统?
如何判断一个用例是否是一个优秀的用例呢? ① 用例是否描述了应该做什么,而不是如何做? ② 用例的描述是否采取了参与者的视点? ③ 用例是否对参与者有价值? ④ 用例描述的时间流是否是一个完整场景? ⑤ 是否所有的参与者、用例都有相应的关联用例或关 联参与者?
每个用例都有参与者启动(每个用例必须和一个参与者关
联,有一个参与者来参与),除包含和扩展用例 用例和参与者之间是关联关系,有三种形式。
泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子用例也可以增加新的行为和含义或覆盖父用例中的 行为和含义.
泛化关系(Generalization)。
参与者
参与者(actor)是指系统以外的、需要使用系统或与系 统交互的事物, 包括: 人、设备、外部系统等. 其它译名 有: 活动者、执行者、行动者、角色等; 参与者是系统外部的一个实体,参与者只可能存在于 边界之外,边界之内的所有人和事物都不是参与者。
从图中可以看出,所有的用例都放置在系统边界内,表明它 属于一个系统。参与者则放在系统边界的外面,表明角色并不 属于系统。但是角色负责直接(或间接)驱动与之关联的用例 的执行。
怎样确定用例的粒度?(用例规模的大小)
用例的粒度可大可小,一般一个系统控制在20个左右,但
没有严格规定 用例是系统级的、抽象的描述,不是细化的(考虑的是 “做什么what”,而不是“怎样做how”) 对复杂的系统可以划分为若干子系统处理
实际上,用例粒度的划分依据最标准的方法是一个 用例的粒度是否合适,是以该用例是否完成了参与 者的某个目的为依据的。
UML中用例用椭圆表示, 使用动宾结构或主谓结构命 名.
例: 字处理程序中, “置正文为黑 体”和”创建索引”都可以是用 例.
使用用例进行需求分析的特点:
1. 用例从使用系统的角度描述系统中的信息. 2. 用例描述用户提出的一些可见需求, 对应一个具体的用户目标. 3. 用例是对系统行为的描述, 属于UML的动态建模部分.
在对参与者建模的过程中,注意以下几点: (1)参与者表示人和事物与系统发生交互时所扮演的 角色,而不是特定的人或特定的事物; (2)每个参与者需要一个具有业务一样的名字; (3)一个人或事物在与系统交互时,可以同时或不同 时扮演多个角色。
UML中的Actor实际上是一个版型化的类, 可以有三种 表示形式
使用用例时注意的问题:
1. 不要将所有的需求都以用例的形式表示出来. 2. 用例只描述系统功能性方面的需求, 它只是全部需求的一部分. 3. 本质上用例分析是功能分解技术, 但目前是OO开发的第一步. 4. 用例是与实现无关的关于系统功能的描述.
思考:
网上选课系统
脚本
其它译名: 情景、场景、情节、剧本. 脚本就是用例的一次完整的、具体的执行过程。用例 与脚本的关系,如同类与对象的关系。 每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
用例图的作用
用例图展示了用例之间以及用例与参与者之间是怎样相互联 系的。用例图对系统、子系统或类的行为进行了可视化,使 用户能够理解如何使用这些元素,并使开发者能够实现这些 元素。 用例图主要用来描述用户的功能需求。UML侧重从最终用户 的角度来理解软件系统的需求,强调谁在使用系统、系统可 以完成哪些功能。用例分析技术已经是一种公认有效的用户 需求获取、分析和描述技术