1.3.1 软件工程的形成与发展

更新于 2026年10月10日 版权声明
1.3.1 软件工程的形成与发展

自1968年在北大西洋公约组织NATO召开的计算机科学会议上,Fritz Bauer首先提出了“软件工程”概念以来,人们一直在寻求更先进的软件开发的方法与技术。当出现一种先进的方法与技术时,就会使软件危机得到一定程度的缓解。然而,这种进步促使人们把更多、更复杂的问题交给计算机去解决,于是又需要探索更先进的方法与技术。几十年来,软件工程研究的范围和内容也随着软件技术的发展不断地变化和拓展。总体来说,软件工程的发展经历了以下四个阶段。

(1)20世纪70年代。为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出了软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。人们发现将传统工程学的原理、技术和方法应用于软件开发,可以起到使软件生产规范化的作用。它有利于组织软件生产,提高开发质量,降低成本和控制进度。随后,人们又提出了软件生存周期的概念,将软件开发过程划分为不同阶段,比如需求分析、概要与详细设计、编码实现、测试、维护等,以适应更加复杂的应用。人们还将计算机科学和数学用于构造模型与算法上,围绕软件项目开展了有关开发模型、方法以及支持工具的研究,并提出了多种开发模型、方法与多种软件开发工具,比如编辑、编译、跟踪、排错、源程序分析、反汇编、反编译等。并围绕项目管理提出了费用估算、文档评审等管理方法和工具,基本形成了软件工程的概念、框架、方法和手段。

(2)20世纪80年代。面向对象的方法与技术受到了广泛的重视,maltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末,逐步发展起来的面向对象的分析与设计方法,已经形成了完整的面向对象技术体系,使系统的生存周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率,保证软件质量就成为软件工程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。这个时期人们开始认识到,应从软件生存周期的总费用及总价值来决定软件开发方案。在重视发展软件开发技术的同时,人们提出软件能力成熟度模型、个体软件过程、群组软件过程等概念;在软件定量研究方面提出了软件工作量估计COCOMO(Constructive Cost Model)模型。软件开发过程从目标管理转向过程管理。(https://www.daowen.com)

(3)20世纪90年代末。此时出现了许多的敏捷方法,如自适应软件开发、水晶项目开发、动态系统开发、极限编程、特征驱动开发和Scrum等。这些主要的敏捷方法的创始人在2001年聚集一堂,并发表了敏捷开发宣言。

(4)21世纪。对快速应用开发(Rapid Application Development,RAD)追求的趋势仍在继续,在信息技术、组织、竞争对策及环境等方面的变革步伐也正在加快。云计算、大数据、物联网、人工智能和机器学习、移动互联网、三维打印、可穿戴式技术、虚拟现实、增强现实、社交媒体、无人驾驶汽车和飞机等技术不断涌现。这种快速的变革步伐引发了软件开发领域越来越多的困难和挫折,更多的软件开发过程、方法和工具也相继出现,软件工程在持续的机遇与挑战中不断发展。“大规模计算”“模型驱动体系结构”和“构件化软件开发”等新领域都可能成为接下来软件工程发展的主要方向。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)