第04讲系统用例与用例关系
UML静态建模机制

UML 静态建模机制UML 静态建模机制00任何建模语言都以静态建模机制为基础。
UML 的静态建模机制包括用例图、类图、对象图、构件图和配置图等,使用它们建立系统的静态结构。
一、用例图长期以来,在面向对象开发和传统的软件开发中,人们根据典型的使用情景来了解需求。
但是,这些使用情景是非正式的,虽然经常使用,却难以建立正式文挡。
用例模型由Ivar Jacobson 在开发 AXE 系统中首先使用,并加入由他所倡导的OOSE 和 Objectory 方法中。
用例方法引起了面向对象领域的极大关注。
自 1994 年 Ivar Jacobson 的著作出版后,面向对象领域已广泛接纳了用例这一概念,并认为它是第二代面向对象技术的标志。
用例视图也称用例模型,用例模型描述的是外部执行者(actor)所理解的系统功能。
用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。
首先,它描述了待开发系统的功能需求;其次,它将系统看作黑盒,从外部执行者的角度来理解系统;第三,它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和 UML 的各个模型。
在 UML 中,一个用例模型由若干个用例图描述,用例图中显示执行者、用例和用例之间的关系。
用例图包含系统、执行者和用例 3 种模型元素。
1. 系统系统是用例模型的一个组成部分,代表的是一部机器或一个业务活动,而不是真正实现的软件系统。
系统的边界用来说明构建的用例模型的应用范围。
例如一台自助式售货机(被看作系统)应提供售货、供货、提取销售款等功能。
这些功能在自动售货机之内的区域起作用,自动售货机之外的情况不考虑。
准确定义系统的边界并不总是件容易的事,因为严格地划分哪种任务最好由系统自动实现,哪些任务由其他系统或人工实现是很困难的。
另外,系统最初的规模应有多大也应该考虑。
第04讲、使用等价类和边界值方法设计测试用例资料

无效等价类:
字符
32/82
步骤三:建立等价类表
对等价类进行编号
整数
小数、字符
-99 ( 3) ( 1)
0 ( 2)
99 ( 4) ( 5) ( 6) 无效等价类:
无效等价类: 有效等价类: 有效等价类: 无效等价类: 无效等价 -99>数值 -99<=数值 0<=数值<=99 99<数值 类:小数 <=0
Tarena High-End IT Training
中国北京 电话:(010)62135687、62136369 地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层
中国上海 电话:(021)61202630、61202603 地址:上海市北京东路668号 上海科技京城B区9层 中国广州 电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层 加拿大多伦多 电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toronto, Ontario, Canada 邮编:M2J 3J3
3 4
5 6
X < -99 X > 99
小数 字符
步骤四:编写测试用例
从每个等价类中至少选取一个数据作为测试数据
27/82
用例编号 用例描述 1 1、在“第一个数”文本框中输入:-50 2、在”第二个数”文本框中输入:20 3、点击“计算”按钮 1、在“第一个数”文本框中输入:48 2、在”第二个数”文本框中输入:40 3、点击“计算”按钮
99
无效等价类: -99>数值
有效等价类: -99<=数值<=99
无效等价类:
软件建模与设计UML、用例、模式和软件体系结构

