解析软件配置管理

发表于:2009-02-27来源:作者:点击数: 标签:管理解析软件
关键词: CMMI 配置管理 CM 配置项 基线 变更 当问及软件 技术 人员什么是“配置管理”的时候,很多人的回答就是“版本管理”,而且很多人都会说出各种各样的版本管理工具,例如: VSS 、TFS、 CVS 或 SVN 等等。但这样的回答是不正确、不全面的。版本管理只
 关键词:CMMI 配置管理 CM 配置项 基线 变更

        当问及软件技术人员什么是“配置管理”的时候,很多人的回答就是“版本管理”,而且很多人都会说出各种各样的版本管理工具,例如:VSS、TFS、CVSSVN等等。但这样的回答是不正确、不全面的。版本管理只是软件配置管理的一个小的部分,在CMMI中配置管理分为 “配置项和基线的管理”、“变更控制管理”和“基线的完整性”三个部分。 凡是提到软件“配置管理”(Configuration Management),我会先给它下个定义:“它是软件工程的核心部分,是CMMI中最基础的PA”。为什么它会如此重要呢?首先配置管理的工作就是确保软件项目时时保持条理清晰,随时想要任何工作产品都可以迅速找到,并且工作产品的内容不会出错,这也就是大家常讲的可回溯性、完整性和正确性;其次软件配置管理活动始终贯穿整个软件项目的生命周期。因此说软件配置管理是最基础、最核心的管理工作一点都不夸张。 
(一) 软件配置项

        在CMMI的“配置管理”过程域CM中SP1.1首先提到的就是“配置项”的概念,在大家开展配置管理工作前应该先识别哪些是本项目的配置项。“配置项”就是配置管理的对象,简单来讲它符合以下任意一个特点:

        1、  它会被两个或两个以上的项目成员共同使用。

        2、  它会随着项目的开展而发生变化。

        3、  对项目重要的工作产品。

        4、  一些工作产品之间的关系非常紧密,一个变化其他的就会受到影响。 通过以上定义大家会发现项目中的很多东西都属于配置项,例如:各种需求文档、设计文档等都会经常变更;程序的代码是大家共享的,而且代码文件之间又有较高的相互依赖性。那大家也许会发现还有一些工作产品不符合以上定义,例如:各种周报、会议记录等。这些也是配置项吗?很显然,它们不符合以上特点,那么这些工作产品就不属于配置项的范围,但有时在进行CMMI实施时,项目组也往往会将其一并进行管理。 既然配置项是“配置管理”的基础,那么大家还需要给每一个配置项起一个唯一标识,这样才能够做到清晰不混淆。举个例子:“今晚大家一起出去聚餐,到中山一路的‘东北人’吃饭”,这里的‘东北人’餐厅是特指中山一路的,因此这唯一确定了就餐的地点;“我们订的包房叫‘靠山屯’”,这里具体的就餐房间也被唯一标识了出来,是‘靠山屯’而不是‘瘦狗岭’;服务员拿来的菜单上每个菜的名字也是唯一的,这样送上来的菜就不会重样,当我们吃完结账的时候就不会算错价钱,这些都是典型的唯一标识配置项的例子。假如配置项没有被唯一识别出来,那么大家去聚会就会找错地方,点的菜也可能会上错,结账的时候也可能会算错,那么将是一团糟,因此在项目管理中一定要将识别配置项重视起来。配置项本身的变化可以使用“版本管理”对其进行控制。通常像大家的程序代码已经被各种版本管理工具进行控制,但大家千万不要忘记对文档也要进行版本管理。 

(二) 软件的基线

        前面提到“配置项”的其中一个定义就是“配置项可能会随着项目的开展而发生变化”,那么单个的配置项是通过版本管理工具进行管理的,每次变化都会产生一个新的版本号。但是对于一组配置项该如何进行管理呢?根据CMMI配置管理过程域的SP1.3中的要求,这就需要使用基线管理的方法。简单来讲就是将一组配置项拿“线”穿起来作为一个整体进行统一命名,并将其作为一个新的配置项进行管理。在上面聚餐的例子中,最后结账时的账单就是一条基线,它将所有菜肴集中起来一起买单。

原文转自:http://www.ltesting.net