§4.6面向对象方法.ppt
文本预览下载声明
§4.6面向对象方法;4.6.1 将OO分析模型转换到OO设计模型;将分析模型转换为软件设计;结构化设计
的四个层次;由OO分析模型转换到OO设计模型;;;;Fichman和Kemerer提出的10种设计建模成分
模块层次的表示
数据定义规约
过程逻辑的规约
端到端处理序列的指明
对象状态和变迁的表示
类及层次的定义
操作到类的赋予
详细的操作定义
消息连接的规约
排它服务的标识; OOD的四个层次:
子系统层: 包含每个子系统的表示
类和对象层:包含类层次和每个对象
的设计表示
消息层: 包含使得每个对象能够和其
协作者通信的细节,建立系
统的外部和内部接口
责任层: 包含针对每个对象的所有属性
和操作的数据结构和算法的设计;目前流行的OOA方法概述
Booch方法
Booch的OOD微开发过程概述:
系统结构计划
战术的设计
发布计划
;目前流行的OOD方法概述
Coad-Yourdon方法
Coad-Yourdon的OOD过程概述:
问题域部分
人机交互部分
任务管理部分
数据管理部分
;目前流行的OOD方法概述
Rumbaugh方法(简称OMT)
Rumbaugh的OOD过程概述:
进行系统设计
进行对象设计
实现在系统设计中定义的控制机制
调整类结构以加强继承性
设计消息序列以实现对象关系(关联)
包装类和对象为模块;统一的OOD方法
UML被组织进两个主要的设计活动:
系统设计
系统设计的主要目标是表示软件体系结构
对象设计
对象设计着重于对象及其相互交互的描述;软件体系结构可分为四种不同的体系:
概念结构
包括部件、互连、原则和性能等
代码结构
包括软件的配置管理、系统建造等
模块结构
包括模块界面、模块管理、模块控制和一致性等
执行结构
包括性能分析、调度分析、动态配置和不同的执行系统之间的接口等; 系统设计
系统设计的主要目标是表示软件体系结构。
对面向对象开发而言:
概念体系结构涉及静态类模型的结构和该模型的构件间的连接。
模块体系结构描述系统被分成子系统或模块的方式以及它们如何通过移入和移出数据而通信。
代码体系结构定义程序代码如何被组织为文件和目录以及分组为库。
执行体系结构关注于系统的动???方面以及任务和操作执行时构件间的通信。; 对象设计
对象设计着重于对象及其相互交互的描述。
在对象设计期间:
属性数据结构和所有操作的过程的详细规约被创建。
所有属性的可见性(公共的、私有的或保护的)被定义,对象间的接口被精化以定义完整的消息模型的细节。;OOA与OOD的本质:
OOA是一个分类活动,即分析问题力图
确定在开发解决方案时可应用的对象类,
同时确定对象关系和行为。
OOD使得软件工程师能够确定从类中导
出的对象,以及这些对象的相互关联,
此外,OOD描述了:对象间的关系如何达到;
行为如何实现;
对象间通信如何实现。;从OOA到OOD;OOD过程流
;OOD导出的系统结构
;子系统设计过程中
必须定义四种重要的设计结构
问题域—直接负责实现客户需求的子系统
人机交互—实现用户界面的子系统
(包括可复用的GUI子系统)
任务管理—负责控制和协调并发任务的子
系统,任务可能被包装在一个
子系统中或不同的子系统间;
数据管理—负责对象的存储和检索的子系统
;在对象设计过程中
将分析模型转换为设计模型 ;4.6.2 对象模型技术(OMT)的OOD方法 ; 系统分解:; ;客户端
子系统; 4.6.3 Yourdon的OOD方法 ;4.6.3.1 问题域部分的设计;对OOA结果加以增补要考虑的因素;4.6.3.2 人机交互部分的设计;
;4.6.3.3 任务管理部分的设计 ;2.怎样设计任务管理部分
任务管理主要包括任务的选择和调整
识别事件驱动任务
识别时钟驱动任务
识别优先任务和关键任务
识别协调者
审查每个任务
定义每个任务;
;
;4.6.3.4 数据管理部分的设计;如何设计数据管理部分
(1)数据存放方法设计
(2)相应服务的设计
为每个需存储其对象的类增加一个
属性和服务;面向对象设计实例:简化的C++类库管理系统
需求描述:
管理用C++语言定义的类
用户能够方便地向类库中添加新类,并建立新类与库中原有类的关系
用户能够通过类名从库中查询出指定的类
用户能够查看或修改与指定类有关的信息
用户能够从类中删
显示全部