1
 软件工程
1.3.1.2 1.1.2 软件的发展

1.1.2 软件的发展

软件工程是在克服20世纪60年代出现的“软件危机”过程中逐渐形成和发展的。在过去的50年时间里,软件工程在理论和实践方面都取得了长足的进步。它的发展已经经历了四个重要阶段。

1.第一代软件技术

20世纪60年代末,软件生产主要采用“生产作坊”方式。随着软件需求量及规模的迅速扩大,生产作坊方式已不能适应软件生产的需要,出现了所谓的“软件危机”,其主要表现为软件生产效率低下、软件产品质量低劣,在大量劣质的软件涌入市场后不久就在开发过程中夭折。由于“软件危机”的不断扩大,国际软件界面临着巨大的灾难,软件产业濒临崩溃。

为了克服“软件危机”,1968年在北大西洋公约组织(NATO)举行的软件可靠性学术会议上第一次提出了“软件工程”的概念,其核心是将软件开发纳入工程化的轨道,以保证软件开发的效率和质量。

此后,逐渐形成了软件工程的基本概念、框架、技术和方法,以结构化开发方法、Jackson方法等为代表的软件开发方法成为这一阶段的主要开发方法。这一阶段又称为传统的软件工程阶段。

2.第二代软件技术

从20世纪80年代中期开始,相继推出以Smalltalk为代表的面向对象的程序设计语言,面向对象的方法与技术得到迅速发展;从20世纪90年代起,软件工程研究的重点从程序设计语言逐渐转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系。

20世纪90年代以来,形成了以Booch方法、OOSE、OMT等许多面向对象开发方法的流派,面向对象的方法逐渐成为软件开发的主流。尤其是1997年1月,综合了各种面向对象方法优点的统一建模语言UML1.0的正式推出,使面向对象的方法得到了进一步发展,所以这一阶段又称为对象工程。

3.第三代软件技术

随着软件工程规模和复杂度的不断增大,开发人员也随之增多,开发周期相应延长,加之软件是知识密集型的逻辑思维产品,这些都增加了软件工程管理的难度。人们在软件开发的实践过程中逐渐认识到:提高软件生产效率、保证软件质量的关键是对“软件过程”的控制和管理,是软件开发和维护的管理和支持能力。因此提出了对软件项目管理的计划、组织、成本估算、质量保证、软件配置管理等技术与策略,逐步形成了软件过程工程。

4.第四代软件技术

20世纪90年代起,软件复用和基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用软件组装完成,而无须从头开始构造,以此达到提高效率和质量、降低成本的目的,软件复用技术及构件技术的发展,为克服软件危机提供了一条有效途径,这已成为当前软件工程的重要研究方向,这一阶段就称为构件阶段。