第9章面向对象方法学引论传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功
但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功
在20世纪60年代后期出现的面向对象编程语言Simdla_67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学
到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型
面向对象技术已成为当前最好的软件开发技术
1面向对象方法学概述9
1面向对象方法学的要点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致
客观世界的问题都是由客观世界中的实体及实体相互间的关系构成的
我们把客观世界中的实体抽象为问题域中的对象(object)
因为所要解决的问题具有特殊性,因此,对象是不固定的
一个雇员可以作为一个对象,一家公司也可以作为一个对象,到底应该把什么抽象为对象,由所要解决的问题决定
从本质上说,用计算机解决客观世界的问题,是借助于某种程序设计语言的规定,对计算机中的实体施加某种处理,并用处理结果去映射解
我们把计算机中的实体称为解空间对象
显然,解空间对象取决于所使用的程序设计语言
例如,汇编语言提供的对象是存储单元;面向过程的高级语言提供的对象,是各种预定义类型的变量、数组、记录和文件等等
一旦提供了某种解空间对象,就隐含规定了允许对该类对象施加的操作
从动态观点看,对对象施加的操作就是该对象的行为
在问题空间中,对象的行为是极其丰富多彩的,然而解空间中的对象的行为却是非常简单呆板的