“软件质量是衡量软件开发成功与否的关键因素之一。通过运用各种设计模 式和UML图表,我们可以提高软件的质量和可靠性。” (p. 160)
“团队间的沟通是软件开发的关键因素之一。通过统一语言和可视化模型, 我们可以提高团队成员间的沟通和协作效率。” (p. 177)
这些摘录不仅展现了本书的丰富内容和独特见解,也传达了软件开发的核心 原则和方法。无论大家是初学者还是资深开发者,相信大家都能从这本书中获得 启示和收获。
这一章深入探讨了用例图和用例描述。读者将了解到如何识别和定义用例, 以及如何创建用例图来表示这些用例之间的关系。还讨论了如何编写有效的用例 描述,包括前置条件、主要步骤和后置条件。
这一章引入了一些常用的设计模式,如单例模式、工厂模式和观察者模式等。 读者将了解到这些模式的用途、实现方法和适用场景。还讨论了重构的概念和方 法,以及如何通过重构来改进代码的质量和可维护性。
《软件建模与设计UML、用例、模式和软件体系结构》是一本极具价值的书 籍,它为我们提供了深入了解软件开发艺术的途径。通过学习本书的内容,我们 不仅可以掌握软件建模与设计的精髓,还可以提升我们的技能和知识水平。无论 大家是学生、教师还是开发者,这本书都将成为大家成长道路上的宝贵财富。
阅读感受
在我阅读《软件建模与设计UML、用例、模式和软件体系结构》这本书的过 程中,我深深地被书中深入浅出的讲解和丰富的案例所吸引。这本书不仅扩展了 我的软件设计视野,也让我对软件建模有了更深入的理解。
内容摘要
软件设计模式是解决常见设计问题的可重用解决方案,而软件体系结构则描述了软件系统的组织 结构和关系。本书提供了许多实用的例子和解释,帮助读者更好地理解和应用这些关键概念和技 术。 本书通过一个综合实例演示了如何将UML、用例、模式和软件体系结构应用于实际的软件开发项 目中。这个实例涵盖了从需求分析到系统设计的整个过程,帮助读者更好地理解和应用所学知识。 《软件建模与设计UML、用例、模式和软件体系结构》是一本全面、实用且易于理解的软件建模 与设计著作。无论大家是初学者还是经验丰富的开发人员,本书都将为大家提供深入浅出的指导 和实用的例子,帮助大家更好地理解和应用软件建模与设计的关键概念和技术。
04 第六章 用例图

主讲:XXX
本1
章 内
2
容3
4
5
6
用例图基本概念 用例图构成要素
用例的重要元素 用例之间的关系 使用Rose创建用例图 使用Rose创建用例图的步骤说明
6.0 用例图有什么用?
6.0 用例图有什么用?
1 软件行业现状
超预算
平均超出费用: 189%
推迟发布
平均超出时间: 222%
1. 参与者希望系统提供什么功能? 2. 系统是否存储和检索信息,如果是,由哪个参与者触发? 3. 当系统改变状态时,是否通知参与者? 4. 是否存在影响系统的外部事件? 5. 哪个参与者通知系统这些事件?
也可以通过一些与参与者无关的问题来发现用例。 同时注意,用例实际上描述的是系统需求,需要仔细、反复
要在用例图上显示某个用例,可绘制 一个椭圆,然后将用例的名称放在椭 圆的中心或椭圆下面的中间位置。
要在用例图上绘制一个参与者(表示 一个系统用户),可绘制一个人形符 号。
6.1 用例图基本概念
1 用例图的含义
参与者和用例之间的关 系使者和被动接受者
要得到正确的需求至少存在两个难 点:
1. 难以捕获; 2. 容易改变。
6.0 用例图有什么用?
4 从用例(图)开始
用例图是需求分析阶段的结果,是可视化描述软件系统功能 需求的重要方法。
用例图是从客户需求自然语言描述中得出的,是软件系统开 发的起点。
此外,用例图是全体开发人员沟通、开发系统功能的准确交 流途径。
第六章 用例图
6.1 用例图基本概念
用例图是Jacobson在1992年最先提出的, 它通过用例(Use Case)来捕获系统需求,再 结合参与者(Actor)进行系统功能需求的分 析和设计。
业务用例与系统用例的关系

