预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共110页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第六章面向对象设计传统方法学概述出现问题的原因 僵化的瀑布模型 *某些类型的系统需求是模糊的 *项目参与者之间存在通信鸿沟 *预先定义的需求可能是过时的 结构化技术的缺点 *用这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差。 *结构化分析、设计技术的本质是功能分析。从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,层层分解下去,直至仅剩下若干个容易实现的子处理为止。功能与数据分离的软件设计结构与人类的现实世界环境很不一样,和人的自然思维也就很不一致,因此对现实世界的认识与编程之间存在着一道很深的理解上的鸿沟。 系统是围绕着如何实现一定的行为来进行的,当系统行为易变,需要常常修改时,修改极为困难。 在系统中模块之间的控制作用有重要影响时,也就是说,实际的控制发生的根源来自分散的各个模块之中时,由于在“好的模块结构”中的模块间的控制作用只能通过上下之间的调用关系来进行,造成信息传递路径过长,效率低,易受干扰,甚至出错。 自顶向下功能分解的分析方法极大地限制了软件的可重用性。 “面向对象”(Object-Oriented)是针对“面向过程”一词提出的,是从本质上区别于传统的结构化方法的一种新方法,新思路。 OO技术的基本原理是:按照问题域的基本事物实现自然分割,按人们通常的思维方式建立问题域的模型,设计尽可能直接自然表现问题求解的软件系统。 为此,OO技术引入了对象(object)概念来表现事物,用消息(message)传递建立事物间的联系。用类(class)和继承(inheritance)作为适应人们一般思维方式的描述模型。用方法(method)表示作用在对象上的各种操作。建立在对象、消息、类、继承和方法等概念基础上的面向对象软件的基本特征是对象的封装性和继承性。 通过封装可以将对象的定义与对象的实现分开。这样,无论是对象功能的完善扩充,还是对象实现的修改,影响仅限于该对象内部,保证了面向对象软件的可构造性和易维护性。 通过继承可以表达类与类之间的联系,大大减少了重复定义,同时也使系统的结构更加清晰、易于理解和维护。§6.1面向对象设计概述 §6.2系统设计 §6.3对象设计 §6.4领域对象设计在第五章讲述了软件设计的几条基本原理,这些原理在进行面向对象设计时仍然成立,但是增加了一些与面向对象方法密切相关的新特点,从而具体化为下列的面向对象设计准则:面向对象设计OOA与OOD的本质: OOA是一个分类活动,即分析问题力图确定在开发 解决方案时可应用的对象类,同时确定对象关系和行为。 OOD使得软件工程师能够确定从类中导出的对象, 以及这些对象的相互关联,此外,OOD描述了:对象间的 关系如何达到;行为如何实现;对象间通信如何实现。 从OOA到OOD§6.1面向对象设计概述1.面向对象设计的任务 系统设计 对象设计 消息设计 复审设计模型 系统设计主要完成系统整体结构的设计,包括将子系统分配到处理器和任务,选择实现数据管理、界面支持和任务管理的设计策略,为系统设计合适的控制机制等。 对象设计,对OOA模型中的类对象模型具体化、详细化。 消息设计使用对象间的协作和对象—关系模型,设计出消息模型。 复审设计模型,对设计模型进行复审,并伴随着附加的OOA活动。 和传统的结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型。分析模型设计模型定义成了一个金字塔层次结构。自低而上分别为: 子系统层:包含每个子系统的表示 类和对象层:包含类层次和每个对象的设计表示 消息层:包含使得每个对象能够和其协作者通信的细节,建立系统的外部和内部接口 责任层:包含针对每个对象的所有属性和操作的数据结构和算法的设计将分析模型转换为设计模型§6.2系统设计目前流行的OOD方法概述 Rumbaugh方法(简称OMT) Rumbaugh的OOD过程概述: 进行系统设计 进行对象设计 实现在系统设计中定义的控制机制 调整类结构以加强继承性 设计消息序列以实现对象关系(关联) 包装类和对象为模块子系统设计过程中 必须定义四种重要的设计结构 问题域—直接负责实现客户需求的子系统 人机交互—实现用户界面的子系统(包括可复用的GUI 子系统) 任务管理—负责控制和协调并发任务的子系统,任务可 能被包装在一个子系统中或不同的子系统间; 数据管理—负责对象的存储和检索的子系统 系统分解:客户端 子系统目前流行的OOD方法概述 Coad-Yourdon方法 Coad-Yourdon的OOD过程概述: 问题域部分 人机交互部分 任务管理部分 数据管理部分 2.子系统设计 划分子系统(P128例6.1) 处理并发操作(P129例6.2) 描述子系统间通信(P130图6.4) 资源管理构件3.人机交互