第十章面向对象方法学引论
第十章 面向对象方法学引论
10.1传统方法学与面向对象方法比较 y10.1.1传统方法学 1.僵化的瀑布模型 y2.传统结构化技术的缺点
Ú10.1.1 传统方法学 Ú 1.僵化的瀑布模型 Ú 2.传统结构化技术的缺点 10.1 传统方法学与面向对象方法比较
10.1.1传统方法学 ∽1.僵化的瀑布模型 (1)有些类型的系统需求是模糊的 y(2)项目参与者之间存在通信鸿沟 (3)预先定义的需求可能是过时的 2.传统结构化技术的缺点 结构分析与结构设计技术的本质是功能分解, 是围绕实现处理功能的过程来构造系统的。结 构化方法强调过程抽象和模块化,是以过程 (或操作)为中心来构造系统和设计程序的。 然而用户需求的变化大部分是针对加工的,因 此这种变化对基于过程的设计来说是灾难
Ú 1.僵化的瀑布模型 Ú(1)有些类型的系统需求是模糊的 Ú(2)项目参与者之间存在通信鸿沟 Ú(3)预先定义的需求可能是过时的 Ú2.传统结构化技术的缺点 Ú结构分析与结构设计技术的本质是功能分解, 是围绕实现处理功能的过程来构造系统的。结 构化方法强调过程抽象和模块化,是以过程 (或操作)为中心来构造系统和设计程序的。 Ú然而用户需求的变化大部分是针对加工的,因 此这种变化对基于过程的设计来说是灾难 。 Ú10.1.1 传统方法学
2.传统结构化技术的缺点 Y结构分析与结构设计技术清楚地定义了目 标系统的接口。当系统对外界的接口发生 变动时,也就是说,这样的系统较难修改 和扩充。 结构化方法把数据和操作作为分离的事实, 以至在实现阶段,一些具有潜在可重用价 值的软件部件(也称为软构件)已和具体 应用环境密不可分。 上述种种原因都使得用结构分析与结构设 计技术开发出的软件可重用性较差
2.传统结构化技术的缺点 Ú结构分析与结构设计技术清楚地定义了目 标系统的接口。当系统对外界的接口发生 变动时,也就是说,这样的系统较难修改 和扩充。 Ú结构化方法把数据和操作作为分离的事实, 以至在实现阶段,一些具有潜在可重用价 值的软件部件(也称为软构件)已和具体 应用环境密不可分。 Ú上述种种原因都使得用结构分析与结构设 计技术开发出的软件可重用性较差
10.1传统方法学与面向对象 方法比较 10.1.2面向对象方法学 1.为什么需要面向对象 2.面向对象方法学的优点
Ú10.1.2 面向对象方法学 Ú1.为什么需要面向对象 Ú2.面向对象方法学的优点 10.1 传统方法学与面向对象 方法比较
1.为什么需要面向对 象 从80年代后期开始,进行了面向对象分析 (OOA)、面向对象设计(OOD)和面向对象程序设 计(OOP)等新的系统开发方式模型的研究,在有些 文献中统称为OO范型 软件包括以下几方面的能力 Y(1)计算的能力; (2)推理的能力; (3)人机交互的能力 ˇ能同时支持这3种能力开发的技术是面向对象 面向对象的需求分析方法通过提供对象、对象间消息 传递等语言机制,从而削弱了语义断层
Ú 从 8 0 年 代 后 期 开 始 , 进 行 了 面 向 对 象 分 析 (OOA)、面向对象设计(OOD)和面向对象程序设 计(OOP)等新的系统开发方式模型的研究,在有些 文献中统称为OO范型。 Ú 软件包括以下几方面的能力: Ú(1)计算的能力; Ú(2)推理的能力; Ú(3)人机交互的能力。 Ú能同时支持这3种能力开发的技术是面向对象。 Ú面向对象的需求分析方法通过提供对象、对象间消息 传递等语言机制,从而削弱了语义断层。 1.为什么需要面向对 象
面向对象方法学核心概念 (1)对象 在面向对象的系统中,对象是基本的运行时的实体, 它包括数据属性,也包括作用于数据的操作(行为) 所以一个对象把属性和行为密封成一个整体 属性值规定了对象所有可能的状态。对象的操 作是指该对象可以展现的外部服务。例如,大型客 机可视为对象,它具有位置、速度、颜色、容量等 属性,对于该对象可施行起飞、降落、加速、维修 等操作,这些操作将或多或少地改变飞机的属性值 (状态)
面向对象方法学核心概念 属性值规定了对象所有可能的状态。对象的操 作是指该对象可以展现的外部服务。例如,大型客 机可视为对象,它具有位置、速度、颜色、容量等 属性,对于该对象可施行起飞、降落、加速、维修 等操作,这些操作将或多或少地改变飞机的属性值 (状态)。 (1)对象 在面向对象的系统中,对象是基本的运行时的实体, 它包括数据属性,也包括作用于数据的操作(行为)。 所以一个对象把属性和行为密封成一个整体
面向对象方法学核心概念 (2)类 (2)类。类是某些对象的共同特征(属性和操作)的表示, 对象是类的实例 例如,飞行器类包含位置、速度、颜色等属性, 以及起飞、降落、加速等操作。 是否建立了一个丰富的类库是衡量一个面向对象 程序设计语言成熟与否的重要标志
面向对象方法学核心概念 Ú(2)类。类是某些对象的共同特征(属性和操作)的表示, 对象是类的实例。 Ú例如,飞行器类包含位置、速度、颜色等属性, 以及起飞、降落、加速等操作。 是否建立了一个丰富的类库是衡量一个面向对象 程序设计语言成熟与否的重要标志。 (2)类
面向对象方法学核心概念 (3)继承 类之间的继承关系是现实世界中遗传关系的直接模拟, 它表示类之间的内在联系以及对属性和操作的共享,即 子类可以沿用父类(被继承类)的某些特征。当然,子 类也可以具有自己独立的属性和操作。 除遗传关系外,现实世界中 例如,飞行器、汽车和 还普遍存在着部分—整体关 轮船可归于交通工具类,系。例如,飞机可由发动机 飞行器类可以继承交通 机身、机械控制系统、电子 工具类某些属性和操作 控制系统等构成。聚集关系。 继承性是面向对象程序设计语言的最主要的特点,是其
面向对象方法学核心概念 继承性是面向对象程序设计语言的最主要的特点,是其 他语言(如面向过程语言)所没有的。 类之间的继承关系是现实世界中遗传关系的直接模拟, 它表示类之间的内在联系以及对属性和操作的共享,即 子类可以沿用父类(被继承类)的某些特征。当然,子 类也可以具有自己独立的属性和操作。 (3)继承 例如,飞行器、汽车和 轮船可归于交通工具类, 飞行器类可以继承交通 工具类某些属性和操作。 除遗传关系外,现实世界中 还普遍存在着部分—整体关 系。例如,飞机可由发动机、 机身、机械控制系统、电子 控制系统等构成。聚集关系
面向对象方法学核心概念 (4)消 息 消息传递是对象与其外部世界相互关联的唯一途径。对 象可以向其他对象发出消息以请求服务,也可以响应其 他对象传来的消息,完成自身固有的某些操作,从而服 务于其他对象 因为对象的操作主要用来响应外来消息并为其他对象 提供服务,所以它们也被称作“外来服务” 例如,直升飞机可以响应轮船的海难急救信号, 起飞,加速,飞赴出事地点并实施救助作业
面向对象方法学核心概念 消息传递是对象与其外部世界相互关联的唯一途径。对 象可以向其他对象发出消息以请求服务,也可以响应其 他对象传来的消息,完成自身固有的某些操作,从而服 务于其他对象。 因为对象的操作主要用来响应外来消息并为其他对象 提供服务,所以它们也被称作“外来服务” 。 (4)消息 例如,直升飞机可以响应轮船的海难急救信号, 起飞,加速,飞赴出事地点并实施救助作业