面向对象分析设计

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

3.4 用例
用例之间的关系
1 关联关系(Association) 2 包含关系(Include) 3 扩展关系(Extend) 4 泛化关系(Generalization)
3.5 用例之间的关系
关联关系(Association)
表示参与者与用例之间进行通信。 不同的参与者可以访问相同的用例
扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上。 基础用例即使没有扩展用例也是完整的,不同于包含关系
3.5 用例之间的关系
一般情况下,基础用例的执行不会涉及到扩展用例,只有特定的 条件发生,扩展用例才被执行
扩展关系为处理异常或构建灵活的系统架构提供了十分有效的方 法
考虑汽车租赁系统中还车,如果客户逾期未还车、或还车时车有 损坏,则客户则需交纳罚金
设计交纳罚金用例扩展还车用例,如果一切顺利,则执行”还车” 用例即可,如果超期或车有损坏才执行”交纳罚金”用例
还车
<<extend>>
源自文库
缴纳罚金
3.5 用例之间的关系
2.3模型元素 2.4通用机制
2. UML构成
2.1 视图
单一的图形不可能包含系统所学的所有信息,更不可能 描述系统的整体结构,所以系统通常是从多个不同的方 面来描述的,分别对应UML的几种视图:
用例视图--从使用者角度描述系统功能 逻辑视图—描述系统内部如何实现 组件视图—描述系统有哪些组件/模块构成 并发视图—描述系统内部的通信与并发问题 配置视图—描述系统软硬件的配置与位置关系
3.3 参与者
确定参与者
在编写用例之前首先要确定系统的参与者,设计人员可 以通过回答以下问题来寻找系统的参与者:
谁将使用该系统的主要功能 谁将需要该系统的支持已完成工作 谁将需要维护、管理该系统 系统需要处理哪些硬件设备 哪些系统会与该系统交互 谁或什么系统对本系统的产生的结果感兴趣
态模型在状态图、时序图、协作图以及活动图中 进行描述。
(3)并发视图
用途:考虑资源的有效利用、代码的并行执行以 及系统环境中异步事件的处理。
使用者:主要是开发人员和系统集成人员。 组成:状态图、协作图和活动图。
(4) 组件视图
用途:描述系统的实现模块以及它们之间的依赖 关系。
组成:组件图。 使用者:主要是开发人员。
3.1 用例图概述
Jacobson 对用例的定义
“对话中的参与者所执行的交 互的动作序列,系统为参与者 提供了一些可测量值。”
用例的简单解释
“系统的一组使用场景, 每个场景描述了一个系统 执行的动作序列。执行动 作序列,产生特定参与者 可看得见的结果值 。”
3.1 用例图概述
用例图是需求分析的第一步,它描述用户如何使 用一个系统,它显示谁将使用系统,用户希望系 统提供什么服务
3.4 用例
用例与事件流
用例分析处于需求分析阶段,应尽量避免考虑系统的实现 问题,但要实现系统,需要为用例逻辑流程添加更详细的 描述,可通过建立事件流文档 事件流包含对用例的: 简要说明 前提条件--如必须先执行的用例,执行该用例的权限 主要事件流和其他事件流--用例的执行过程 事后条件--如完成后要执行哪个用例
借阅者
浏览书籍
预定图书
<<use>>
查询借阅书籍
<<use>>
登录
借阅书籍
归还书籍
<<extend>>
赔偿
3.6.4 图书管理员
图书管理员
删除预定
<<use>>
借书登记
<<include>>
检验合法性
还书登记
<<include>>
收取罚金
3.6.4 系统管理员
添加借阅者
修改借阅者信息
删除借阅者
系统管理员
3.5 用例之间的关系
包含关系使一个用例的功能可以在另一用例中使 用,如:
如果两个用例有大量一致的功能,则可以将这些功能 分解到另一用例中
一个用例的功能太多,可以用包含关系建模两个用例
网上预订
<<i n cl u d e >>
填写电子表格
3.5 用例之间的关系
扩展关系(Extend)
泛化关系(Generalizationn)
泛化关系中,用例之间是父子关系,子用例是父用例 的特殊形式,子用例继承父用例的行为和属性
如果系统中一个用例是另一用例的特殊化时,是用泛 化关系
泛化关系的表示:
3.5 用例之间的关系
泛化关系举例:
预定
电话预订
网上预订
3.6 图书馆管理系统用例图
用例图包含6种元素:
参与者(Actor)、用例(Use Case)、关联关系(Association)、包含 关系(Include)、扩展关系(Extend)、泛化关系(Generalization)
3.2 用例图建模技术
确定系统边界
首先必须应用程序的准确范围,确定系统包含哪些功能、忽略 哪些功能。通过系统边界把系统看成是一个和外界交互的黑盒
面向对象=对象+类+继承+通信
1.2 建模(Modeling)
“一图胜过千言万语” 模型的实质:对现实的简化。
1.3 建模(Modeling)
模型提供系统的蓝图,包含对系统的总体设计和细节的设 计,模型包括重要的因素,而忽略不相干的细节,每个系 统可以从不同的方面使用不同的模型进行描述,因此每个 模型都是对系统从语义上的近似的抽象。模型可以是结构 的、侧重于系统组织的,也可以是行为的、侧重于系统的 动作。
举例,汽车租赁系统中, 参 与者“客户”与其交互的用例
客户
预定 取车 还车
3.5 用例之间的关系
包含关系(Include)
客户用例可以简单地包含提供者用例具有的行为,并 把它所包含的用例行为作为自身行为的一部分。
包含关系也可以理解为一个用例基承了另一用例的行 为
包含关系用虚线剪头加《include》字样,箭头指向被 包含用例
读者:
① 借书 ② 还书 ③ 书籍预定
图书馆管理员:
① 书籍借出处理 ② 书籍归还处理 ③ 预定信息处理
系统管理员:
① 增加书目 ② 删除或更新书目 ③ 增加书籍 ④ 减少书籍 ⑤ 增加读者帐户信息 ⑥ 删除或更新读者帐户信
息 ⑦ 书籍信息查询
⑧ 读者信息查询
3.6.4 借阅者请求服务
3.3 参与者
参与者之间的关系
参与这之间可能存在共同的行为,可以用泛化关系来 表示参与者之间的关系
假设一个汽车租赁系统,接受客户的电话预订和网上 预订
3.4 用例
用例:外部可见的系统功能单元,以及这些功能 单元之间的关系
如何识别用例:
特定参与者希望系统提供什么功能 系统是否存储和检索信息,如果是,哪个参与者触发 当系统改变状态时,是否通知参与者 是否存在影响系统的外部事件 哪个参与者通知系统这些事件
添加书目 删除书目
录入图书 修改图书信息 删除图书
3.6.5 绘制用例图的步骤
PowerDesigner创建用例图
New Object Oriented Model New Use Case Diagram
还时有损坏则要交纳罚金,还可以处理预订信息 系统管理员可以管理书目、书籍,维护读者信息
3.6.2 确定系统的参与者
首先分析系统所涉及的问题领域和系统运行的 主要任务:
① 分析使用该系统主要功能部分的是哪些人。 ② 谁将需要该系统的支持以完成其工作。 ③ 系统的管理者与维护者。
3.6.3 确定系统用例
状态改变的事件 时序图—描述对象之间发送消息的时间顺序 协作图—描述对象之间协作关系 活动图—描述执行过程中涉及的活动及状态变化 组件图—描述系统组件之间的关系 配置图—描述系统的硬件及软件的物理结构
3. 用例图
3.1 用例图概述 3.2 用例建模技术 3.3 参与者 3.4 用例 3.5 用例之间的关系(★★★★★) 3.6 图书馆管理系统用例图
模型的实质:对现实的简化。 建模的目标 :
便于展现系统。 允许指定系统的结构或行为。 提供构造系统的模板。 记录决策
建模的使用是软件成功的一个基本因素。
1.4 面向对象分析设计(OOAD)
面向对象分析设计是指依照用户所理解的真实世界中的对 象和概念,发现和分析对象的内部构成和外部关系,为软 件需求建造准确而简洁的模型,以使用户需求逐步精化、 一致化、完全化的分析过程
2.1 视图 用例视图 逻辑视图 组件视图 并发视图 配置视图
2.2 UML图 用例图(Use Case Diagram) 类图(Class Diagram) 对象图(Object Diagram) 状态图(State Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图(Activity Diagram) 组件图(Component Diagram) 配置图(Deployment Diagram)
(5) 配置视图
用途:显示系统的物理部署,并描述位于节点实 例上的运行组件实例的部署情况。
组成:配置图。 使用者:开发人员、系统集成人员和测试人员。
2.2 UML图
用例图—描述系统的参与者与用例之间的关系 类图—描述系统中的概念及它们之间的关系 对象图—描述系统中实例及它们之间关系 状态图—描述系统中对象所具备的状态,及触发
3.6.1 确定系统需求 3.6.2 确定系统的参与者 3.6.3 确定系统的用例 3.6.4 图书馆管理系统的用例图 3.6.5 演示绘制用例图
3.6.1 确定系统需求
图书馆管理系统是对书籍的管理、借阅及对读者 信息统一管理的系统,具体包括:
读者可以浏览图书,预订图书,借书,还书, 图书管理员可以做图书借出登记,归还登记,如果归
购买
下订单
订单
订单项
1.5 什么是建模语言
建模语言提供从各个方面描述软件系统的概念和 符号。上世纪九十年代初已经出现了一些建模语 言,但缺乏对系统建模的统一的建模描述语言, 使得用户建立的模型难以看懂。直到1996年,多 个建模专家一起发布了UML0.9,成为后来一直被 广泛使用
2 UML介绍
1. 面向对象程序设计
1.1 面向对象程序设计(OOP) 1.2 建模(Modeling) 1.3 面向对象分析设计(OOAD) 1.4 什么是建模语言
1.1 面向对象程序设计(OOP)
面向对象程序设计使用对象、类、继承、封装等 一些核心元素进行程序设计
客观实体与实体之间的联系构成了现实世界的所 有问题,面向对象技术通过将客观实体抽象成对 象的方法,尽可能地利用人类自然的思维方式构 造软件系统。
面向对象分析与UML
主讲:孔维锋
课程目标
面向对象程序设计 UML介绍
视图(View) UML图 模型元素 通用机制
用例图(Use Case Diagram) 类图(Class Diagram)、对象图(Object Diagram)、包
(Package Diagram) 状态图(State Diagram) 活动图(Activity Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram)
(1) 用例视图
用途:描述系统应该具备的功能,即被称为参与 者的外部用户所能观察到的功能。
用例视图是几个视图的核心,它的内容直接驱动 其他视图的开发。
(2) 逻辑视图
用途:描述用例视图中提出的系统功能的实现。 逻辑视图既描述系统的静态结构,也描述系统内
部的动态协作关系。 使用者:主要是设计人员和开发人员。 组成:静态结构在类图和对象图中进行描述;动
寻找参与者
确定边界后就要确定与系统直接交互的外部对象,
寻找用例
对于每个参与者,列举参与者是用系统的功能
3.3 参与者
参与者是系统外部的实体,以某种方式参与用例 的执行过程。参与者通过向系统输入或请求系统 输入某些事件来触发系统的执行
参与者可能是:
系统用户(人) 其他系统 自动运行的线程
相关文档
最新文档