第3章 用例和用例图-2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十二周
IT运维/运维即服务; 面向方面的程序设计; DevOps 面向服务架构/Web服务 5月12日 5月15日 工作流; 云计算 5月19日 数据挖掘; 业务流程管理 5月26日 大数据; 自主计算 5月22日 虚拟化技术 5月29日 物联网/车联网; Hadoop 5月24日
第十三周
wenku.baidu.com
第十四周
3.4.2 包含关系
什么时候使用包含关系? 1.多个用例用到同一部分的行为,则可以 把这部分行为单独抽象为一个用例,然后 让其他用例来包含这一用例。
<<include>>
Add to Wish List
<<include>>
Customer
Login
Checkout
3.4.2 包含关系
什么时候使用包含关系? 2.某个用例的功能过多、事件流过于复杂 时也可以把某一段事件流抽象为一个被包 含的用例,以达到简化描述的目的。
补课时间
第14周 周五 第3、4节 文理楼109 第15周 周五 第5、6节 文理楼109 第16周 周四 第7、8节 西环303 第16周 周五 第5、6、9、10节 西环303
Topics for mini-talk
周一 第十一周 智慧城市; Google产品 5月5日 周四 敏捷开发; 社交网络 5月8日 周六 XP(极限编程); Scrum敏捷开发 5月10日
参与者、用例间的关系类型
□ 下表是参与者、用例之间关系的总结
3.4 UML中几个概念的区别和联系
□ 关系:模型元素之间的语义联系,包括关联、 泛化、依赖 □ 关联:两个或多个类元(参与者、类、用例、组件等) 之间的关系。描述了类元的实例之间的联系 □ 泛化:特殊和一般的关系 □ 依赖:例如包含关系和扩展关系 目标元素: 被依赖的元素 改变 源 元素: 依赖元素 相应的改变
3.4.3 扩展关系
在一定条件下,把新的行为加入到已有的 用例中,获得的新用例叫扩展用例,原有 的用例叫基本用例。 扩展用例的规则限制
基本用例必须声明若干“扩展点”(extension point),而扩展用例只能在这些扩展点上增加新的 行为和含义。
<<extend>>
扩展用例
基本用例
练习-画出CarMatch系统的用例图
Mick Perez: 所以你是说汽车共享者可以通过电话让公司某个人帮自己在 系统中输入自己的信息并注册. Janet Hoffner: 是的。加盟商或是公司员工可以接听电话并往系统里输 入客户信息。 MP: 你这里说的公司员工都有谁? JH: 嗯。。实际是有两个管理员,其中一个是接待员和一个是组长。他们 都负责日常管理系统。 MP: 要输入什么信息呢 JH: 哦,客户名字、地址和想分享的具体行程,以及他们的喜好比如说不 吸烟者。 MP: 这是唯一的方法把汽车共享者信息输入系统吗? JH: 不是,还可以从全国性的web server上传客户信息。 MP: 这些信息将如何被使用呢? JH: 两种方式。一种是用来匹配可能的汽车共享者。另一种是用来给加盟 商生成管理报告显示每周注册情况,是否来自电话还是web server,并 按地区分类。
3.4.3 扩展关系
□ 包含用例和扩展用例的区别
Buy Merchandise Customer
<<include>> <<extend>>
Browse Web Site
Add Order to Warehouse System
3.4.3 扩展关系
□ 包含用例和扩展用例的区别
基本用例的执行并不一定会涉及扩展用例,扩 展用例只是在满足一定条件下才会被执行。在 包含关系中,当基本用例被执行时,被包含用 例一定会被执行。 即使没有扩展用例,扩展关系中的基本用例本 身就是完整的。包含关系中,基本用例在没有 被包含用例的情况下可能是不完整存在的。
3.4.2 包含关系
包含关系的优势
提高了用例模型的可维护性,当需要对公共 需求进行修改时,只需要修改一个用例而不 必要修改所有与其相关的用例 可以避免在多个用例中重复描述同一段行为 ,还可以避免在多个用例中对同一部分行为 描述不一致
讨论: 用例的泛化关系和包含关系
泛化关系中所有子用例都有相似的目的和结构,它们 是整体上的相似。 包含关系中,基本用例在目的上可以完全不相同,但 它们都有一段相似的行为。它们的相似是部分的相似 不是整体的相似。
练习
3.4 用例间的关系
□ 用例之间的关系包括:
① 泛化关系(generalization) ② 包含关系(include) ③ 扩展关系(extend)
3.4.1 泛化关系
□ 泛化(generalization)代表一般与特殊的 关系。 ■ 在泛化关系中,子用例继承了父用例的行 为和含义,子用例也可以增加新的行为和含 义或覆盖父用例中的行为和含义。
3.4.2 包含关系
□包含(include)关系指的是两个用例之间的关
系,其中一个用例(称作基本用例,base use case)的行为包含了另一个用例(称作被包含 用例,included use case)的行为。
<<include>>
Base Use Case
Included Use Case
练习
某学校信息系统中,管理员可以查询教师和查询 学生。请把查询教师和查询学生泛化出一个基 本用例并画出用例图。
练习
查询教师 查询用户
管理员
查询学生
练习
某在线购物系统中,客户购买商品时可以选择一 次性付款、分期付款或货到付款。 请把一次性付款、分期付款和货到付款泛化为一 个基本用例并画出用例图。
3.4.3 扩展关系
<<extend>>
租车用户
还车
交纳罚金
3.4.3 扩展关系
一个基本用例可以有一个或多个扩展用例, 这些扩展用例可以一起使用。 基本用例不必知道扩展用例的任何细节, 它仅为其提供扩展点。 基本用例没有扩展也是完整的。基本用例 的执行不会涉及到扩展用例。只有特定条 件满足后扩展用例才被执行。 扩展关系为处理异常或构建灵活系统框架 提供了一种有效方法。
泛化关系类似于继承,把子用例中的共性抽象成一个 父用例,子用例继承父用例的基础上可以进行修改。 子用例和子用例之间是相互独立的,任何一个子用例 执行不受其他子用例的影响。 包含关系把多个基本用例中的共性抽象为一个被包含 用例,被包含用例就是基本用例的一部分,基本用例 的执行必然引起被包含用例的执行。
回顾
参与者
指系统以外的,需要使用系统或与系统交互的实体 (人、设备、外部系统) 是一种角色,而不是具体的人、设备和外部系统。 某人可能有多个角色 参与者之间有泛化关系:可以减少用例图中关联个 数,简化用例模型,从而便于理解
脚本
用例执行过程中发生的事件流的形式化描述,用来 显示用例中的某种特殊情况,是用例的实例,使用 具体的文字描述来表示
练习
□ 空间入侵者小游戏的用例和参与者有哪些? 画出用例图.
练习
参考答案: 参与者: player 用例
move left move right fire laser view high scores pause game
Move Left
Move Right
Fire Laser Player
<<include>>
练习
一次性付款
客户
支付费用
分期付款
货到付款
练习
订单系统。试着在以下用例图中使用扩展关系创 建新的用例图。
查订单 客户 取消订单
练习
<<extend>>
客户
查订单
取消订单
练习
制造销售系统中,销售人员可以管理客户产 品订单和退回次品。请将这两个用例泛化为 一个基本用例。画出用例图。
练习
Take customer order Handle customer request Return faulty goods
View High Scores
Pause Game
练习
CarMatch是给住址或工作地址相近的人提供租车分享服务 的加盟公司。 这里是一段CarMatch公司主管Janet Hoffner和某IT公司系统分析师Mick Perez之间的对话。
练习-画出CarMatch系统的用例图
Mick Perez: 所以你是说汽车共享者可以通过电话让公司某个人帮自己在 系统中输入自己的信息并注册. Janet Hoffner: 是的。加盟商或是公司员工可以接听电话并往系统里输 入客户信息。 MP: 你这里说的公司员工都有谁? JH: 嗯。。实际是有两个管理员,其中一个是接待员和一个是组长。他们 都负责日常管理系统。 MP: 要输入什么信息呢 JH: 哦,客户名字、地址和想分享的具体行程,以及他们的喜好比如说不 吸烟者。 MP: 这是唯一的方法把汽车共享者信息输入系统吗? JH: 不是,还可以从全国性的web server上传客户信息。 MP: 这些信息将如何被使用呢? JH: 两种方式。一种是用来匹配可能的汽车共享者。另一种是用来给加盟 商生成管理报告显示每周注册情况,是否来自电话还是web server,并 按地区分类。
Sales assistant
练习
在线机票预定系统里,用户可以查询航班时间和 预定航班。当用户查询航班和预定航班时,用 户可以检查是否有空座。画出用例图。
练习
<<include>>
Search flight Check seat availability Customer Book flight
第3章 用例和用例图
回顾
用例图
显示一组用例、参与者以及他们之间关系的图
UML建模
静态建模:类图、对象图、构件图和部署图 动态建模:用例图、顺序图、协作图、状态图和活 动图
回顾
用例
对一个活动者使用系统的一项功能时所进行的交互 过程的一个文字描述序列 描述的是功能需求 椭圆表示,动宾或主谓结构命名 代表系统中各个项目相关人员之间就系统的行为所 达成的契约,软件开发过程是用例驱动的 与实现无关,可以用协作来说明对用例的实现
父用例
子用例
3.4.1 泛化关系
Validate User
订票
电话订票
网上订票
Retinal Scan
Check Password
□ 什么时候使用泛化关系?
当发现系统中有两个或者多个用例在行为、结构、目 的方面存在共性时就可以使用泛化关系。可以用新的 用例(通常是抽象的)来描述共有部分,这个新用例 就是父用例。
相关文档
最新文档