首页计算机计算机软件面向对象软件工程 05 第五讲 OOD初阶.pptx

05 第五讲 OOD初阶.pptx

页数:17页文件大小:195.4 KB来源: 面向对象软件工程ppt课件

本课件讲授面向对象设计的基本方法,先说明OOD模型与OOA模型的关系及问题域、UI、任务管理、数据管理四类部件的体系结构,随后以电梯控制系统为实例,依次演示问题域部件的重用与继承结构调整、UI部件的按钮与指示灯类设计、任务管理部件的识别与定义,以及数据管理部件的存储设计,最后给出OOD模型质量保证的四项原则。

第五章OOD初阶目录页,列出从OOA到OOD、OOD方法实例分析、质量保证与设计文档四节
OOD模型体系结构页,列出问题域、UI、任务管理与数据管理四类部件及其职责
问题域部件设计页,说明扩展调整OOA模型并尽量重用类库中已有软部件的做法
查看本课件的文字版(共 17 页,供检索与复制)

第1页:第五章OOD初阶目录

第五章 OOD 初阶:

  • §5.1 从 OOA 到 OOD
  • §5.2 OOD 的方法及实例分析
  • §5.3 OOD 模型的质量保证
  • §5.4 设计文档与评审

第2页:OOD模型的体系结构

§5.1 从 OOA 到 OOD:

  • OOD 模型与 OOA 模型之间并无明显区别,只是加进实现考虑
  • OOD 模型的体系结构包括:问题域部件(与问题域关联的类、对象及相关部分)、UI 部件(与 UI 关联的部分)、任务管理部件(管理子系统之间的通讯、并发和协同)、数据管理部件(管理数据存取)

第3页:重用软部件

§5.2.1 问题域部件:扩展和调整 OOA 模型,为完成系统主要功能的对象/类提供实现途径。

  • 尽量将 OOA 模型中的类看作是类库中标准类的子类
  • 改造 OOA 模型中有普遍意义的类,以供将来重用

第4页:调整继承结构以适应实现限制

§5.2.1 问题域部件:

  • 2. 引入新父类,捕获公共性
  • 3. 调整继承结构以适应实现限制:多重继承⇒单重继承;多重继承平板化;单重继承⇒平板化
  • 目的:简化软件结构、提高清晰度、支持软件重用

第5页:继承结构调整示例

调整继承结构示例:以「人员」为父类,「店主」「店员」为子类,图示多重继承与平板化前后的类结构变化。

第6页:继承结构调整示例(续)

调整继承结构示例(续):图示「店主」「店员」在平板化结构中如何保留各自属性与服务。

第7页:调整模型提高性能与复审

§5.2.1 问题域部件:

  • 4. 调整 OOA 模型,提高软件性能:合并相互通信频繁、耦合度很高的对象/类;在对象/类中增加保存临时性结构的属性
  • 5. 复审:强内聚、松耦合原则;简单性原则;是否满足用户的需求

第8页:实例分析:增加电梯监测类

实例分析:在电梯控制系统中增加「电梯监测」类,用于监测并报告每部电梯的当前状态。

第9页:ECS的OOD模型类图

实例分析:电梯控制系统的 OOD 模型类图,给出 Elevator、Motor、OverWeightSensor、ArrivalPanel、Floor、DstPanel、ElavatorMonitor、ElevatorEvent、SummonPanel、SummonEvent、DstEvent、ArrivalEvent 等类之间的继承与多重关联关系。

第10页:UI部件的设计方法

§5.2.2 UI 部件:

  • 增加 UI 专用对象/类:定义人机交互所需的对象/类,并提供实现细节
  • 增加它们与其他对象之间的消息传递与协调
  • 原型开发和演示,改进 UI 设计

实例分析:ECS 的 UI 由各种按钮和指示灯构成;消息传递与协调过程为:物理按钮按下⇒Button 对象报告⇒问题域部件处理⇒Light 对象响应。

第11页:Button类层次结构

§5.2.2 UI 部件:Button 类派生出 DstButton、SummButton、UpButton、DownButton 等子类,对应电梯系统中的各类物理按钮。

第12页:Light类层次结构

§5.2.2 UI 部件:Light 类派生出 DestLight、SummLight、UpLight、DownLight、ArrivalLight 等子类,对应电梯系统中的各类指示灯。

第13页:任务管理部件的必要性

§5.2.3 任务管理部件 —— 1. Why:

  • 对于多任务应用系统,通过任务管理部件可描述目标软件中各子系统之间的通信和协同
  • 在多任务、多用户、多线程 OS 上开发软件系统的需要
  • 提高可移植性

第14页:任务管理部件的设计步骤

§5.2.3 任务管理部件 —— 2. How:

  • 识别(物理)事件驱动的任务,考察事件驱动过程;识别时间驱动的任务
  • 确定任务优先级
  • 定义任务:名称、功能、优先级、包含此任务的服务、该任务与其他任务之间的协同和通讯方式
  • 定义任务协调器,专门负责任务之间的调度、协同和仲裁
  • 必要时调整原有的 OOD 模型

第15页:数据管理部件的设计

§5.2.4 数据管理部件:

  • 1. Why:将目标软件系统中依赖于开发平台的数据存取部分与其他功能独立开来,提高可移植性
  • 2. How:定义数据格式;定义存取操作,即每个对象如何存储自己、如何从存储介质中恢复自己

实例分析:ECS 使用普通文件作为存储介质。

第16页:OOD模型的质量保证

§5.3 OOD 模型的质量保证:

  • 松耦合原则:减少对象间消息传递的数量与复杂度
  • 强内聚原则:服务的内聚性、类的内聚性、类的层次结构的内聚性
  • 类的层次结构的 7±2 规则
  • OOD 模型的可扩充性、可重用性

第17页:本章小结

本章小结:OOD 的大致步骤:

  • 设计问题域部件
  • 设计 UI 部件
  • 设计任务管理部件
  • 设计数据管理部件
顶部目录