软件工程导论 9章 面向对象方法学引论.doc
文本预览下载声明
第9章 面向对象方法学引论
传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了
在20世纪60年代后期出现的面向对象编程语言Simdla_67中首次引20世纪80年代中期起,人们开始注重面向对象20世纪90年代,
9.1面向对象方法学概述
9.1.1 面向对象方法学的要点
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维(也称为问题域)与实现解法的解空(也称为求解域)在结构上尽可能一致。
客观世界的问题都是由客观世界中的实体及实体相互间的关系构成(object)。因为所要
从本质上说,用计算机解决客观世界的问题,是借助于某种程序设计
从动态观点看,对对象施加的操作就是该对象的行为。在问题空间中,对象的行为是
通常,客观世界中的实体既具有静态的属性又具有动态的行为。然而传统语言提供
众所周知,软件系统本质上是信息处理系统。数据和处理原本是密切相关的,把数据
面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,
概括地说,面向对象方法具有下述4个要点: .
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较
由此可见,面向对象方法用对象分解取代了传统方法的功能
(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数Circle类的对象,但是,各自都有自己专用的数据,以便记录各自的圆心位置、半径等等。
类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不
(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层(包括数据和方法),这种现象称为继承(inheritance)。但是,如果在派
(4)对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它
综上所述,面向对象的方法学可以用下列方程来概括:
00objects+classes+inheritance+communication with messages
也就是说,面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不(class-based)方法,但仍然不是面向对象的方法。只有同时使用对象、类、继承和消
9.1.2 面向对象方法学的优点
1.与人类习惯的思维方法一致
传统的程序设计技术是面向过程的设计方法,这种方法以算法为核心,把数据和过程
把数据和代码作为分离的实体,反映了计算机的观点,因为在计算机内部数据和程序
传统的程序设计技术忽略了数据和操作之间的内在联系,用这种方法所设计出来的
面向对象的(object)为核心,用这种技术开发出的软件系统由对象(表示对象的动态行为),封装在一起所构成的统一体。对
面向对象的设计方法与传统的面向过程的方法有本质不同,这种方法的基本原理是,
传统的软件开发方法可以用
面向对象方法学的基本原则是(通过发消息使用公有成员函数)。对象类
面向对象的软件技术为开发者提供了随着对某个应用系统的认识逐步深入和具体化
2.稳定性好
传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。用传统方
面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基
3.可重用性好
用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑
传统的软件重用技术是利用标准函数库,也就是试图用标准函数库中的函数作为“预
的不同需要,并不是理想的可重用的软件成分。实际的库函数往往仅提供最基本、最常用的功能,在开发一个新的软件系统时,通常多数函数是开发者自己编写的,甚至绝大多数函数都是新编的。
使用
事实上,离开了操作便无法处理数据,而脱离了数据的操作也是毫无意
面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活(IC)构造计算机硬件那样,IC”。
面向对象的软件技术所实现的可重用性是自然的和准确的,在软件重用技术中它是11.3节中还要详细讨论。
4.较易开发大型软件产品
在开发大型软件产品时,组织开发人员的方法不恰当往往是出现问题的主要原因。
5.可维护性好
用传统方法和面向过程语言开发出来的软件很难维护,是长期困扰人们的一个
显示全部