软件工程是一门应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程学科。其目的是提高软件生产率、提高软件质量、降低软件成本。具体定义如下:
IEEE定义:
将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
Fritz Bauer定义:
建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
《计算机科学技术百科全书》定义:
应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程过程包括软件规格说明、软件开发、软件确认和软件演进四个方面。
Barry Boehm定义:
运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
ISO 9000定义:
软件工程过程是输入转化为输出的一组彼此相关的资源和活动。
综合以上定义,软件工程可以概括为:
软件工程是系统化、规范化地开发、运行和维护软件的学科和方法论。它涉及到对软件的需求分析、设计、编码、测试、部署和维护等全生命周期的活动,旨在通过应用工程原则和最佳实践,以满足用户需求、提高质量、保证项目进度和控制成本,从而开发出可靠、高效、稳定的软件系统。