1.3.1 软件工程的基本概念
- 软件工程是一门指导计算机软件进行开发和维护的工程学科,是一门综合性的学科,涉及计算机科学、工程科学、管理科学、数学等多学科,研究范围广泛,主要研究如何引用软件开发的科学理论和工程技术来知道大型软件系统的开发。
- Fritz Bauer曾为软件工程下了定义:“软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。”
- 1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法。”,其中,“软件”的定义为:计算机程序、方法、规则相关的文档资料以及在计算机上运行时所必须的数据。
- 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。目前比较认可的一种定义:
- 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
- 主要思想都是强调在软件开发过程中需要应用工程化原则的重要性。
- 软件方法是指导研制软件的某种标准规程,它告诉人们“什么时候做什么以及怎样做”。
- 由于软件研制过程相当复杂,设计的因素很多,所以各种软件方法又有不同程度的灵活性和试探性。
- 一般来说,一个软件方法往往规定了明确的工作步骤、具体的描述方法以及确定的评价标准。
1. 明确的工作步骤
- 研制一个软件系统要考虑并解决许多问题,如果同时处理这些问题,将会束手无策或造成混乱。
- 正确的方式是将这样的问题拍好先后次序,每一步集中精力解决一个问题。
- 像为加工机械产品规定一道道工序那样,软件方法也提出了处理问题的基本步骤,这包括每一步的目的、生产的工作结果、需具备的条件以及要注意的问题等。
2. 具体的描述方式
- 工程化生产必须强调文档,即没人必须将每一步的工作结果以一定的书面形式记录下来,以保证开发人员之间有效地进行交流,也有利于维护工作的顺利进行。
- 软件方法规定了描述软件产品的格式,这包括每一步应产生什么文档、文档中记录哪些内容、采用哪些图形和符号等。
3. 确定的评价标准
- 对于同一个问题,其解决方案往往不是唯一的,选取哪一个方案比较好呢?
- 有些软件方法提出了比较确定的评价标准,因而可以指导人们对各个具体方案进行评价,并从中选取一个较好的方案。
1.3.2 软件工程的要素
软件工程包含三个要素:方法、工具和过程。
- 软件工程的方法为软件开发提供了“如何做”的技术,是指导研制软件的某种标准规范
- 它包括多方面的任务,如项目计划与估算,软件系统需求分析,数据结构