业务用例与系统用例的关系绝大多数构架师都认为业务建模是开发软件解决方案中到一个专门重要的活动。
成功的解决方案会支持那个业务,它们能够解决业务咨询题并确保业务目标的实现。
当开发一个合理的业务模型以后,业务流程分析员能够探究不同业务改进的选项,例如取消余外的任务,使重复且平凡的任务或者容易显现的错误实现自动化操作。
IBM®Rational Unified Process®,或者RUP®,以及Unisys 3D Visual Enterprise,或者3D-VE,或者3D-VE,提供了一个系统化的方法,利用统一建模语言(UML)能够直观地表现业务模型,同时还能够派生出一个一致的且能够追溯到那个业务模型的起点系统用例模型。
这篇文章提供了RUP 业务建模的概述,并解决了以下的咨询题:业务用例模型与系统用例模型有如何样的相似之处?业务用例模型与系统用例模型有什么不同之处?构建业务模型应该使用哪个UML 图?业务用例模型与系统用例模型之间有什么关系?背景在谈论那个咨询题之前,我想讲明一下什么原因要选择那个专门的话题来写。
自从1990年我就作为一名软件构架师从事系统用例的工作。
当我是一名由Unisys Global Public Sector 开发的Integrated Justice Informati on Sharing (IJIS) 框架解决方案的总构架师时,还没有接触到业务用例,直到2002年。
IJIS 现在差不多进展成为Unisys Information Sharing Manage ment Framework (ISM)。
ISM 是一套支持信息共享的总体业务过程的可重用的组件。
ISM Fra mework 利用Service Oriented Architecture (SOA) 技术整合了不同类型的司法与公共安全系统,从而在关键决定点时分配关键的数据,文档以及图片。
测试用例 元素关系

