1
 软件工程
1.3.3.2 1.3.2 软件工程的背景和历史

1.3.2 软件工程的背景和历史

为了克服软件危机,1968年10月,NATO召开的计算机科学会议上,Fritz Bauer首次提出“软件工程”的概念,企图将工程化方法应用于软件开发上。

许多计算机和软件科学家尝试把其他工程领域中行之有效的工程学知识运用到软件开发工作中来。经过不断实践和总结,最后得出一个结论:按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一条主要道路。

虽然软件工程的概念提出已有40多年,但到目前为止,软件工程概念的定义并没有得到认可。在NATO会议上,Fritz Bauer对软件工程的定义是:“为了经济地获得可靠的和能在实际机器上高效运行的软件,而建立和使用的健全的工作原则。”除了这个定义,还有几种比较有代表性的定义。

B.W.Boehm给出的定义是:“运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。”此处,“设计”一词广义上应理解为包括软件的需求分析和对软件进行修改时所进行的再设计活动。

1983年,IEEE给出的定义是:“软件工程是开发、运行、维护和修复软件的系统方法。”其中,“软件”的定义为计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。

后来尽管又有一些人提出了许多更为完善的定义,但主要思想都是强调在软件开发过程中应用工程化原则的重要性。

我国2006年的国家标准GB/T 11457—2006《软件工程术语》中对软件工程的定义为:“应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户需求的软件产品的定义、开发、发布和维护的工程或进行研究的学科。”

概括地讲,软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。