软件工程基础与实训教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 软件工程

软件工程是一门指导计算机软件开发和维护的工程学科。它运用工程学中的概念、原理、方法和技术来指导软件的开发和维护工作。

1.2.1 软件工程的定义及目标

关于软件工程,不同的学者和组织机构给出了不同的定义。

1993年,电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)给出的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件的开发、运行和维护过程,也就是将工程化应用于软件的开发和管理之中。

2001年,软件工程大师Roger S.Pressman对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。

目前比较认可的一种定义是:软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理方法和最先进的软件开发技术结合起来,运用到软件的开发和维护过程中。

软件工程旨在开发满足用户需求、能及时交付、不超过预算和无故障的软件,其主要目标如下:

(1)合理预算开发成本,付出较低的开发费用;

(2)实现预期的软件功能,达到较好的软件性能,满足用户的需求;

(3)提高所开发软件的可维护性,降低维护费用;

(4)提高软件开发生产率,及时交付使用。

1.2.2 软件工程研究的内容

作为一门新兴的学科,软件工程研究的主要内容是软件开发技术和软件工程管理两方面。在软件开发技术方面,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件工程管理方面,主要研究软件管理学、软件经济学、软件心理学等。

软件开发方法是指导软件开发的某种标准规程,它规定了明确的工作步骤和具体的描述方式。软件开发方法覆盖了软件开发过程中的一系列活动和任务,包括软件定义、软件开发和软件维护等。在软件开发方法的指导和约束下,面对每个环节的问题,所有开发人员都遵循统一的标准,按照统一的步骤和方式共同完成软件产品。软件开发方法作为软件生产的行为依据,有效地保证了软件的质量和开发效率。

软件开发工具是辅助和支持软件开发全过程的一系列软件,是在高级程序设计语言的基础上,为提高软件开发的质量和效率而从定义、分析、设计、编码、测试、归档和管理等各方面,为软件开发人员提供各种帮助的一类软件。其目的是为了提高软件的生产率、改进软件质量。软件开发工具所涵盖的范围,不仅包括编程阶段,还包括如需求分析、系统设计、软件测试和软件维护等软件开发的各个阶段。

软件工程管理是一门新兴的管理学科,它通过管理风险、平衡冲突目标、克服各种限制、合理配置和使用资源等一系列活动,达到为用户提供满足应用需求的软件的目标。软件工程管理主要包括以下内容:软件项目管理、软件风险管理、软件质量管理、软件配置管理、软件进度管理。

总的来说,软件工程是一门交叉学科,涉及的范围很广泛。