技术开发 频道

CMMI之配置管理

【IT168 技术文章】

    在笔者进行CMMI咨询时,当问及软件技术人员什么是“配置管理”的时候,很多人的回答就是“版本管理”,而且很多人都会说出各种各样的版本管理工具,例如:VSS、TFS、CVS或SVN等等。但这样的回答是不正确、不全面的。版本管理只是软件配置管理的一个小的部分,在CMMI中配置管理分为 “配置项和基线的管理”、“变更控制管理”和“基线的完整性”三个部分。

    凡是提到软件“配置管理”(Configuration Management),我会先给它下个定义:“它是软件工程的核心部分,是CMMI中最基础的PA”。为什么它会如此重要呢?首先配置管理的工作就是确保软件项目时时保持条理清晰,随时想要任何工作产品都可以迅速找到,并且工作产品的内容不会出错,这也就是大家常讲的可回溯性、完整性和正确性;其次软件配置管理活动始终贯穿整个软件项目的生命周期。因此说软件配置管理是最基础、最核心的管理工作一点都不夸张。

    (一) 软件配置项

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

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

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

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

    4、一些工作产品之间的关系非常紧密,一个变化其他的就会受到影响。

    通过以上定义大家会发现项目中的很多东西都属于配置项,例如:各种需求文档、设计文档等都会经常变更;程序的代码是大家共享的,而且代码文件之间又有较高的相互依赖性。

    那大家也许会发现还有一些工作产品不符合以上定义,例如:各种周报、会议记录等。这些也是配置项吗?很显然,它们不符合以上特点,那么这些工作产品就不属于配置项的范围,但有时在进行CMMI实施时,项目组也往往会将其一并进行管理。

    既然配置项是“配置管理”的基础,那么大家还需要给每一个配置项起一个唯一标识,这样才能够做到清晰不混淆。举个例子:“今晚大家一起出去聚餐,到中山一路的‘东北人’吃饭”,这里的‘东北人’餐厅是特指中山一路的,因此这唯一确定了就餐的地点;“我们订的包房叫‘靠山屯’”,这里具体的就餐房间也被唯一标识了出来,是‘靠山屯’而不是‘瘦狗岭’;服务员拿来的菜单上每个菜的名字也是唯一的,这样送上来的菜就不会重样,当我们吃完结账的时候就不会算错价钱,这些都是典型的唯一标识配置项的例子。假如配置项没有被唯一识别出来,那么大家去聚会就会找错地方,点的菜也可能会上错,结账的时候也可能会算错,那么将是一团糟,因此在项目管理中一定要将识别配置项重视起来。

    配置项本身的变化可以使用“版本管理”对其进行控制。通常像大家的程序代码已经被各种版本管理工具进行控制,但大家千万不要忘记对文档也要进行版本管理。

    (二)软件的基线

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

    (三)配置库的划分

    配置库就是指各种版本管理工具所创建的用于管理配置项的数据库,也就是大家常用的VSS或CVS等工具创建的数据库或文档库。笔者在以往进行的CMMI咨询时常常发现项目组对配置库的目录结构没有进行功能的划分,为了确保项目永远不会出现混淆,简单来说按照权限应该将配置库划分为三大类,如图1-1所示:

    1、开发库
    2、受控库
    3、基线库

图1-1 配置库示意图

0
相关文章