自二十世纪九十年代初以来,计算学科的发展远远超越了计算机科学的界限,形成了计算机科学,软件工程,计算机工程,信息技术和信息系统等多个独立学科。计算机工程与电子工程学科分开,旨在研究计算机硬件的相关工程问题。软件工程已经从计算机科学学科发展成为一门独立的学科,同样强调如何系统地以可控和有效的方式开发和维护高质量的软件。
1.软件工程的定义
软件工程学科自从诞生后,人们对软件工程的定义不经相同。例如,F.L.Bauer给出了最早的定义,即“软件工程是建立和应用一系列坚实的软件工程原理,以经济地获得在真实机器上高效运行的可靠软件”。美国梅隆卡内基大学软件工程研究所(SEI)认为软件工程以工程的形式应用数学原理和计算机科学,经济有效地解决软件问题。然而,软件工程的常用定义是由IEEE给出的,即软件工程是应用于软件开发、运行和维护的一种系统化、标准化和定量的方法。
软件工程的概念实际上有两个含义。软件工程从狭隘的概念出发,强调在软件过程中使用的工程方法和管理系统,如引入成本核算、质量管理和项目管理。软件产品的开发被认为是一个系统工程和工程项目所要求的管理。从广义上讲,软件工程涵盖了软件生命周期中的所有工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的所有内容。即实现软件产品所必需的思想、理论、方法、技术和工具。
2.软件工程的内涵
软件工程学科包括完成软件需求、设计、构造、测试和维护所需的知识、方法和工具。软件工程不局限于理论,更重要的是,在实践中,它可以帮助软件组织和协调团队,使用有限的资源,遵守既定的软件工程规范,并采用一系列可重用和有效的方法。在指定的时间范围内实现预先设定的目标。对于软件工程的实施,先进的软件工程思想始终是最重要的,无论采用什么样的方法和工具。只有在正确的工程思想指导下,才能制定正确的技术路线,正确使用方法和工具,实现既定的软件工程或项目管理目标。