background image

软件工程中程序设计方法的比较

摘要:在软件工程领域方面,先后出现了三类程序设计方法,分别是面向过程程序设计方
法、面向对象程序设计方法、泛型程序设计方法。该文对三类程序设计方法进行了深入分析和
比较。

 

  关键词:面向过程;面向对象;泛型;软件工程;程序设计方法

 

  

20 世纪 60 年代中期,随着软件系统的规模和复杂程度的不断增加,软件可靠性问题

也不断突出,出现了

“软件危机”。1968 年,正式提示“软件工程”一词,并形成一门新的工

程学科

[1]。在软件工程领域,先后出现了三种程序设计方法,分别是面向过程的程序设计、

面向对象的程序设计和泛型程序设计。

 

  本文对三类方法

――面向过程程序设计方法、面向对象程序设计方法、泛型程序设计方

法,进行了深入分析和比较。

 

  

 1 面向过程、面向对象、泛型概述 

  

20 世纪 70 年代,面向过程的程序设计方法(也称结构化方法)出现并在早期的软件

工程领域占用主导地位。面向过程采用是自顶向下、逐步求精、模块化等设计原则

,将软件系

统分解为若干可独立的子模块。各个模块完成后组合起来,成为一个最终的软件系统。随着
软件工程的发展,出现了软件生产率低、软件维护困难等难以解决的问题

[1]。 

  

20 世纪 80 年代,面向对象的程序设计方法应运而生,它解决了面向过程的程序设计

方法的缺点,提高了软件的生产率和方便软件的维护。现在已成为目前主流的程序设计方法。
面向对象将软件系统分解成一个个的对象,每个对象都是通过对现实世界的分析、理解而得
出的。面向对象更接近于人类认知世界的方式,并通过以类和继承为构造机制将现实世界构
建成对应的软件系统。对于面向对象一些难以克服的缺点,如它不能将所有关系都用继承来
实现,抽象程度不够高,通用性不足等问题,提出了泛型程序设计

[2-3]。 

  近年来,泛型程序设计出现并发展。泛型的特点是抽象程度很高,将程序写得尽可能通
用,可适合多种数据类型的操作,同时不损失效率。泛型程序设计的过程是发现类型需求、
分析类型需求之间的关系,并运用这种类型需求关系实现软件系统的结构和逻辑

[2]。 

  

 2 面向过程、面向对象、泛型的比较 

  面向过程程序设计以模块为中心,采用自顶向下、逐步求精的开发方法,将软件系统分
解为若干可独立的子模块,这些模块形成树状结构,表现了各个模块相互调用的关系;每
一个模块内部均由顺序、选择和循环三种基本结构组成。各个模块完成后组合起来,成为一
个最终的软件系统。面向过程注重实现过程的顺序,它的抽象层次低,实现简单。它适合解
决简单问题和小规模的问题。

 

  面向对象程序设计以对象为中心,将软件系统分解成一个个的对象,把属性和这组属
性上的专用操作进行封装放在一起作为一个对象,以类和继承为构造机制将客观世界构建
成软件系统。同一个对象间通过消息传递来实现服务的请求。和面向过程相比,面向对象使
用对象分解取代了传统的功能分解。面向对象的特征是封装(将数据和代码放到对象里面,
从对象外部不能直接访问或修改数据和代码)、继承(从父类直接获得的属性和操作,可重
新定义)、多态(父对象定义的一个方法,允许子对象以适合自己的方式去实现消息)等。
面向对象注重对象的分析和设计,它的抽象层次高,实现复杂。它适用于复杂问题,特别是
对象间形成层

 次关系的问题。 

  泛型程序设计以类型需求为中心,将程序写得尽可能通用,可适合多种数据类型的操
作,同时不损失效率。泛型程序设计的过程是发现类型需求、分析类型需求之间的关系,并
运用这种类型需求关系实现软件系统结构和逻辑的过程。泛型设计的目标是将算法从对象的
行为中分离出来,做到算法的设计与数据结构无关,从而实现软件的复用。它通过将数据结