“计算机系统配置”,是指计算机系统或计算机部件按其组成的零件数量、性质及相互联系所确定的安排。
配置(configuration)一词在计算机领域已有广泛的应用。所谓“计算机系统配置”,是指计算机系统或计算机部件按其组成的零件数量、性质及相互联系所确定的安排。软件配置的含意与此类似,但在管理对象和方法上还是有一些差别。
软件配置管理是软件管理的重要内容。近年来,软件项目的规模越来越大,复杂性越来越高,管理失误给我们的教训也越来越深刻,这使得人们不得不重视配置管理。
软件开发过程中的变更以及相应的返工会对产品的质量造成很大的影响。有统计表明,变更及其返工可能耗费50%的开发工作量,如果不从配置管理方面加以控制,必将导致严重的后果。软件配置管理的一个重要内容就是对变更加以控制,将变更对成本、工期和质量的影响降到最小。
一、软件配置管理的概念
1.软件配置项(software configuration item)
(1)软件开发的过程中,会得到许多工作产品或阶段产品,还会用到许多工具软件,这可能是外购软件,也可能是用户提供的软件。所有这些独立的信息项都要得到妥善的管理,绝不能出现混乱,以便在提出某些特定的要求时,能将其进行约定的组合来满足使用的目的。
这些信息项是配置管理的对象,称为软件配置项。例如,需求规格说明、设计规格说明、用户手册、维护使用手册都属于此。
(2)软件配置
如果说软件配置项是一个独立存在的信息项,我们可以把它看成一个元素。单独的一个元素发挥不了什么作用,但随着工作的进展,出于不同的要求,需要将这些元素进行不同的组合。软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。
这里以交付给不同用户的某一软件产品为例,进一步说明软件配置的含意。如果我们开发的软件产品是具有一定功能和性能的初始系统,但最终的产品应能满足用户的需求,为此,我们必须认真研究用户的真正需求。经调查,了解到“用户1”代表了一些用户,这个用户群使用的计算机为“机型1”,所用的操作系统是“操作系统1”;而“用户2”所代表的用户群使用着“机型2”和“操作系统2”(参看图1)。就是说,不同用户有不同的工作环境,我们的软件产品必须考虑到这些差异,并且充分地使其满足各个用户的使用要求。为做到这一点,产品的设计可能做成这样的安排(如图2所示),两类产品分别针对两个用户群,产品内部设计的模块(按上面的说法是配置项)
用户1:A、B、C、D、E和F
用户2:A、B、C、D、E和G、H