第3章 用例分析
第3章 用例图
为了保证系统正常运行,谁将对系统进行维护管理
(副参与者)? 谁将完成系统数据的录入、导出及修改等工作(主 动参与者)? 谁或什么系统对系统产生的结果感兴趣(被动参与 外部系统进行交互? 在预定的时间,是否有事件自动触发? 系统从何处获取信息?
(2)参与者不一定是人,也可以是一个外部系统, 该系统与本系统相互作用。代表的是一种角色。 (3)在系统的实际运作中,多个不同的用户可能 只对应于一个参与者;同时一个实际用户也可 能对应系统的多个参与者。
例如: 在“房地产开发经营管理系统”中,
所有的购房者作为一个集合,在“房屋销售子 系统”中作为购房合同的签约方出现,多个个 体在系统中担任一个参与者;同时,某个独立 的购房者在“物业管理子系统”中又作为房屋 的业主出现,同一个人在系统中担任了两类参 与者。
主参与者和副参与者
主参与者使用系统的主要功能,是使用系统较 频繁、业务量较大的用户。 副参与者处理系统的辅助功能,它与用例进行 交互的主要目的是为了给其他的参与者提供某些服 务。如管理数据库、通信、系统备份以及其他管理
等系统维护工作。
主动参与者和被动参与者
主动参与者是系统的启动者,负责启动一个或多
借阅图书用例的描述
用例名称 标识符 用例描述 参与者 状态 BorrowBook UC0001 图书管理员代理借阅者办理借阅手续 图书管理员 通过审查
前置条件
后置条件 假设 基本操作流程
图书管理员登录进入系统
如果这个用例成功,在系统中建立并存储借阅记录 图书管理员已经成功地登录到系统 1. 2. 3. 4. 5. 管理员输入借书证信息 系统验证借阅证的有效性 图书管理员输入图书信息 添加新的借阅记录 显示借书后的借阅信息
第3章用例及用例图-案例精品PPT课件
● ② 确定各参与者所期望的系统行为。
管理员: 增加课程 修改课程 删除课程
学生: 查询课程 选择课程 网上付费
10
① 找出系统外部参与者,确定系统边界和范围。 ② 确定各参与者所期望的系统行为。 ● ③ 把这些系统行为命名为用例。
11
● ④ 确定各用例之间的关系(泛化,包含,扩展)。
12
● ⑤ 绘制用例图。
5
案例1: • 用例图
6
案例1: • 优化
7
案例2:
某学校网上选课系统的用例分析
管理员通过系统管理界面进入系统,建立本学 期要开设的各种课程,将课程信息保存到系统中, 并可以对课程进行改动和删除。 学生通过客户机浏览器进入系统,选择课程:可 以查询课程,选择课程,支付课程费用。
8
● ① 找出系统外部参与者,确定系统边界和范围。
You Know, The More Powerful You Will Be
谢谢大家
荣幸这一路,与你同行
It'S An Honor To Walk With You All The Way
演讲人:XXXXXX 时 间:XX年XX月XX日
2
3.7 业务用例图
• 业务角色(Business Actor)
– 机构(组织)外部参与者
• 业务工人(Business Worker)
– 机构内部参与者所起作用的表示
• 业务用例(Business Use Case)
– 业务功能(无论是手工还是自动处理)
• 业务机构(Business Organization)
13
● ⑥ 编制用例说明。
● 用例:增加课程
●参与者:管理员
●操作流:
第3章用例及用例图-案例学习资料
● ① 找出系统外部参与者,确定系统边界和范围。
17
● ② 确定各参与者所期望的系统行为。
柜台人员 客房预订 预订变更 入住登记 退房结帐 选择课程 信息查询
18
① 找出系统外部参与者,确定系统边界和范围。 ② 确定各参与者所期望的系统行为。 ● ③ 把这些系统行为命名为用例。
19
● ④ 确定各用例之间的关系(泛化,包含,扩展)。
13
● ⑥ 编制用例说明。
● 用例:增加课程
●参与者:管理员
●操作流:
① 管理员选择进入管理界面,用例开始。
② 系统提示输入管理员密码。
③ 管理员输入密码。
④ 系统检验密码。
A1:密码出错。
⑤ 进入管理界面,系统显示当前所建立的全部课程信息。
⑥ 管理员选择增加课程,管理员输入新课程信息。
⑦系统验证是否与已有课程冲突。
2
3.7 业务用例图
4
3.8 实例
• 案例1:
– 有一个爱书之人,家里各类书籍已过千册,平时又 时常有朋友外借,因此需要一个图书管理系统。该 系统应该能够将书籍的基本信息按计算机类、非计 算机类分别建档,实现按书名、作者、类别、出版 社等关键字的组合查询功能。在使用系统录入新书 籍时系统会自动按规则生成书号,以修改信息,但 不能够删除记录。该系统还应该能够对书籍的外借 情况进行记录,可对外借情况列出打印。另外,还 希望能够对书籍的购买金额、册数按特定时限进行 统计。
20
● ⑤ 绘制用例图。
21
● ⑥ 编制用例说明。
● 用例:客房预订 ●参与者:柜台工作人员 ●说明:
① 工作人员启动预订功能。 ② 根据预订需求查看客房空闲信息。 ③ 输入预订人信息。 ④ 安排客房。 ⑤ 预订成功。
第03三部分 用例分析
维持一致性
• • • • • • 类中多余的职责 类中分离的职责 只有一个职责的类 没有职责的类 更好的行为分配方式 与许多其他类有交互作用的类
确定属性
• 类的特征 • 类要保留的信息 • 不能成为类的名词 • 值很重要的信息 • 某个对象独有的信息 • 没有行为的信息
确定关联
PerformResponsibility
第三部分 用例分析
主要内容
用例分析总述 补充用例描述 查找分析类 将用例行为分配给分析类 描述分析类 描述分析机制 合并分析类 案例实践
[早期精化迭代]
[初启迭代]
[定义备选架构]
执行架构合成
分析行为 改进架构 [可选]
设计人员 用例分析
设计构件
设计数据库
用例分析总览
术语表
项目专用 设计指南
软件架构文档
2: // get course offerings( ) 8: // create schedule with offerings( )
1: // create schedule( ) 7: // select 4 primary and 2 alternate offerings( )
3: // get course offerings(forSemester)
时序图示例
: Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem : Schedule : Student : Course Catalog
1: // create schedule( ) 2: // get course offerings( )
uml 基础教程 第三章-用例图
• 用例具有3个明显的特征: (1)用例表明的是一个类,而不是某个具体的实例 (2)用例必须由某一个参与者触发激活后才能执行,即
每个用例至少应该涉及一个参与者 (3)用例是一个完整的描述
椭圆来表示用例
“回顾”饮料销售机
• 在前面的分析中,我们获得了系统中有3个用例,分别是 “Buy soda(买饮料)”、“Restock(供货)”、“Collect( 收款)”。
• 假设正在对一台饮料机建模,这台饮料销售机允许顾 客选择买一罐饮料或是买一杯饮料。在这种情况下,“Buy Soda”就是一个父用例,“Buy a can of soda”和“Buy a cup of Soda”就是子用例。用例之间的泛化关系建模与类之间 泛化关系建模方法相同,用一条带空心三角形箭头的实线 从子用例指向父用例。
• 要用在用例图上显示某个用例:
➢使用人形符号绘制一个参与者;
➢绘制一个椭圆表示用例,将用例的名称放在椭 圆的中心或椭圆下面的中间位置;
➢使用带箭头或不带箭头的线段来描述参与者和 用例之间的关系。
举例:饮料销售机
• 假设你现在正着手设计一台饮料销售机。为了获得用户 的观点,你会见了许多可能的用户以了解这些用户将如何 与这台机器交互。
“取钱”用例
• 还有一个“取钱”用例,同样也是因为一段时间的流逝, 收款人发起了这个用例。它的前期工作步骤与”供货“一 样,也是打开销售机前端架子。收款人从机器中取出钱, 然后按照”供货“步骤,放回架子锁好机器。 这个用例的前置条件也是时间间隔的流逝,后置条件 是收款人收到了钱。
3.1.1 参与者
• 理想情况下,顾客看到这条消息后会立即选择其它品牌 的饮料。销售机也必须提供给顾客取回原来的钱的选项。 这表示,销售机应给顾客两种选择:让顾客选择另一种饮 料并且给顾客提供这种饮料(如果这种饮料还有存货的话) 或者让顾客选择退钱。
第3章 需求分析与用例模型
特殊需求通常是非功能性需求,包括可靠性、性能、可用性和可扩展性 等。例如法律或法规方面的需求、应用程序标准和所构建系统的质量属 性等。
5 前置条件: 执行用例之前系统必须所处的状态。例如,前置条件 是要求用户有访问的权限或是要求某个用例必须已经执行完。
2021/10/10
33
4.扩展关系
2021/10/10
34
4.扩展课表关查询系系统
2021/10/10
35
4.扩展关系
使用场合 对扩展用例的限制规则:将一些常规的动作放在一个
基本用例中,将可选的或只在特定条件下才执行的动作放 在它的扩展用例中。
2021/10/10
36
扩展关系误用
2021/10/10
导作用。
2021/10/10
11
二、用例图的构成要素
用例图包含3方面内容:
¯参与者(Actor) ¯用例(Use Case) ¯关系:
关联(Association) 泛化(Generalization) 包含(Include) 扩展(Extend)
用例图中可以包含注释、约束
2021/10/10
12
2021/10/10
22
用例的识别
还有一些与当前参与者的日常工作无关的问题,也能帮助发现 用例 • ⑴ 系统需要的输入、输出是什么信息?这些信息是从哪里来到 哪里去? • ⑵ 系统当前的这种实现方法要解决什么问题(也许用自动系统 代替手工操作)?
2021/10/10
23
用例之间的各种关系
用例图中,除了参与者与用例之间的关联关系外,参与者和参 与者之间可以有泛化关系,用例和用例之间有泛化关系、包含关系 和扩展关系。 1.关联关系
3章:用例图习题
3章:用例图习题第3章用例图习题一、简答题1. 什么叫参与者,参与者有哪些基本特性?答:参与者也被称为活动者,是与系统发生交互的外部实体。
参与者的特性有:1)参与者位于系统的外部,不属于系统的内容;2)参与者与系统发生交互关系,交互关系主要有:使用系统,启动系统,获取系统信息或给系统提供信息;3)参与者和系统之间存在交互信息的接口,系统提供接口让参与者使用系统,或者系统通过参与者的接口与参与者进行交互。
2. 用例有哪些特性?答:概括起来,用例有以下特性:1)用例描述用户对系统的期望,被用于软件需求建模,一个用例对应于软件能够为参与者提供的一项服务。
2)用例反映参与者与系统一次完整的交互过程。
这个交互过程总是要耗费一段时间,并1执行一定的流程。
流程的执行是参与者与系统的一段互动过程,在这个过程中有输入到系统的信息,以及系统反馈给参与者的信息。
3)用例的执行过程是系统为参与者的一次服务过程,这个服务就体现为系统提供给参与者的功能。
一个用例执行的完成,需要有确定的评价结果,这个结果表现为系统提供给参与者的一项完整的功能。
4)用例是软件设计和测试的依据。
3. 用例之间有哪几种关系?答:泛化关系,包含关系,扩展关系。
4. 用例叙述应该包括哪些基本内容?答:包括:用例编号,用例名,参与者,前置条件,事件流,后置条件。
二、填空题1. 用例图的要素包括(参与者)、用例和(关系)。
2.参与者的英名名称是(actor),参与者2也被称为(活动者)。
3.参与者的类型可以是(人)、设备、(外部系统)和时间。
4.用例的英名名称是(usecase),也被称为(用案)和(用况)。
5.用例之间的关系有(泛化)、包含和(扩展)。
6.执行用例之前系统所处的状态被称为(前置条件),(事件流)被称为用例执行的流程。
三、选择题1.下面不属于用例图作用的是(C)A:展现软件的功能 B:展现软件使用者和软件功能的关系C:展现软件的特性 D:展现软件功能相互之间的关系2.下面(B)不属于用例图的要素A:参与者 B:包含3C:用例 D:关系3.下面对参与者说法不正确的是(A)A:是系统的一个实体 B:也叫活动者C:在系统外部 D:与系统发生交互4.下面(D)不属于参与者类型()A:人 B:设备C:外部系统 D:交互对象5.下面对用例说法不正确的是(C)A:usecase B:用况C:使用情况 D:用案6.下面不属于用例特点的是(B)A:用例描述用户可见的软件功能4B:用例反映功能的不同抽象层次C:用例反映参与者与系统一次完整的交互过程D:用例是软件设计和测试的依据7.下面不属于用例之间关系的是(A)A:关联 B:泛化C:包含 D:扩展四、练习题1.根据你的理解,把下面的用例图补充完整。
第3章 用例图
案例分析--用例图
实例:“杂志流通”
在杂志的内容被一个雇员分析之前,每个杂志 首先由图书馆登记;分析员认为有意义的文章 被汇总输入到系统中;随后,杂志在雇员中传 阅。在此过程中,要求生成流通通知。该通知 被附到杂志上,并且包含现在正在阅读杂志的 雇员的名字。最后,在最后一名读者把杂志返 回到图书馆时,它由图书馆来存档。
3.1 参与者
从上面的问答得到系统中初步的类和对象:
GUI(图形用户界面):识别用户的命令,接收 用户的输入,显示程序的结果。
Recorder(记录员):记录中奖信息。 Chooser(抽奖者):抽出中奖号码。 Printing(打印对象):打印中奖信息。 Searching(查询对象):为奖票持有者查询中
3.2 用例
问:抽奖主持人用这个系 抽奖程序初步的用例图
统做什么事情?兑奖人员
抽奖程序
如何用这个系统帮助兑奖
?
抽出中奖号码
答:抽奖主持人用这个系统 活动主持人 抽出中奖号码,兑奖人员用
活动主持人
这个系统打印本次活动所有
打印中奖记录
的中奖记录。再对照记录兑 兑奖者
兑奖者
奖。
查询中奖情况
奖票持有者
奖票持有者
用例图的构成4要素:
参与者 用例 系统边界 关联
用例图的基本概念
3.1 参与者
1. 参与者(Actor)的概念
参与者是指存在于被定义系统外部并与该系统发生 交互的人或其他系统,他们代表的是系统的使用者 或使用环境。
在确定系统的用例时,首要问题就是识别参与者 (是一个类!!!!!!不是对象)。
如何识别用例?
参与者要向系统请求什么功能? 每个参与者的特定任务是什么? 参与者需要读取、创建、撤消、修改、或存储系统的某些信息吗? 是否任何一个参与者都要向系统通知有关突发性的、外部的改变?
第3章用例及用例图课件
总结 用例的特点
① 用例用于描述系统的功能,这个功能是外部 使用者看到的系统功能,不反映功能的实现方 式。 ② 用例描述用户提出的一些可见需求,对应一 个具体的用户目标。 ③ 用例反映系统与用户的一次交互过程,应该 具有交互的信息的传递。 ④ 用例是对系统功能的描述,属于需求建模。
13
4. 怎样确定用例的粒度
35
3.5 用例描述
• 用例名称
– 应该与用例图相符,并写上其相应的编号
• 简要说明
– 对该用例对参与者所传递的价值结果进行描述,应 注意语言简要,使用用户能够阅读的自然语言
• 前置条件
– 是执行用例之前必须存在的系统状态,这部分内容 如果在现在不容易确定可以在后面再细化
• 后置条件
– 用例执行完毕系统可能处于的一组状态,这部分内 容如果在现在不容易确定可以在后面再细化
9、UML是通过什么方法来对语言进 行扩展的?
6
教学进程
第3章
用例及用例图
3.1 用例 3.2 参与者 3.3 用例之间的关系 3.4 用例图 3.5 用例描述 3.6 用例分析
7
3.1 用例
1. 用例的概念 用例(use case): 系统、子系统或类与外部的参与者
交互的动作序列的说明,包括各种序列及出错序列。简 单的说,表示参与者与系统的一次交互过程。 用例分析可以认为是对系统功能的分解。 2.用例的表示
UML除了可以用于软件建模之外,
还可以用于(
)建模。
3
教学进程
?问题:
4、填空 UML的基本语言要素包括( )、
( ) 和 ( )。
4
教学进程
?问题:
5、UML建模元素之间可以有哪几种 关系?
达内第3章 软件测试用例的设计2——白盒测试
29
条件覆盖
条件覆盖要求设计足够多的测试用例,使得程 序中每个判定表达式中的每个条件至少获得一 次“真”和一次“假”。
条件覆盖优缺点:
【优点】:增加了对条件判定情况的测试,增加了 测试路径。
【缺点】:条件覆盖不一定包含分支(判定)覆盖。 条件覆盖只能保证每个条件至少有一次为真,而 不考虑所有的判定结果。
Y Y
“程序片”测试
“程序片”测试 程序片也叫程序切片,是一种程序分析和理解 技术。 程序片是确定或影响某个变量在程序某个点上 的取值的一组程序语句。典型的程序分片算法 有Weiser的基于数据流方程的算法,无定型分 片算法,Bergeretti的基于信息流关系的算法, 基于程序依赖图的图形可达性算法,基于波动 图的算法,参数化程序分片算法,并行分片算 法,面向对象的分层分片算法等。
控制流图中的每一个节点可以表示程序流程图 中矩形框所表示的处理;
菱形表示的两个甚至多个出口判断; 多条流线相交的汇合点。
1 2
3
6
4
7 11
9
8
5
10
1
2,3
6
4,5
7
8
9
10
11
例: 1 if a or b 2x 3 else 4y
环形(圈)复杂度
定义:环形复杂度是一种为程序逻辑复杂性提 供定量测度的软件度量,将该度量用于计算程 序的基本的独立路径数目,为确保所有语句至 少执行一次的测试数量的上界。
返回
31
判定/条件覆盖
要求不仅每个复合谓词所包含的每一个原子谓 词都至少获得一次“真”和一次“假”,而且 每个复合谓词本身也至少获得一次“真”和一 次“假”。即使得判断中每个条件的所有可能 至少出现一次,并且每个判断本身的判定结果 也至少出现一次。
第三章用例图
方法2:每个use case 画一个交互图。
32
Create, Retrieve, Update, Delete 类型用例的处理:
– 采用CRUD四个用例还是一个用例? – 从用户需求的角度考虑而不是从数据 处理的角度考虑。
第3章 用例图
东北大学信息科学与工程学院
E-Mail: yanglei@
杨雷
1/336
学习目标
1、掌握用例模型包括内容 2、熟练掌握用例图 3、熟练掌握用例图中的关系 4、掌握用例描述 5、掌握用例图建模技术
2
主要内容 3.1 用例模型概述 3.2 用例图 3.3 用例图中的关系
– 可观测:用例止于系统边界 – 结果值:用例是目标向导的 – 系统执行:结果值是由系统生成的 – 由参与者观测:业务语言,用户观点 – 一组用例实例:用例的粒度
22
可观测
描述交互,而不是内在的系统活动
23
用例是目标导向的
系统的存在是因为:参与者有一些需要使用它 来满足的目标。用例是用来描述系统的目标
10
Use Case的定义
在一个workshop(专题讨论会)上,14位主要的 OO专家对Use Case有14个定义。 定义1:use case是对一个活动者(actor)使用 系统的一项功能时所进行的交互过程的一个文 字描述序列 (见[2])。 定义2:用例是系统、子系统或类和外部的参与 者(actor)交互的动作序列的说明,包括可选的 动作序列和会出现异常的动作序列. (见[3])
ቤተ መጻሕፍቲ ባይዱ12
用例基本思想
问题的提出:在系统尚未存在时,如何描绘用户需 要一个什么样的系统?如何规范地定义用户需求? 考虑问题的思路:把系统看作一个黑箱,看它对外 部的客观世界发挥什么作用,描述它外部可见的行 为。
第3章用例和用例图
3.1 用例
用例(use case)是Ivar Jacobson发明的. 其它的中文译 名有: 用况、用案等. 它是站在用户的角度看待系统、 定义系统 ;使用用户能够看懂的语言来表述
定义1: 用例是对一个活动者(actor,角色,参与者)使用 系统的一项功能时所进行的交互过程的一个文字描述序 列. 定义2: 用例是系统、子系统或类和外部参与者交互的动 作序列的说明, 包括可选的动作序列和会出现异常的动 作序列. 用例是代表系统中各个项目相关人员之间就系统的行为 所达成的契约, 软件开发过程是用例驱动的.
18
面向对象分析与设计 & UML
3.4.1 泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子 用例也可以增加新的行为和含义或覆盖父用例中的行 为和含义.
右图的例子演示了 泛化关系
19
面向对象分析与设计 & UML
3.4.1 泛化关系
•
可以用来表示参与者与参与者之间,用例与用例之间的 特殊/一般化关系
33
面向对象分析与设计 & UML
3.6 用例的描述
用例描述一般包括的内容:
用例的目标 用例是怎么启动的 参与者与用例之间的消息如何传送 用例中除了主路径外, 其它路径是什么 用例结束后系统的状态 其它需要描述的内容
描述用例时的原则是尽可能写得“充分”, 而不是形式 化、完整或漂亮.
柜员机系统中,银行后台系统就是一个参与者; 2)硬件设备:如果系统需要与硬件设备交互时,如在 开发IC卡门禁系统时,IC卡读写器就是一个参与者; 3)时钟:当系统需要定时触发时,时钟就是参与者
第03章 用例和用例图
前置条件
后置条件
一个条件列表, 这些条件必须在访问用例前得到满足
一个条件列表, 这些条件必须在用例完成之后得到满足
基本操作流程 描述用例中各项工作都顺利进行时用例的工作方式
可选操作流程 描述变异工作方式、出现异常或发生错误的情况下的路径
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 一中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况. 其它译名: 情景、场景、情节、剧本. 每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
例:在“订货”用例中包括几个相关脚本: • 订货顺利进行的脚本; • 相关货源不足时的脚本; • 购货者的信用卡被拒绝时的脚本; • ……
第3章(用例图)
用例
事件流
将银行自动取款机(ATM)系统中的“提款”用例用事件流表述。 (ATM)系统中的 例:将银行自动取款机(ATM)系统中的“提款”用例用事件流表述。 提款─ 提款─基本事件流
基本流步骤1:用户插入信用卡 基本流步骤1 基本流步骤2 基本流步骤2:输入密码 基本流步骤3 基本流步骤3:输入提款金额 基本流步骤4 基本流步骤4:提取现金 基本流步骤5 退出系统, 基本流步骤5:退出系统,取回信用卡
用例规约模板
用例编号 用例名称 用例概述 范围 主参与者 次要参与者 项目相关人 利益说明 [为用例制定一个唯一的编号,通常格式为UCxx] 为用例制定一个唯一的编号,通常格式为UCxx] [应为一个动词短语,让读者一目了然地知道用例的目标] 应为一个动词短语,让读者一目了然地知道用例的目标] [用例的目标,一个概要性的描述] 用例的目标,一个概要性的描述] [用例的设计范围] 用例的设计范围] [该用例的主Actor,在此列出名称,并简要的描述它] 该用例的主Actor,在此列出名称,并简要的描述它] Actor [该用例的次要Actor,在此列出名称,并简要的描述它] 该用例的次要Actor,在此列出名称,并简要的描述它] Actor 项目相关人 [项目相关人员名称] 项目相关人员名称] …… 前置条件 后置条件 成功保证 基本事件流 1 2 扩展事件流 1a 1b 子事件流 规则与约束 [从该用例获取的利益] 从该用例获取的利益] …… 利益
[即启动该用例所应该满足的条件。] 即启动该用例所应该满足的条件。 [即该用例完成之后,将执行什么动作。] 即该用例完成之后,将执行什么动作。 [描述当前目标完成后,环境变化情况。] 描述当前目标完成后,环境变化情况。 步骤 活动 [在这里写出触发事件到目标完成以及清除的步骤。] 在这里写出触发事件到目标完成以及清除的步骤。 ……(其中可以包含子事件流,以子事件流编号来表示) ……(其中可以包含子事件流,以子事件流编号来表示) 其中可以包含子事件流 [1a表示是对1的扩展,其中应说明条件和活动] [1a表示是对1的扩展,其中应说明条件和活动] 表示是对 ……(其中可以包含子事件流,以子事件流编号来表示) ……(其中可以包含子事件流,以子事件流编号来表示) 其中可以包含子事件流
第三章—黑盒测试用例设计方法
参考答案1
参考答案
等价类及其编号
测试用例
1. 覆盖等价类1,2,3: 测试输入=(2006,6,16), 预期结果=(2006,6,17) 2. 覆盖等价类4,2,3: 测试输入=(1890,4,10), 预期结果=“输入错误!” 3. 覆盖等价类5,2,3: 测试输入=(2062,4,10), 预期结果=“输入错误!”
999999999999999999999999999999 + 999999999999999999999999999999 2. 小数:1.0+0.1,1.0+0.2…等等 3. 键盘上的任何一种组合 4. 为乘法和除法运算重复上面的操作
黑盒测试
请注意 通常运用一种测试用例设计方法不能获得理想的测试用例集。在设计测试 用例时,比较实用的方法是综合运用几种设计技术,取长补短。本章的最 后会给出一个示例。 进行黑盒测试设计方法的主要依据是软件系统需求规格说明书,因此,在 进行黑盒测试设计之前需要确保说明书是经过评审的,其质量达到了既定 的要求。另外,如果没有说明书的话,可以选择探索式测试 黑盒测试思想不仅可以用于测试软件的功能,同时,也可用于测试软件的 非功能,如性能、安全、可用性等
说明
到目前为止没有划分高质量等价类的标准方法,不同的功能说明可能使用 不同的方法。
不同的等价类得到的测试用例质量不同。 在划分等价类时,可以参考下面的建议: 1. 如果某个输入条件规定值的范围,可以确定一个有效等价类和两个无效等
价类 2. 如果输入条件规定了一个输入值的集合,可以确定一个有效等价类和一个
无效等价类。 3. 如果输入条件是一个布尔表达式的条件,可以确定一个有效等价类和一个
无效等价类
3.用例分析
Cont’d
完整的用例具有如下特征。 ✦一个完整的功能段。 包括逻辑主流、关于主流的任何变化 (子流)以及任何例外条件 (可选流)。 ✦一段外部可见的功能。 ✦功能的独立段。 用例在执行期间可以共享对象,但每 个用例的执行独立于其它用例 。
Cont’d
✦由参与者启动的一段功能。 用例一旦启动,能够与其它参与者交 互。 ✦传送一个参与者可识别的值的一段 功能。 用例间的关系有 ✦ 关联 ✦ 包括 ✦ 扩展 ✦ 用例泛化
业务需求扩展
用例分析主要根据业务需求分析系统行 为,分析系统为响应外部事件所做的事 情。 参与者是与用例交互的任何人或任何 事情,参与者与用例交互期望得到结果。 业务需求的功能需求具体化为用例。
Cont’d
Cont’d
用例文档
用例扩展表示一个用例在角色作用下 扩展为另一个用例。 用例文档包括简述、涉及的参与者、 用例开始的前提条件、事件流(主流、子 流)的详细描述、用例结束后的后置条件。
Cont’d
一旦订单被输入,系统向客户发送一封确 认Email,并附上订单细节,在等待计算 机送到时,客户可以在任何时候在线查 询到订单的状态。 后台订单处理包括如下步骤:验证 客户的信任度和付款方式、向仓库请求 所订购的配置、打印发票并且请求仓库 将计算机运送给客户。
用例分析
用例分析主要根据业务需求分析系统行 为,分析系统为响应外部事件所做的事 情。 参与者是与用例交互的任何人或任何 事情,参与者与用例交互期望得到结果。 业务需求的功能需求具体化为用例。
例2. 借阅者请求服务的用例图
Cont’d
Cont’d
Cont’d
✦ 关联 关联是参与者和用例之间的通信渠道。 ✦ 包括 包括关系把 所包括用例的公共行为提 取出来,用例的执行包括其它用例 。 ✦ 扩展 扩展用例通过在扩展点激活其它用例 来扩展一个用例的 行为。 ✦ 用例泛化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Icon形式
Label形式
Decoration形式
三 Actor的泛化关系
参与者(actor)之间可以存在泛化(generalization)关 系,表示一个一般性的参与者与另一个更为特殊的 参与者之间的联系。如下图所示:
actor actor
generalization
四 注意事项
错误2:只描述actor的行为,没有描述系统的 行为。
例3:下面是一个用例描述的片断: Use Case: Buy Something 参与者: Customer 主事件流:
1. 系统显示“ID and Password”屏幕。 2. 顾客键入ID和密码,然后按OK按钮。 3. 系统验证顾客ID和密码,并显示“Personal Information”屏幕 4. 顾客键入姓名、街道地址、城市、州、邮政编码、电话号码,然后 按OK按钮。 5. 系统验证用户是否为老顾客。 6. 系统显示可以卖的商品列表。 7. 顾客在准备购买的商品图片上点击,并在图片旁边输入要购买的数 量。选购商品完毕后按“Done”按钮。 8. 系统通过库存辅助系统验证要购买的商品是否有足够库存。 ...etc. 错误3:设定对用户界面的设计的要求。
扩展关n use case (对扩展关系) base use case (对包含关系)
base use case (对扩展关系)
inclusion use case (对包含关系)
包含与扩展的区别
执行基本用例时,可以执行也可以不执行扩展 用例; 执行基本用例时,一定会执行包含用例。
3.5 用例图
在UML中,一个用例模型由若干个用例图(use case diagram)描述。用例图是显示一组用例、 参与者以及它们之间关系的图。
例:金融贸易系统的用例图。
一个use case图的例子— financial trading system
3.7 用例描述
用例分析有两个主要工作: 用例图:只能描述系统大致功能,是一种视图; 用例描述:更详细地描述用例功能(最重要)。
一 含义
用例描述是指对一个用例的功能进行的文字描 述,是参与者与系统交互动作序列的说明。 一个用例的完整描述必须指明所有可能的脚本。
二 内容
用例的目标 用例如何启动 主事件流 其他事件流 用例结束后系统的状态 其它内容
用例的一个描述格式: (用例模板)
用例名称。表明用户的意图或use case的用途,如 “划拨资金”。 标识符 [可选]。唯一标识符,如 “UC1701”,在文 档的别处用标识符来引用这个用例。 用例描述。概述用例的几句话。 参与者。与此用例相关的参与者列表。 优先级。一个有序的排列,1代表优先级最高。 状态 [可选]。用例的状态,通常为以下几种之一: 进行中、等待审查、通过审查或未通过审查。
Use Case: Buy Something 参与者: Customer 主事件流:
1. 顾客使用ID和密码进入系统。 2. 系统验证顾客身份。 3. 顾客提供姓名、地址、电话号码。 4. 系统验证顾客是否为老顾客。 5. 顾客选择要购买的商品和数量。 6. 系统通过库存辅助系统验证要购买的商品是否有 足够库存。 ... etc.
1. 通过读卡机,储户插入ATM卡。 2. ATM系统从卡上读取银行ID、帐号、加密密码、并用主银行系 统验证银行ID和帐号。 3. 储户键入密码,ATM系统根据上面读出的卡上加密密码,对密 码进行验证。 4. 储户按“FASTCASH”按钮,并键入取款数量,取款数量应该 是5美元的倍数。 5. ATM系统通知主银行系统,传递储户帐号和取款数量,并接收 返回的确认信息和储户帐户余额。 6. ATM系统输出现金,ATM卡和显示帐户余额的收据。 7. ATM系统记录事务到日志文件。
collaboration
例: use case
realization
说明: 在大多数情况下,一个use case由一个 协作(collaboration)实现,因此可以不 用在模型中显式指明这种实现关系。 在UML中,一个collaboration由一组图 (协作图collaboration diagram,顺序图 sequence diagram,活动图activity diagram等)表示。
被泛化的用例:无 被包含的用例:登录 (UC1706)。 被扩展的用例:无 修改历史记录: Rene Becnel, 定义基本操作流程, 2012/10/3 Rene Becnel, 定义可选操作流程, 2012/10/6 例:提取现金的部分描述
Use Case: Withdraw Cash (提取现金) 参与者: Account Holder 主事件流:
第三章 用例分析
3.1 用例( Use Case )
在软件开发中采用用例驱动是I. Jacobson对软 件界最重要的贡献之一。
Use Case 驱动
需求 分析和设计
实现
测试
Use Cases 把所有这些过程绑到一起
use case对软件开发的意义
一 定义
use
case是对一个活动者(actor) 使用系统的一项功能时所进行的交 互过程的一个文字描述序列。
2. 作用:包含用例使一个用例功能可在另一用 例中使用。 它有两种场合使用: 如果两个以上用例有大量一致的功能,将其分 解至另一用例; 一个用例功能太多,可以建模子用例。
包含关系的例子:
base use case
inclusion use case
四 扩展(extend)关系
扩展(extend)关系的基本含义与泛化关系类似,但 是对于扩展Use Case有更多的规则限制,即基本 的Use Case必须声明若干“扩展点” (extension point),而扩展Use Case只能在这些扩展点上增 加新的行为。
actor说明: Actor是虚拟的概念,可以指人,外部系 统,设备等。 一个actor可以执行多个use case;一个 use case也可以由多个actor所使用。 尽管在模型中使用actor,但actor实际 上并不是系统的一部分。
二 表示
Actor实际上是一个版型化的类,其版型(Stereotype) 是actor。可以用带有版型“<<actor>>”的类图标表 示,也可以用人形图标表示。一般用类图标表示参 与者是外部系统,用人形图标表示参与者是人。
在系统外部,同系统交互,帮助定义系统边界 事物与系统交互所扮演的角色,为群体概念; 事物与系统交互可同时扮演多个角色; 命名为业务领域名
3.3 用例图中的关系
一 关联(association) 参与者与用例之间具有使用、交互信息的关联 注意:箭头方向表示谁启动信息,非信息流动 方向
二 泛化(generalization)关系
修改历史记录 [可选]。关于用例的修改时间、修 改原因和修改人的详细信息。 问题 [可选]。与此用例的开发相关的问题的列表。 决策[可选] 。关键决策的列表,将这些决策记录 下来以便维护时使用。 频率[可选] 。参与者访问此use case的频率。如 用户每日访问一次或每月一次。
例:用例模板 用例名称:处理订单 标识符:UC1701 用例描述:当一个订单初始化或者被查询的时候 这个用例开始。它处理有关订单的初始化定义和 授权等问题。当订单业务员完成了同一个顾客的 对话的时候,它就结束了。 参与者:订单业务员 优先级:1 状态:通过审查 前置条件:订单业务员登录进系统 后置条件:下订单;库存数目减少
二 特点
用例从系统使用者的角度描述系统中的信息, 对应一个具体的用户目标; 用例不反映功能实现方式; 用例提供了一种与最终用户和领域专家进行沟 通的方法; 用例提供了一种测试系统的方法; 用例可大可小; 用例分析本质上是功能分解技术,但是OO开 发的第一步。
Use Case的实现: Use Case是与实现无关(implementation-independent)的关于 系统功能的描述。 在UML中,用协作(collaboration)来指明对use case的实现。
例4:下面是一个用例描述的片断: Use Case: Buy Something 参与者: user(或Customer) 主事件流:
3.2 参与者( Actor )
一 定义 Actor是指系统以外的,需要使用系统或与系 统交互的东西,包括人,设备和其它系统。 Actor有不同的译名,如:参与者, 活动者, 执 行者, 行动者等。
例:在线银行系统的一些可能的参与者: 客户:从系统获取信息并执行金融交易。 管理人员:开办系统的用户。获取并更新 信息。 厂商:接受作为转帐支付结果的资金 mail系统
前置条件。一个条件列表,如果其中包含条件,则这 些条件必须在访问用例之前得到满足。 后置条件。一个条件列表,如果其中包含条件,则这 些条件将在用例完成以后得到满足。 基本操作流程。描述用例中各项工作都正常进行时用 例的工作方式 。 可选操作流程。描述变更工作方式、出现异常或发生 错误的情况下所遵循的路径。 被泛化的用例 [可选]。此用例所泛化的用例列表。 被包含的用例 [可选]。此用例所包含的用例列表。 被扩展的用例 [可选]。此用例所扩展的用例列表。
扩展: use case之间的关系
3.3 Scenario(脚本)
脚本(scenario):也称情景,场景,情节,剧本等。 在UML中,scenario指贯穿use case的一条单一路径, 用来显示use case中某种特殊情况。 在“订货”这个用例中,包含着几个相关的scenario: