《软件工程实用教程》第5 章 面向对象的需求分析.ppt_第1页
《软件工程实用教程》第5 章 面向对象的需求分析.ppt_第2页
《软件工程实用教程》第5 章 面向对象的需求分析.ppt_第3页
《软件工程实用教程》第5 章 面向对象的需求分析.ppt_第4页
《软件工程实用教程》第5 章 面向对象的需求分析.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章面向对象的需求分析 本章学习内容 1 理解面向对象方法的基本概念2 了解面向对象方法的特点与优点3 初步掌握面向对象分析的各种模型及视图4 掌握面向对象需求分析的过程与步骤 第5章面向对象的需求分析 5 1面向对象方法学概述5 1 1面向对象技术的由来1986年Booch提出的面向对象分析与设计方法论 OOA OOD 1991年Rumbaugh提出的面向对象模型技术 OMT 1994年Jacobson提出的面向对象软件工程方法学 OOSE Booch OMT和Jacobson将他们各自的对象建模方法结合到一起 提出了统一的建模语言UML UnifiedModelingLanguage 第5章面向对象的需求分析 5 1 2面向对象方法概述主要特点 从问题域中客观存在的事物出发来构造软件系统 用对象作为对这些事物的抽象表示 并以此作为系统的基本构成单位 事物的静态特征 即可以用一些数据来表达的特征 用对象的属性来表示 事物的动态特征 即事物的行为 用对象的操作来表示 对象的属性与操作结合为一体 成为一个独立的实体 对外屏蔽其内部细节 称为封装 对事物进行分类 把具有相同属性和相同操作的对象归为一类 类是这些对象的抽象描述 每个对象是它的类的一个实例 第5章面向对象的需求分析 通过在不同程度上运用抽象原则 忽略事物之间的一些差异 可以得到较一般的类和较特殊的类 特殊类继承一般类的属性和操作 面向对象方法支持这种继承关系的描述与实现 从而简化系统的构造过程及其文档 复杂对象可以用简单的对象作为其构成部分 称为聚合 对象之间通过消息进行通信 以实现对象之间的动态联系 通过关联表达对象之间的静态关系 第5章面向对象的需求分析 5 1 3面向对象方法的优点与人们习惯的思维方法一致可使软件系统结构更加稳定软件具有更好的可复用性软件更加便于维护与扩充 第5章面向对象的需求分析 5 1 4面向对象建模用例模型 包含所有用例及其与用户之间的关系 对象模型 包含问题域涉及的类及其属性和关系 其作用是更详细地提炼用例 将系统的行为初步分配给提供行为的一组对象 设计模型 将系统的静态结构定义为子系统 类和接口 并定义由子系统 类和接口之间的协作来实现的用例 实现模型 包含构件和类到构件的映射 配置模型 定义计算机的物理节点和构件到这些节点的映射 测试模型 描述用于验证用例的测试用例 第5章面向对象的需求分析 5 2面向对象的基本概念5 2 1类和对象1 对象是指问题域中某些事物的一个抽象 它反映该事物在系统中需要保存的信息和发挥的作用 它是由数据 属性 及其上的操作 也称为服务 方法或行为 组成的封装体 第5章面向对象的需求分析 可以从以下4个方面来认识对象 1 从动态的观点看 对象的操作就是对象的行为 2 从存储角度看 对象是私有存储 其中有数据也有操作 其他对象的方法不能直接操纵该对象的私有数据 只有对象私有的方法才可操纵它 3 从实现机制看 对象是一个自动机 其中私有数据表示了对象的状态 该状态只能由私有的方法改变它 4 在面向对象的程序设计中 对象是系统中的基本运行实体 第5章面向对象的需求分析 2 类是指具有相同属性和操作的对象的集合 它代表一种抽象 作为具有类似特性与共同行为的对象的模板 可用来产生对象 例如 汽车具有运输功能 它是由车轮 发动机 车身等部分组成 这个描述适合所有的汽车 3 实例类是建立对象时使用的 样板 按照这个样板所建立起来的一个个具体的对象 就是类的实例 第5章面向对象的需求分析 5 2 2封装 继承和多态1 封装封装是指把对象的外部特征与内部实现细节分开 使得一个对象的外部特征对其它对象来说是可访问的 而它的内部细节对其它对象是隐蔽的 对象具有封装性的条件如下 1 有一个清楚的边界 所有私有数据和操作的代码都被封装在这个边界内 从外面看不见更不能访问 2 有确定的接口 这些接口描述这个对象和其他的对象之间相互的作用 3 受保护的内部实现 这个实现给出了由软件对象提供的功能的细节 实现细节能在定义这个对象的类的外面访问 第5章面向对象的需求分析 2 继承继承是子类自动地共享基类中定义的数据和方法的机制 继承刻画了一般性和特殊性继承也体现了类的层次关系 第5章面向对象的需求分析 3 多态性是指在一般类中定义的属性或操作被特殊类继承之后 可以具有不同的数据类型或表现出不同的行为 多态性的作用在于它允许我们开发灵活的系统 我们只要指定什么应该发生 而不是它应该怎样发生 以便获得一个易修改 易变更的系统 第5章面向对象的需求分析 4 消息消息是面向对象系统中实现对象间的通信和请求任务的操作 5 关联泛化关系 主要表现继承机制 聚合关系 对象间的由分解或组成所构成的关系 关联关系表示两个类之间除泛化 聚合以外的 存在某种语义上的联系 第5章面向对象的需求分析 5 2 3面向对象的分析概述获取用户需求标识对象和类定义类的结构和层次建立对象模型建立动态模型 第5章面向对象的需求分析 5 3用例模型5 3 1执行者执行者是指与系统交互的人或其他系统 它代表外部实体 第5章面向对象的需求分析 5 3 2用例用例是可以被执行者感受到的 系统的一个完整的功能 在UML中把用例定义成系统完成的一系列动作序列 动作的结果能够被特定的执行者察觉到 用例具有下述特征 用例代表某些用户可见的功能 实现一个具体的用户目标 用例总是被执行者启动 并向执行者提供可识别的值 用例可大可小 但它必须是完整的 用例在以后开发过程中 可以进行独立的功能检测 第5章面向对象的需求分析 用例描述 用例名称 取款前置条件 ATM机正常工作主事件流 1 客户将卡插入ATM机 开始用例 2 ATM显示欢迎消息并提示客户输入密码 3 客户输入密码 4 ATM确认密码有效 如果无效则执行子事件流a 如果与主机联接有问题 则执行异常事件流e 5 ATM提供以下选项 存钱 取钱 查询 6 用户选择取钱选项 7 ATM提示输入所取金额 8 用户输入所取金额 9 ATM确定该帐户是否有足够的金额 如果余额不够 则执行子事件流b 如果与主机联接有问题 则执行异常事件流e 第5章面向对象的需求分析 10 ATM从客户帐户中减去所取金额 11 ATM向客户提供要取的钱 12 ATM打印清单 ATM退出客户的卡 用例结束 子事件流a a1 提示用户输入无效密码 请求再次输入 a2 如果三次输入无效密码 系统自动关闭 退出客户银行卡 子事件流b b1 提示用户余额不够 b2 返回 5 等待客户重新选择 后置条件 结束取款事件 第5章面向对象的需求分析 5 3 3用例之间的关系1 扩展关系2 包含关系 第5章面向对象的需求分析 5 3 4用例建模从几方面识别系统的执行者 包括需要从系统中得到服务的人 设备 其他软件系统等 分析系统的业务边界或系统执行者对于系统的基本业务需求 可以将其作为系统的基本用例 分析基本用例 将基本用例中具有一定独立性的功能 特别是具有公共行为特征的功能分解出来 将其作为新的用例供基本用例使用 分析基本用例功能以外的其他功能 将其作为新的用例供基本用例进行功能扩展 分析并建立执行者与用例之间的通信关系 第5章面向对象的需求分析 5 4对象模型5 4 1类图名称 用来区别其他的类 类名可以是一个字符串 也可以是包含路径的名字 属性 属性用来描述该类的对象所具有的特征 操作 操作描述对数据的具体处理方法 第5章面向对象的需求分析 5 4 2识别类与对象1 找出侯选的类与对象 1 名词识别法例 顾客带着所要购买的商品到达营业厅的一个销售点终端 终端设在门口附近 销售点终端负责接收数据 显示数据和打印购物单 出纳员与销售点终端交互 通过销售点终端录入每项商品的通用产品代码 如果出现多个同类商品 出纳还要录入该商品的数量 系统确定商品的价格 并将商品代码 数量信息加入到正在运行的系统 系统显示当前商品的描述信息和价格 候选对象 顾客 商品 销售点终端 购物单 出纳员 第5章面向对象的需求分析 2 系统实体识别方法可感知的物理实体 例如汽车 书 信用卡 人或组织的角色 例如 学生 教师 经理 管理员 供应处 应该记忆的事件 例如取款 飞行 订购 两个或多个对象的相互作用 例如购买 结婚 需要说明的概念 例如保险政策 业务规则 第5章面向对象的需求分析 2 筛选出正确的类与对象 1 冗余 2 无关 3 笼统 4 属性 5 操作 6 实现 第5章面向对象的需求分析 5 4 3识别属性1 分析2 确定属性注意以下问题 1 误把对象当作属性 2 误把关联类的属性当作对象的属性 3 误把内部状态当成属性 4 过于细化 5 存在不一致的属性 6 属性不能包含一个内部结构 7 属性在任何时候只能有一个在其允许范围内的确切的值 第5章面向对象的需求分析 5 4 4识别操作有哪些类会与该类交互 包括该类本身 所有与该类具有交互行为的会发送哪些消息给该类 该类又会发送哪些消息给这些类 该类如何响应别的类发送来的消息 在发送消息出去之前 该类需要做何处理 从该类本身来说 它应该有哪些操作来维持其信息的更新 一致性和完整性 系统是否要求该类具有另外的一些职责 第5章面向对象的需求分析 5 4 5识别关联关联用于描述类与类之间的连接关联名称 用于标记关联关联角色 用于反映类在这一关联关系中扮演了什么角色 如果在关联上没有标出角色名 则隐含地用类的名称作为角色名 关联导向性 是指关联关系只在指定方向上成立 可以使用一个指向符号表示 第5章面向对象的需求分析 5 4 5识别关联例 消费者 以 顾客 的角色参与 提交定单 的关联 第5章面向对象的需求分析 关联的多重性 表示是由类产生的对象之间存在的数量关系 主要有以下几种 1 1或1表示1个对象0 1表示0到1个对象0 或 表示0到多个对象1 表示1到多个对象 第5章面向对象的需求分析 1 关联类关联有可能具有自己的属性或操作 对此需要引入一个关联类来进行记录 这时 关联关系中的每个连接与关联类的一个对象相联系 关联类通过一条虚线与关联连接 第5章面向对象的需求分析 2 聚合聚合是一种特殊形式的关联 聚合表示类之间的关系是整体与部分的关系 一般聚合关系共享聚合组成 第5章面向对象的需求分析 3 泛化类之间的泛化关系也就是类的继承关系 第5章面向对象的需求分析 4 依赖依赖关系用来描述两个类之间存在的与依赖有关的语义上的连接 其中一个模型元素是独立的 另一个模型元素不是独立的 它依赖于独立的模型元素 需要由独立元素提供服务 如果独立模型改变了 将影响依赖于它的模型元素 第5章面向对象的需求分析 2 识别关联直接提取动词短语得出的关联需求陈述中隐含的关联根据问题域知识得出关联 第5章面向对象的需求分析 5 4 6建立静态模型建模步骤 从几方面识别系统的实体对象和类 分析每个对象的主要属性和操作 达到对类的完整认识的目的 识别类之间的结构 包括泛化 聚合 组成等 识别对象 类之间的关系 修改 补充对象与类 绘制类图 对重点类加以文本描述和说明 第5章面向对象的需求分析 5 5建立动态模型5 5 1消息类型简单消息 表示简单的控制流 用于描述控制如何在对象间进行传递 而不考虑通信细节 同步消息 表示嵌套的控制流 操作的调用是一种典型的同步消息 调用者发出消息后必须等待消息返回 只有当处理消息的操作执行完毕后 调用者才可能继续执行自己的操作 异步消息 表示异步控制流 当调用者发出消息后不用等待消息的返回即可继续执行自己的操作 异步消息主要用于描述实时系统中的并发行为 同步且立即返回消息 这是同步消息和简单消息的叠加 也就是操作调用一旦完成就立即返回 第5章面向对象的需求分析 5 5 2状态图1 状态和转移状态是一种存在状况 它具有一定的时间稳定性 即在一段有限时间内保持对象 或系统 的外在情况和内在特性的相对稳定 状态图提供了对象在其生命周期中可能出现的状态及其行为的描述 一个状态图包括一系列状态 事件以及状态之间的转换 其作用是能够为类图中每一个类进行动态行为说明 以获得对类的方法的细节描述的建模支持 第5章面向对象的需求分析 例 第5章面向对象的需求分析 第5章面向对象的需求分析 转移是两个状态之间的关系 一个转移由五部分组成 源状态 即受转移影响的状态 如果一个对象处于源状态 当该对象接收到转移的触发事件时或满足监护条件时 就会激活状态 事件触发 源状态中的对象接收这个事件使转移合法地激活 并使监护条件满足 监护条件 是一个布尔表达式 当转移因事件触发器的接收而被触发时对这个布尔表达式求值 如果表达式为真 则激活转移 如果为假 则不激活转移 如果没有其他的转移被此事件触发 则时间丢失 动作 是一个可执行的原子计算 它可以直接作用于对象 目标状态 转移完成后对象的状态 第5章面向对象的需求分析 2 事件事件指的是发生的且引起某些动作执行的事情 UML定义了4种可能的事件 条件变为真事件 如监护条件变为真值 来自其他对象的明确信号 也可称为消息 这种信号本身就失一个对象 来自其他对象的服务请求 操作调用 定时事件 第5章面向对象的需求分析 例如 当你按下CD机上的 Play 按钮时 CD机开始播放 在此例中 按下Play按钮 就是事件 而事件引起的动作是 开始播放 当事件和动作之间正在存在着某种联系时 我们将这种关系称为 因果关系 这种事件称为状态转移事件 第5章面向对象的需求分析 3 子状态 第5章面向对象的需求分析 4 识别状态空间 1 识别对象在问题域中的生命周期 2 确定对象生命周期阶段划分策略 3 重新按阶段描述对象生命周期 得到候选状态 4 识别对象在每个候选状态下的动作 并对状态空间进行调整 5 分析每个状态的确定因素 对象的数据属性 6 检查对象状态的确定性和状态间的互斥性5 识别状态转移 第5章面向对象的需求分析 5 5 3交互图1 顺序图顺序图着重表现对象间消息传递的时间顺序顺序图在平面上可分成两维 一维处于水平方向表示对象个体 另一维处于垂直方向表示对象的生存期 因而可以看成是时间轴 第5章面向对象的需求分析 2 协作图协作图用于描述相互合作的对象间的交互关系和链接关系 第5章面向对象的需求分析 3 交互模型的识别 1 列出用例相关的所有对象类 2 根据用例活动确定对象间的消息通讯 3 定义对象间的消息连接和消息格式 4 确定消息发生的时间顺序 5 画出交互模型 第5章面向对象的需求分析 5 5 4活动图活动图是状态图的一个变种 它着重描述操作实现中所完成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论