1.5 软件工程发展的4个阶段
自从1968年提出“软件工程”这个词以来,已经经历了近50年的时间。那时为了解决软件危机,人们希望通过其他工程的技术方法和管理手段,将软件的开发纳入工程化的轨道。在20世纪70年代取得大量的研究成果的基础上,基本形成了软件工程的概念、框架、方法和手段,成为软件工程的第一代,称为传统软件工程。
20世纪80年代以来,面向对象的方法与技术已受到广泛的重视,80年代出现的Smalltalk-80标志着面向对象程序设计进入了实用阶段,80年代中期到90年代,研究重点转移到面向对象的分析与设计,从而演化成一种完整的软件开发方法和系统的技术体系,成为软件工程的第二代,有不少人称之为对象工程。
到了20世纪80年代中期,人们在研究和实践中发现,要提高软件生产率,并使软件质量得到保证,其关键在于软件开发和维护中的管理和支持能力,并认识到最关键的是“软件过程”,因此,1984年开始掀起了“软件过程运动”,从而逐步形成软件过程工程,成为软件工程的第三代。
进入20世纪90年代之后,软件工程的一个重要进展就是基于构件的开发方法,为了提高软件生产力,不草率地开发应用程序,要尽可能地利用可复用的构件,组装成新的应用软件系统。随着因特网技术的飞速发展,大量的分布式处理系统需要开发,这种方法的重要性也日益显露出来,从而成为软件工程的第四代,也有不少人称之为构件工程。
软件工程还在不断发展,无论是过程工程、对象工程还是构件工程,都有不少新的进展,即使是传统软件工程中的一些基本概念和框架,随着技术的进步也在发生演变。总之,不同软件工程概念之间并没有鸿沟,它们不仅有交叉重叠,也有携手并进。不同的说法只是为了阐述软件工程的迅速发展,从不同的角度来研究和实践而已。软件工程是一门处于前沿地位的重要学科,需要读者认真研究和细心学习,也需要在技术实践中不断创新和发展。