测试用例元素关系
在软件开发过程中,测试用例是非常重要的一环。
它们是用来
验证软件系统是否符合预期行为的关键工具。
而测试用例之间的元
素关系则是决定测试用例之间如何相互作用和影响的重要因素。
首先,测试用例之间存在着依赖关系。
这意味着某些测试用例
可能需要在其他测试用例执行之后才能进行。
例如,如果一个测试
用例需要在数据库被初始化之后才能执行,那么它就依赖于数据库
初始化的测试用例。
在编写测试用例时,必须考虑到这些依赖关系,以确保测试用例能够按照正确的顺序执行。
其次,测试用例之间还存在着影响关系。
这意味着某些测试用
例的执行结果可能会影响其他测试用例的执行结果。
例如,如果一
个测试用例修改了系统的某些配置,那么后续的测试用例可能会受
到影响。
在这种情况下,需要确保测试用例之间的影响是可控的,
并且能够进行适当的清理和恢复操作,以保证测试用例的独立性和
可重复性。
此外,测试用例之间还存在着组合关系。
这意味着某些测试用
例可能需要以一定的组合方式进行执行,以验证系统的某些复杂功
能或场景。
在编写测试用例时,需要考虑到这些组合关系,并确保能够覆盖到系统的各种组合情况,以提高测试的全面性和有效性。
总之,测试用例之间的元素关系是软件测试过程中需要重点关注的问题。
只有深入理解和合理处理测试用例之间的依赖、影响和组合关系,才能够确保测试工作的顺利进行,并最终达到有效验证软件系统的预期行为的目的。
tanhuobin_uml04a[1].Use-Case+Modeling+(Supplement)
uml1.3之后,提供了三种用例关系 之后, 之后
<<include>>关系、<<extend>>关 关系、 关系 关 系都是依赖( 系都是依赖(dependency)关系的构造 ) 型(stereotype) ) 泛化关系( 泛化关系(generalization) )
-22-
3.1用例规约中的前置条件 用例规约中的前置条件
-21-
<<uses>>关系 关系
关于<<uses>>关系 关系 关于
uml1.1中有两种用例关系 中有两种用例关系
<<uses>>关系和 关系和<<extends>>关系 关系和 关系 它们都是泛化( 它们都是泛化(generalization)关系的 ) 构造型( 构造型(stereotype) )
用例文档
基本路径的编写 前置条件等其它部分 用例关系的描述
-4-
先看几个问题较多的用例图
1 2
4 3
-6-
-7-
再来分析每个问题
1.1时间执行者的使用 时间执行者的使用
时间:执行者,一种习惯用法, 时间:执行者,一种习惯用法,用于 激活那些系统定期的、 激活那些系统定期的、自动执行的用 例
小时工和普通人员每天需要记录自己的考勤 信息 销售人员不需要考勤, 销售人员不需要考勤,而是记录每天的订单 信息 员工可以查看自己已经确认的工资和以前的 工资和考勤信息; 工资和考勤信息;而已经提交的考勤信息不 允许修改
-33-
考勤系统要点-2 考勤系统要点
系统在每个周五和月末自动计算员工工资
根据考勤信息(销售人员为销售记录 和工资 根据考勤信息 销售人员为销售记录)和工资 销售人员为销售记录 级别代码计算工资,而工资级别代码在外围 级别代码计算工资, 的项目管理数据库中 三类员工的工资计算方法各不相同 计算好的工资需要等待项目经理确认之后才 能公布
物流管理信息系统分析
04
02
03
客户 银行的一个或多个账户的持有人。在不同的银行持有帐户的同一个人会被看作是不同的客户。
现金卡 分配给银行客户的一种卡,支持使用ATM机授权访问帐户。
ATM 允许客户使用现金卡作为身份证明来进行交易的柜台。
账户,交易,中心计算机,银行,银行计算机,联盟,出纳,出纳站点
准备数据字典
寻找关联
Individual contributor Supervisor
Manager
Employee type /reporting level
person
boss
worker
变化抽象的层次
出纳员,存入柜台,出纳柜台,ATM
出纳包
账户,现金卡,卡授权,客户,交易,更新,出纳交易和远程交易
账户包
联盟,银行
交易成功、交易失败、 账户完好、坏账户 坏密码、坏银行代号 确认资金
处理事务 校验账户 校验资金
应用分析
应用程序交互模型 编制复杂用例的活动图
返还卡
插卡
应用分析
应用程序交互模型 组织参与者和用例
ATM
发起会话
查询账户
处理事务传输数据《来自nclude》《include》
《include》
《include》
寻找关联
动词短语 银行网络包括出纳柜台和ATM机 联盟共享ATM机 银行提供银行计算机 银行计算机维护账户信息(仓库计算机维护客户信息) 银行计算机处理账户上的交易信息(仓储作业人员处理客户的库存信息) 银行拥有出纳柜台 出纳柜台与银行计算机通信 出纳员输入账户的交易信息 ATM机与中心计算机通信交易信息 中心计算机清除银行的交易信息(客户取消入库单申请) ATM机接受现金卡(客户支付仓储作业费用)
第三讲课堂练习-用例图与用例规约
4a2.前台人员确认已退还定金;
4a3.系统统计定金已退还。
17
2
要求:
按需求简要描述为旅店预订系统创建用 例图;
选择一种用例进行场景描述; 为该用例建立用例表; 为该用例创建活动图。
3
问题用例图1
4
问题用 例图2
5
问题用例图3
6
1. 不恰当旳“时间”参加者
✓ 时间:参加者,一种习常使用方法,用于激 活那些系统定时旳、自动执行旳用例
✓ “检验是否能够退定金”旳时候,时间仅仅 是一种系统内部旳判断条件,而不是参加者
12
5.参加者和用例间旳关系
✓ “打印报表” 和“酒店管理 员”之间旳关 联是有意义旳 交互吗?
13
6. 用例粒度太小
14
较为合理旳用例图
酒店前台
<<include>>
查找房间 <<include>> 预订房间
计算总费用
<<extend>>
取消预订
退还定金
管理人员
调整价格
时间
打印预订清单
15
较为合理旳用例规格阐明1
✓ 扩展关系: “extend”关系旳 方向,子用例对主用 例旳扩展
9
3. 错误旳用例关系
✓ 用例旳顺序在活动 图中体现
10
3. 错误旳用例关系
11
4. “其他”用例?
✓ “其他”、“打印清 单”用例和外围没有 任何有意义交互,和 其他用例也没有任何 关系,这么旳用例有 意义吗?
✓ “其他”用例又代表 什么呢?想阐明什么 样旳功能需求?
用例名称:预定房间 涉及旳参加者:酒店前台 描述:酒店前台人员根据旅客旳入住祈求,预定某个时间指定档次旳房间,预定
面向对象需求分析——用例图和活动图
面向对象需求分析——用例图和活动图面向对象软件开发的方法有:a,面向对象分析(OOA)b,面向对象设计(OOD)c,面向对象实现(00I)d,面向对象测试(OOT),e,面向对象维护(OOM)这几个主要大步骤。
下边我们就从面向对象的角度来学习UML的相关图。
这里介绍面向对象分析阶段的用例图和活动图。
面向对象分析阶段,我们要明确系统的职责,范围和边界;确定软件的功能和性能;构建需求模型(用例模型)。
首先在这里说一下,为什么将这两个图放在一起,主要原因就是活动图的一个目的是更细致的描述用例图,和文档的配合使用,使用例图更加清楚明了。
先介绍一下:用例图1,概念:用例是系统的一个功能单元,是对用户需求的描述。
2,组成:参与者,用例及其之间的关系(包括关联关系,泛化关系,包含关系,扩展关系):3,用例建模的步骤:a,确定系统的范围和边界;b,确定系统的用例和参与者;c,描述用例;d,对用例分类,并确定用例之间的关系;e,建立用例图,并定义用例图的层次结构;f,评审用例模型。
下边我们看个例子:这是一个教务管理系统的总用例图和一个子一级用例图,当然还可以再分:在上述6个步骤中,我简单总结一下:a,系统边界,就是一个系统内部所有元素与系统外部事物的分界线。
b,用例和参与者,需要我们根基实际情况去抽象。
c,描述用例,这个我重点写一下(举例,选课注册):用例编号:0101用例名称:选课注册执行者:学生功能:实现学生选课注册的过程类型:主要用例,基本用例级别:一级过程描述:1,学生输入系统账号和密码,系统进行验证;2,查询课程信息3,查询个人选课信息4,若可以选课,则进行选课注册,并将选课信息写入数据库中5,返回选课注册是否成功异常事件流处理:1,学生的账号和密码错误,允许重新输入(3次)2,学生未按时交纳学费,不可选课3,学生人数已达到上限,不可选课。
(当然在这里在把下边的活动图,添加进来即可)d,用例分类和确定之间的关系,有端点用例,基本用例,主要用例,辅助用例等,关系弄准确就可以。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统用例与用例关系薛建民xjm@87818127回顾基于UML的分析与设计 关注系统的体系结构 MDA业务用例建模UML结构UML构造块公共机制架构物件关系图规格说明修饰公共分类扩展机制用例视图逻辑视图进程视图实现视图部署视图结构物件行为物件分组物件注解物件关联依赖泛化实现类图顺序图对象图协作图构件图状态图部署图活动图用例图用户视图用例图实现视图结构视图行为视图环境视图类图对象图顺序图协作图状态图活动图组件图部署图结构模型视图主要内容用例图用例分析识别参与者识别用例识别用例之间的关系 小结与实验用例图获取需求、指导测试、对过程中的其他工作流其指导作用需求—建造“正确”的系统需求:系统必须满足的条件或具备的能力Robert Grady软件质量准则“FURPS”功能性(Functionality)使用性(Usability)可靠性(Reliability)非功能性需求 性能(Performance)可支持性(Supportability )以用例为中心组织需求用例可用性可靠性网络协议业务规则……硬件接口界面约束性能参与者,Actor关键词:边界参与者:在系统之外,透过系统边界与系统进行有意义交互的任何事物要点系统外◆参与者代表在系统边界之外的真实事物,并不是系统的成分系统边界◆参与者透过系统边界直接与系统交互,参与者的确定代表系统边界的确定有意义交互的任何事物◆人、外系统、外部因素、时间角色定义:也叫参与者(Actor)角色是与系统(子系统或类)交互的人或外部系统。
交互—收发消息角色是群体概念,即角色代表一类能使用某个功能的人或外部系统,不是指某个个体每个角色可以参与一个或多个用例角色可以被一组定义它的状态的属性充分描述 在系统的实际运作中,一个实际用户可能对应系统的多个角色识别参与者思路谁使用系统的主要功能谁改变系统的数据谁从系统获取信息谁需要系统的支持以完成日常工作任务谁负责日常维护、管理并保证系统正常运行谁使用或删除系统中的信息谁(或什么)对系统运行产生的结果(值)感兴趣 系统需要应付(处理)那些硬设备系统需要和那些外部系统交互在预定时间,是否有事件自动发生时间、气温等内部外部条件……参与者的类型和职责主要参与者直接与系统交互的人,或执行系统主要功能的执行者次要参与者使用系统次要功能的执行者,或维护系统一般功能的执行者外部硬件作为系统一部分的、运行应用的非计算机的硬件 其他系统为其工作需要与系统交互的外部系统参与者之间的关系独立关系泛化关系一个参与者的抽象描述可以被一个或多个具体的客户参与者所共享商业客户个体客户定义:Use Case用例表示系统的一项外部功能,它从用户的角度分析用例所得的需求。
为完成一个相对完整的一种功能,系统执行的一系列动作的集合是外部可见的一种系统功能代表的是一个完整的功能有一系列动作用例捕获某些角色可见的需求,实现一个具体的角色需求用例由其用户角色使用,并提供确切的输出给角色用例可大可小,但它必须是对一个具体的角色目标实现的完整描述用例的动态执行过程可以用U M L的交互作用来说明,可以用状态图、顺序图、协作图或非正式的文字描述来表示识别用例识别用例关键词:价值定义◆用例实例是系统执行的一系列动作,这些动作将生成特定参与者可观测的结果值◆一个用例定义一组用例实例(场景)简洁:参与者使用系统达到目标识别用例要点可观测→用例止于系统边界结果值→用例是有意义的目标系统执行→结果值由系统生成由参与者观测→业务语言、用户观点 一组用例实例→用例的粒度用例命名可观测:用例止于系统边界系统描述交互,而不是内在的系统活动边界---Boundary也叫系统边界,用于界定系统功能范围 用一个带名称的矩形框,把描述系统功能的用例都置于其中,而描述的与系统交互的角色都置于其外 系统----完整系统或子系统一个系统包括一个或多个用例准确的定义系统的边界(功能)不是一件很容易的事先识别出系统的基本功能集,以此为基础定义一个稳定的、精确定义的系统体系结构,再不断地扩充系统功能,以逐步完善结果值:有意义的目标设定查询条件会员选择零件会员检索零件√业务功能,而非系统处理系统执行:结果值由系统生成出纳员吃饭系统需要处理的,由系统生成参与者观测:用户观点而非系统观点订票旅客查看今日航班处理订票旅客显示今日航班用户观点系统观点要点:用例粒度用例要有路径,路径要有步骤;而这一切都是可观测的最常犯错误:粒度过细,陷入功能分解过细的粒度,一般都会导致技术语言的描述,而不再是业务语言用例粒度-1把步骤当用例把系统活动当用例会员输入用户名验证用户名和密码会员登录<<include>>查询订单建立数据库连接执行SQL语句<<include>><<include>>×√×用例粒度-2删除用户修改用户增加用户管理员查询用户×用例粒度-3“四轮马车”C(Create)R(Read)U(Update)D(Delete)所有业务最终会成为CRUD?CRUD能为Actor提供价值?CRUD掩盖业务,锐变成关系数据库的建模: “系统就是数据的增删改查”关心数据的存储和维护,反而忽略了用户的目的如果确实是CRUD?如果CRUD不涉及复杂的交互,一个用例“管理××”即可不管是C、R、U、D,都是为了完成“管理”目标甚至很多种的基本数据管理都可以用一个用例表示管理用户管理员灵活处理CRUD管理员管理用户增加用户<<extend>>可以把包含复杂交互的路径独立出去形成用例用例的命名执行者视角:(状语)动词+(定语+ )宾语顾客购买商品信用卡支付<<extend>>用例关系 Include 提取公共步骤,便于复用 Extend分离扩展路径 Generalization 同一业务目的的不同技术实现<<extend>>Extend <<include>>Include Generalization包含关系1<<include>>下订单提供客户信息包含关系2包含关系某些步骤在多个用例重复出现,且单独形成价值用例步骤较多时,可用Include简化 当完全知道什么时间要调用用例时,基用例需要包含用例所封装的逻辑可以简单认为源代码中的函数调用或操作调用扩展关系1管理订单会员从订单中删除某个订单项<<extend>>将扩展用例的事件流在一定的条件下按照相应的扩展点插入到基础用例中。
基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点 扩展用例的行为是否被执行要取决于主事件流中的判定点。
扩展关系基用例路径本身是完整的可能是一条扩展路径扩展路径步骤多扩展路径内部还可以有扩展点-扩展之扩展 扩展路径未定或容易变化-分离以“冻结”基用例基础用例可以单独存在,但在一定条件下,他的行为可以被另一个用例作为扩展扩展举例泛化关系同一业务目的不同技术实现:一个用例可以泛化为另一个更普通用例(更普通用例特化为特殊用例)UML 1.5: 用例间的泛化关系表明子用例包含父用例中定义的所有属性、行为序列和扩展点,并且参与父用例中所有的关系识别用户验证口令扫描指纹泛化一个售货员可以终止任何交易,除了那些需要特殊的售货员(高级代理)终止的超过了一定限制的交易普通售货员终止一个大交易高级代理终止一个基本交易终止一个小交易包含用例与扩展用例的区别①相对于基础用例,扩展用例是可选的,而包含用例则不是。
②如果缺少扩展用例,基础用例还是完整的,而缺少包含用例,则基础用例就不完整了。
③扩展用例的执行需要满足某种条件,而包含用例不需要。
④扩展用例的执行会改变基础用例的行为,而包含用例不会。
用例关系:扩展VS. 泛化识别用户验证口令扫描指纹识别用户验证口令扫描指纹<<extend>><<extend>>采用不同关系,文档结构不同小结理解需求以用例为中心组织需求 基于用例的需求分析过程 获取原始需求开发一个可以理解的需求◆识别参与者◆识别用例◆确定关系思考基于用例的需求分析过程可大致分几步? 什么是系统边界用例的概念用例的关系参与者的定义与关系思考1:识别参与者?寻呼台系统:用户如果预定了天气预报,系统每天定时给他发天气消息;如果当天气温高于35度,还要提醒用户注意防暑;在这个叙述里,谁是寻呼台系统的Actor?用户?气温?时间?思考2:获取需求-考勤卡应用程序初次访谈记录开发者:谁将使用这个应用程序?客户:所有用它来记录可记帐以及不可记帐的工时的雇员……开发者:现在考勤卡应用程序是什么样的?客户:每半个月就用一个Excel表格来记录。
每个雇员都将通过他的表格填好,然后用电子邮件发给我。
这个表格相当标准:纵向是收费项目代码,横向是日期。
雇员可以在每个条目上填写说明。
开发者:这个收费项目代码可以从什么地方得到?……开发者:谁来管理收费项目代码?客户:嗯,必要的时候由我来添加这个代码。
而每个经理总会告诉他的下属应该填写什么。
……思考2:识别参与者:考勤卡系统开发者:谁将使用这个应用程序?客户:所有用它来记录可记帐以及不可记帐的工时的雇员……开发者:现在考勤卡应用程序是什么样的?客户:每半个月就用一个Excel 表格来记录。
每个雇员都将通过他的表格填好,然后用电子邮件发给我。
这个表格相当标准:纵向是收费项目代码,横向是日期。
雇员可以在每个条目上填写说明。
开发者:这个收费项目代码可以从什么地方得到?……开发者:谁来管理收费项目代码?客户:嗯,必要的时候由我(业务经理)来添加这个代码。
而每个经理总会告诉他的下属应该填写什么。
……Employee Administrativ e User。