1
 软件工程
1.3.3.1 1.3.1 软件工程的定义

1.3.1 软件工程的定义

软件工程是一门指导计算机软件开发和维护的工程学科,是一门边缘学科,涉及计算机科学、工程科学、管理科学、数学等多学科,研究的范围广,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。

虽然对软件工程有着众多的定义,但是其基本思想都是强调在软件开发过程中应用工程化的重要性。

例如,1983年,IEEE(电气和电子工程师协会)所下的定义是:软件工程是开发、运行、维护和修复软件的系统方法。1990年,IEEE又将定义更改为:对软件开发、运行、维护的系统化的、有规范的、可定量的方法之应用,即是对软件的工程化应用。

2004年,IEEE/ACM联合发布的CCSE2004报告强调了对软件工程的新定义,即软件工程是“以系统的、科学的、定量的途径,把工程应用于软件的开发、运行和维护;同时,开展对上述过程中各种方法和途径的研究”。这也是目前一种比较广泛认可的定义。

从软件工程的定义可见,软件工程是一门指导软件系统开发的工程学科,它以计算机理论及其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把实践证明的、科学的管理措施与最先进的技术方法结合起来。软件工程研究的目标是“以较少的投资获取高质量的软件”。它包括3个要素:方法、工具和过程。

(1)软件工程方法为软件开发提供了“如何做”的技术,是指导开发软件的某种标准规范。它包括多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法的设计、编码、测试及维护等。软件工程方法常采用某种特殊的语言或图形的表达方法及一套质量保证标准。

(2)软件工具是指软件开发、维护和分析中使用的程序系统,为软件工程方法提供自动的或半自动的软件支撑环境。

(3)软件工程的过程则是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需的管理及软件开发各个阶段完成的“里程碑”。

有关软件工程3个要素的相关知识我们将在后续章节详细介绍。