




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8面向对象的分析面向对象的分析 OOA 方法是相当于软件开发过程中的问题定义和需求分析阶段 它是用面向对象的概念和方法为软件需求建造模型 分析的过程是提取和确定系统需求的过程 面向对象分析的需求规格说明主要包括三种模型 对象模型 动态模型和功能模型 在面向对象方法中 类 对象和事物等概念之间的关系如图所示 1 面向对象分析过程 1 分析过程概述分析过程就是提取系统的需求的过程 是指为了满足用户的需求 系统必须 做什么 而不是 怎么做 系统如何实现 系统分析通常是从一个需求文档 陈述 和用户一系列的讨论开始的 一般来说 由用户 领域专家 系统的开发者以及其他有关人员参加制定需求文档 首先 系统分析员要对需求文档进行分析 需求文档通常是不完整 不准确的 也可能还是非正式的 通过分析可以发现和改正需求文档中的歧义性 不一致性 剔除冗余的内容 挖掘潜在的内容 弥补不足 从而使需求文档更完整 更准确 快速地建立一个原型系统 通过在计算机上运行原型系统 使得分析员和用户尽快交流和相互理解 从而能更正确地 更完整地提取和确定用户的需求 然后 是需求建模 系统分析员根据提取的用户需求 深入理解用户需求 识别出问题域内的对象 并分析它们相互之间的关系 抽象出目标系统应该完成的需求任务 并用OOA模型准确地表示出来 即用面向对象观点建立对象模型 动态模型和功能模型 最后 是需求评审 通过用户 领域专家 系统分析员和系统设计人员的评审 并进行反复修改后 确定需求规格说明 2 面向对象分析的三个模型与五个层次面向对象分析的三个模型 面向对象分析的模型包括 对象模型 动态模型和功能模型 对象模型描述了系统的静态结构 动态模型描述了系统的交互次序 功能模型描述了系统的数据变换 其中 对象模型是最基础的 最核心的 最重要的 无论解决什么问题 首先要在问题域中提取和定义出对象模型 当问题涉及用户界面与过程控制时 动态模型是重点 如果问题涉及大量数据变换 则功能模型非常重要 对象模型中的操作 即服务 可以出现在动态模型和功能模型内 2 面向对象分析的五个层次面向对象分析由五个主要活动组成 即确定类 对象 识别结构 识别主题 定义属性和定义服务 方法 对于一个复杂问题的面向对象的模型可用五个层次表示 类 对象层 结构层 主题层 属性层和服务层 见图3 3 8 主题 Subject 层 主题给出分析模型的总体概貌 是控制读者在同一时间所能考虑的模型规模的机制 类 对象 Class Object 层 对象是数据及其处理的抽象 它反映了保存有关信息和与现实世界交互的能力 结构 Structure 层 结构表示问题域的复杂性 类 成员结构反映了一般 特殊关系 整体 部分结构反映了整体 部分的关系 属性 Attribute 层 属性是数据元素 用来描述对象或分类结构的实例 可在图中给出并在对象的储存中指定 即给出对象定义的同时 指定属性 服务 Serves 层 服务是接收到消息后必须执行的一些处理 可在图上标明它并在对象的储存中指定 即给出对象定义的同时 定义服务 3 五个层次对应的五个活动五个主要活动可以同时 并行 处理 可以从较高抽象层转移到较低的具体层 然后再返回到较高抽象层继续处理 当系统分析员在确定类 对象的同时 想到该类的服务 则可以先确定服务后 再返回去继续寻找类 对象 没有必要遵循自顶向下 逐步求精的原则 4 面向对象分析流程一般情况下 面向对象分析过程可按照下列流程进行 确定类 对象 识别结构 识别主题 定义属性 建立动态模型 建立功能模型 定义服务 方法 但是 对于大型的 复杂的问题 不可能严格按照上面流程进行 需要反复多次进行寻找 确定 识别 建立和定义来构造模型 2 面向对象建模 1 建模与模型建模是将问题域的解空间定义成一种模型 以帮助系统分析人员更好地理解问题 模型是为了理解问题而对问题所做出的一种抽象 而且是对问题的一种无歧义的描述 模型由一组图示符号和组织这些符号的规则组成 利用它们来定义和描述问题域中的术语和概念 建模的目的主要是为了减少复杂性 2 面向对象模型用面向对象方法开发软件 通常需要建立对象模型 动态模型和功能模型三种模型 对象模型是描述系统数据结构的 动态模型是描述系统控制结构的 功能模型是描述系统功能的 数据 控制和操作等是这三种模型都涉及到的共同概念 只不过是各自描述的侧重点不同罢了 一个典型的软件系统应包含数据结构 对象模型 执行操作 动态模型 和完成数据值的变化 功能模型 3 常用的面向对象分析与设计模型常用的面向对象分析与设计模型有四类 JamesRumbaugh等人的OMT模型 Coad和Yourdon的模型 Booch开发模型 UML统一建模语言 需求分析是软件定义时期的最后一个阶段 它的基本任务是准确地回答 系统必须做什么 这个问题 需求分析的任务是确定系统必须完成哪些工作 也就是对目标系统提出完整 准确 清晰 具体的要求 在需求分析阶段结束之前 系统分析员应该写出软件需求规格说明书 以书面形式准确地描述软件需求 在分析软件需求和书写软件需求规格说明书的过程中 分析员和用户都起着关键的 必不可少的作用 用户必须把他们对软件的需求尽量准确 具体地描述出来 分析员必须通过与用户沟通获取用户对软件的需求 面向对象需求分析 需求分析工作是一个发现和评价的过程 需求分析力图达到下列目标 通过分析信息流程和结构来提供软件开发的基础 通过标识接口细节 提供一个深入的功能说明来描述软件 确定设计约束和定义软件有效性要求 建立和保持与用户的通讯 使上述两个目标能够达到 面向对象需求分析 面向对象需求分析 一 面向对象分析模型的组成结构二 面向对象分析模型描述工具三 面向对象分析的基本过程四 面向对象分析方法五 小结 一 面向对象分析模型的组成结构 数据模型 功能模型 行为模型 2 类 对象图 3 对象关系图 4 对象行为图 1 用例图 二 面向对象分析模型描述工具 一个 用例 可描述软件系统和一个外部角色之间的一次交互 其中角色可以是一个人 另一个软件 一个硬件或其他与系统交互的实体 1 用例图 1 组成符号一幅用例图包含的模型元素有系统 行为者 角色 用例及用例之间的关系 自动售货机系统用例图 用例用一个椭圆形表示 一个用例是可以被行为者感受到的 系统的一个完整的功能 用例具有下述特征 用例代表某些用户可见的功能 实现一个具体的用户目标 用例总是被行为者启动的 并向行为者提供可识别的值 用例必须是完整的 系统系统由一个矩形表示 内部可包含一个或多个用例 代表系统的方框的边线表示系统的边界 用于划定系统的功能范围 定义了系统所具有的功能 描述该系统功能的用例置于方框内 代表外部实体的行为者置于方框外 1 组成符号 行为者也称为角色 用一个线条人表示 行为者是指与系统交互的人或其他系统 它代表外部实体 使用用例并且与系统交互的任何人或物都是行为者 关联行为者和用例之间或用例和用例之间的关系 用直线表示 1 组成符号 2 建立用例图 例 保险商务系统的用例图 3 用例之间的关系用例之间存在两种关系 扩展关系和使用关系 扩展关系向一个用例中添加一些动作后构成了另一个用例 这两个用例之间的关系就是扩展关系 后者继承前者的一些行为 通常把后者称为扩展用例 使用关系当一个用例使用另一个用例时 这两个用例之间就构成了使用关系 一般说来 如果在若干个用例中有某些相同的动作 则可以把这些相同的动作提取出来单独构成一个用例 称为抽象用例 3 用例之间的关系 含扩展和使用关系的用例图 扩展与使用之间的异同 这两种关系都意味着从几个用例中抽取那些公共的行为并放入一个单独的用例中 而这个用例被其他用例使用或扩展 但是 使用和扩展的目的是不同的 通常在描述一般行为的变化时采用扩展关系 在两个或多个用例中出现重复描述又想避免这种重复时 可以采用使用关系 3 用例之间的关系 类图描述类及类与类之间的静态关系 1 类图例 2 类 对象图 类名应该是富于描述性的 简洁的而且无二义性的 为类命名时应该遵守以下几条准则 使用标准术语 应该使用在应用领域中人们习惯的标准术语作为类名 不要随意创造名字 例如 交通信号灯 比 信号单元 这个名字好 传送带 比 零件传送设备 好 使用具有确切含义的名词 尽量使用能表示类的含义的日常用语作名字 不要使用空洞的或含义模糊的词作名字 例如 库房 比 房屋 或 存物场所 更确切 必要时用名词短语作名字 为使名字的含义更准确 必要时用形容词加名词或其他形式的名词短语作名字 例如 最小的领土单元 储藏室 公司员工 等都是比较恰当的名字 1 类图 属性UML描述属性的语法格式如下 可见性属性名 类型名 初值 约束特性 属性的可见性 即可访问性 通常有下述3种 公有的 public 私有的 private 和保护的 protected 分别用加号 减号 和井号 表示 如果未声明可见性 则表示该属性的可见性尚未定义 注意 没有默认的可见性 类型名表示该属性的数据类型 它可以是基本数据类型 也可以是用户自定义的类型 1 类图 服务服务也就是操作 UML描述操作的语法格式如下 可见性操作名 参数表 返回值类型 性质串 操作可见性的定义方法与属性相同 参数表是用逗号分隔的形式参数的序列 描述一个参数的语法如下 参数名 类型名 默认值当操作的调用者未提供实在参数时 该参数就使用默认值 1 类图 2 对象图对象与类具有相同的表示形式 例如 2 类 对象图 描述类与类之间的关系 类关系模型同时也表示出了类之间消息传递的路径 例 3 对象 关系图 类与类之间通常有关联 泛化 继承 依赖和细化等4种关系 1 关联关联表示两个类的对象之间存在某种语义上的联系 例如 作家使用计算机 我们就认为在作家和计算机之间存在某种语义连接 因此 在类图中应该在作家类和计算机类之间建立关联关系 3 对象 关系图 普通关联普通关联是最常见的关联关系 只要在类与类之间存在连接关系就可以用普通关联表示 通常 关联是双向的 可在一个方向上为关联起一个名字 在另一个方向上起另一个名字 也可不起名字 为避免混淆 在名字前面 或后面 加一个表示关联方向的黑三角 在表示关联的直线两端可以写上重数 它表示该类有多少个对象与对方的一个对象连接 重数的表示方法通常有 0 1表示0到1个对象0 或 表示0到多个对象1 或1 表示1到多个对象1 15表示1到15个对象3表示3个对象如果图中未明确标出关联的重数 则默认重数是1 1 关联 关联的角色在任何关联中都会涉及到参与此关联的对象所扮演的角色 即起的作用 在某些情况下显式标明角色名有助于别人理解类图 递归关联一个类与它本身有关联关系 称为递归关联 例如在一个公司中 经理与工人都是公司的员工 都属于员工类 但角色不同 经理管理多个工人 如果没有显式标出角色名 则意味着用类名作为角色名 1 关联 限定关联限定关联通常用在一对多或多对多的关联关系中 可以把模型中的重数从一对多变成一对一 或从多对多简化成多对一 在类图中把限定词放在关联关系末端的一个小方框内 例如 某操作系统中一个目录下有许多文件 一个文件仅属于一个目录 在一个目录内文件名确定了惟一一个文件 利用限定词 文件名 表示了目录与文件之间的关系 可见 利用限定词把一对多关系简化成了一对一关系 1 关联 关联类为了说明关联的性质可能需要一些附加信息 可以引入一个关联类来记录这些信息 关联类也有属性 操作和其他关联 个人 0 授权 0 个人 授权 优先权特权 用户和工作站的授权关联的关联类 1 关联 2 聚集聚集也称为聚合 是关联的特例 聚集表示一类对象与另一类对象之间的关系 是整体与部分的关系 在陈述需求时使用的 包含 组成 分为 部分 等字句 往往意味着存在聚集关系 除了一般聚集之外 还有两种特殊的聚集关系 分别是共享聚集和组合聚集 3 对象 关系图 共享聚集如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成 则该聚集称为共享聚集 例如 一个课题组包含许多成员 每个成员又可以是另一个课题组的成员 则课题组和成员之间是共享聚集关系 一般聚集和共享聚集的图示符号 都是在表示关联关系的直线末端紧挨着整体类的地方画一个空心菱形 2 聚集 组合聚集如果部分类完全隶属于整体类 部分与整体共存 整体不存在了部分也会随之消失 或失去存在价值了 则该聚集称为组合聚集 简称为组成 例如 在屏幕上打开一个窗口 它就由文本框 列表框 按钮和菜单组成 一旦关闭了窗口 各个组成部分也同时消失 窗口和它的组成部分之间存在着组合聚集关系 组成关系用实心菱形表示 2 聚集 泛化关系就是通常所说的继承关系 它是通用类和具体类之间的一种分类关系 具体类完全拥有通用类的信息 并且还可以附加一些其他信息 在UML中 用一端为空心三角形的连线表示泛化关系 三角形的顶角紧挨着通用类 注意 泛化针对类而不针对实例 一个类可以继承另一个类 但一个对象不能继承另一个对象 实际上 泛化关系指出在类与类之间存在 一般 特殊 关系 泛化可进一步划分成普通泛化和受限泛化 3 泛化 4 对象 行为图 对象 行为模型用于描述对象的动态行为 通常由对象状态转换图 事件轨迹图和事件流图等来描述 对象的状态是对象属性的一组值 当发生某个事件后 对象的属性值可能会发生变化 即对象的状态发生变化 对象状态转换图描述对象可能具有的状态以及引起状态变化的事件 另一种描述动态行为的方法是考虑整个系统的状态的转变 描述一个事件如何引起从一个对象到另一个对象的转变的事件轨迹 EventTrace 称为事件轨迹图 它表示了导致行为从对象流向对象的关键对象和事件 在确定事件轨迹后 所有事件可以汇总成输入对象的事件集和从对象输出的事件集 事件流图就是用于标记所有流入和流出某对象的事件 例 打印机对象 行为模型示例 状态转换图表示了打印机的状态转换 图中的每个箭头代表了从对象的一个状态到另一个状态的转变 箭头上标记的是触发转变的事件 有时需要增加保护条件来满足对象的变迁 例如 上图中打印机在故障状态时 故障修复事件只有在打印队列不破坏的情况下才能使打印机进入打印状态 否则即使修复也只能进入就绪状态 例 文档打印系统的部分事件轨迹图 例 文档打印系统的部分事件流图 面向对象分析 就是抽取和整理用户需求并建立问题域精确模型的过程 通常 面向对象分析过程从分析陈述用户需求的文件开始 可能由用户 包括出资开发该软件的业主代表及最终用户 单方面写出需求陈述 也可能由系统分析员配合用户 共同写出需求陈述 当软件项目采用招标方式确定开发单位时 标书 往往可以作为初步的需求陈述 三 面向对象分析的基本过程 结构化分析 从数据的 输入一加工一输出 着眼 在分析中着重于功能的分解 面向对象分析 关注对象的内在性质 以及对象的关系与行为 OOA一般地是从理解系统的 使用实例 开始来逐步构建软件需求模型的 1 基本步骤 1 定义系统的用例 2 领域分析 建立类对象模型 3 建立对象 关系模型 4 建立对象 行为模型 5 编写SRS 四 面向对象分析方法 2 案例例 显像管生产监测系统的系统概况显像管生产监测系统是一个显像管生产数据采集与管理的计算机系统 它采集显像管生产的各个生产工艺过程中发生的数据 包括材料和在制品的收进数 投入数 作业数 合格数 试验数 返修数 不合格数 结存数及不良品内容等 通过汇总 保存和计算 实现对显像管产量 质量的管理和控制 四 面向对象分析方法 例 显像管生产监测系统的系统概况该系统数据采集有多种方式 关键工序的数据通过光电管采集 每半分钟更新一次 重要的不良品数据通过触摸屏输入 每半小时更新一次 但哪些工序是关键的 哪些不良品重要可随时应技术部门的要求改变 材料收进数据在领料时已经输入物资系统 所以直接从物资系统接入 非关键工序的生产数据和不良品数据每班由当班工人输入一次 此外 还有一些下属分厂的数据 由分厂手工输入后通过电子邮件传送给系统 所有这些数据都有可能出错 因此需要调整 采集后汇总成每天的数据 将不良品数据累加成每道工序的不合格数 然后计算每种材料的单耗 投入材料或在制品数 本道产出合格数 单耗既可以作为生产管理的依据 例如用作物资系统领料发料的依据 也可以据此计算出材料成本 其中材料单耗是指生产一个合格成品所需要的该材料的数量 其计算方法是先计算每道工序的单耗 然后将该材料流经的所有工序的单耗相乘即可 例 显像管生产监测系统的系统概况显像管有各种规格 如21英寸 29英寸和33英寸等 通常每种规格的显像管在一条流水线上生产 但由于市场需求的变化 有时流水线在技术许可的情况下会作调整 如29英寸流水线上也生产33英寸显像管 有时 某条流水线也可能停产一段时间 不同规格的显像管所用的材料是不同的 但也有一些材料是各种型号的显像管通用的 为了不断降低成本 所用的材料可能在将来被价格低的替代材料所代替 生产过程中产生的一些不良品 有可能被回收后重新投入使用 为此 系统必须支持这些变动 在显像管生产监测系统中 光电管采集数据的过程是 当一个显像管在流水线上经过光电管时 光电管就根据其形状判断是哪种规格的显像管 由一个PLC计数器进行累计 累计数据每30秒传送给工控机一次 工控机每隔半小时取出一个累计数据保存到数据库 同时将半小时数据供大屏幕实时显示 为使管理人员可随时了解各班生产情况 可通过班数据处理将半小时数据汇总成一个班的8小时数据 例 光电管采集数据子系统的系统概况 1 定义系统的用例用例是系统的某些动作步骤的集合 主要由角色 Actor 和动作 Action 组成 角色是存在于系统之外和系统或产品通信的任何事物 包括人和设备等 一个用户有时可以充当不同的角色 动作则是系统的一次执行 与角色进行通信 或进行一次计算 或在系统内部进行工作都可以称为动作 定义用例通常从识别角色开始 根据其执行系统功能的不同 角色可以分为几个等级 主要角色是执行系统的主要功能 次要角色使用系统的次要功能 通过回答一些问题 可以帮助开发人员发现角色 对于已经识别的角色 通过询问一些问题可以进一步发现系统的用例 通过下列提问 可以发现显像管生产监测系统中的角色 使用系统主要功能的人是谁 计划员需要借助于系统完成日常工作的人是谁 班组长 材料员 分厂工作人员谁来维护 管理系统 保证系统正常工作 系统管理员系统控制的硬件设备有哪些 光电管 PLC 工控机 触摸屏 大屏幕系统需要和哪些其他系统接口 物资系统对系统产生的结果感兴趣的人和事是哪些 企业领导 根据已发现的角色 继续通过提问发现一组系统的用例 并绘出系统的用例图 角色需要从系统中获得哪种功能 需要角色做什么 企业领导需要查看报表 了解生产任务完成情况 包括产量和质量 以及材料消耗情况 计划员需要根据单耗制定材料计划 大屏幕需要读取实时数据 翻屏显示 角色需要读取 产生 删除 修改或存储系统中的某种信息吗 系统管理员要维护基础数据 进行排班 工控机会自动生成数据 材料员需要手工生成数据 系统中发生的事件需要通知角色吗 角色需要通知系统某事件吗 这些事件能干什么 进行班数据合并生成时 若某个班组尚未输入数据 要告知材料员 由材料员通知班组长 根据已发现的角色 继续通过提问发现一组系统的用例 并绘出系统的用例图 系统需要输入 输出的是什么信息 这些输入 输出信息从哪儿来 到哪儿去 材料员要接入物资系统数据和倒入分厂数据 光电管需自动采集数据 班组长需要通过触摸屏输入不良品数据 手工输入班数据 系统当前的实现要解决的问题是什么 采集生产数据 实时了解显像管生产的产量和质量 计算材料单耗 通过以上问答为显像管生产监测系统抽取出以下用例 自动数据采集 触摸屏不良品输入 班数据输入 分厂数据倒入 物资系统数据接入 自动 生成半小时数据 人工 生成班数据 人工 生成日数据 人工 生成单耗数据 实时数据翻屏 报表查询 排班 基础数据维护 例 显像管监测系统用例图 2 领域分析 建立类对象模型领域分析目的 发现或创建一些可广泛应用的类 以便复用 面向对象领域分析就是以公共对象 类 子集合和框架等形式 在特定的应用领域中标识 分析和规约公共的可复用的能力 2 领域分析 建立类对象模型类 对象建模确定分析模型中的类 对象步骤 考察系统使用实例 汇总这些实例中的名词或名词短语 得候选对象 考察这些候选对象的特征 进而确定应该包含在分析模型中的对象 选定正式对象的6项选择特征为 必要的信息 必须记住候选对象的信息 才能使系统正常工作 需要的服务 候选对象必须拥有一组可标识的操作 它们能以某种方式修改对象属性的值 多个属性 在分析阶段关注的应该是具有多个属性的 大 的信息 公共的属性 可以为候选对象定义一组属性 这些属性适用于对象每一次发生的事件 公共的操作 可以为候选对象定义一组操作 这些操作适用于对象每一次发生的事件 必要的需求 其他问题空间的实体以及对系统实现操作的必要的生产或消费信息 常常被定义为需求模型中的对象 例 试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4.1免疫系统的组成与功能教学设计-2024-2025学年高二上学期生物人教版(2019)选择性必修1
- 2024年学年七年级语文下册 第一单元 理想信念 第1课《扬起理想的风帆》说课稿2 新疆教育版
- 农产品嫁接种苗技术服务合同7篇
- 2025年人防工程防护(化)设备供应及安装合同
- 转租合同安全协议书7篇
- 八年级历史下册 第三学习主题 建设中国特色社会主义 第9课《开放的中国走向世界》说课稿 川教版
- 4.4 世界主要气候类型 第1课时(新说课稿)2023-2024学年七年级上册地理(湘教版)
- 2024-2025学年八年级政治上册 第一单元 让爱驻我家 第一课 相亲相爱一家人 第1框《家 温馨的港湾》说课稿 鲁教版
- 四年级英语下册 Unit 4 Where is my car Part B第二课时说课稿1 人教PEP
- 全国人教版初中信息技术八年级下册第三单元第12课《验证多个点共线》说课稿
- 2025年养老产业市场营销策略调整分析报告
- 部编版二年级道德与法治上册第4课《欢欢喜喜庆国庆》精美课件
- 潍坊市2026届高三开学调研监测考试生物试题及答案
- 后厨设备安全操作培训课件
- 三维波动方程双变网格有限差分并行模拟方法:理论、实践与优化
- 好风起二部合唱简谱致远音乐
- 异姓兄妹结拜协议书范本
- 膝关节炎科普知识课件
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战
- 医院三合理一规范培训
- 2025年江苏省档案初级职称考试(档案业务基础知识)历年参考题库含答案详解(5套)
评论
0/150
提交评论