CMMI知识科普连载——配置管理

知识库 cmmirz 7年前 (2017-04-22) 2024次浏览 0个评论

CMMI知识科普连载——配置管理

什么是配置管理

 

配置管理CM(Configuration Management)是对软件生存期内各阶段的文档、实体及最终产品的演化和变更进行管理

配置管理目的:

是通过执行版本控制、变更控制等规程,以及使用配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护

 

配置管理的工作内容:

配置管理策划

建立配置库

识别配置项

建立/发布基线

配置状态报告

配置审计

变更控制管理

 

为什么需要配置管理

 

软件开发过程中面临的困境

  • 缺乏对用户需求进行有效的管理和追踪的工具
  • 产品升级和维护所必需的程序和文档非常混乱
  • 代码可重用性差,从而不能对产品进行功能扩充
  • 开发过程中的人员流动经常发生
  • 由于管理不善,致使未经测试的软件加入到产品中
  • 用户与开发商没有有效的产品交接界面

 

从现代软件开发的特点看

  • 软件复杂度高
  • 众多开发人员参与同一软件开发
  • 文件及相关资源种类繁多

(源代码、目标代码、web相关内容、文档、模型和设计、需求、测试脚本)

  • 同一软件有多个发布版本
  • 多种开发和应用平台
  • 在不同地点开发

CMMI知识科普连载——配置管理

软件开发经常面临下列问题

同时更新

当两个或更多的角色分别对同一个工件进行操作时,最后进行变更的那个角色将破坏前一个角色的工作。如果系统不支持“同时更新”,会导致一系列的变更,使开发流程减慢速度。如果使用“同时更新”,那么将面临检测更新是否已同时进行的挑战,同时要在并入变更时,解决任何与集成有关的问题。

 

双维护

当保留多个相同的软件工作产品时,其中一个发生变化,其他的也需要跟着发生变化。例如:当在诸如软件需求规格说明书的软件产品中发现了一个缺陷,那么所有的拷贝都需要变更来保持一致。这属于同时更新的变异。

 

共享代码和工作产品的维护

由多个开发人员共享的工件中,某个问题得到了纠正,但有些开发人员并未收到变更通知

 

公共代码

在大系统中,当公共的程序功能修改后,所有的用户都需要被告知。如果没有一个有效的代码管理系统,就没办法确保发现和通知每一个用户

 

多版本

多数大程序是以演进式发布版的方式开发的

  • 一个发布版本可能为客户所用
  • 另一个发布版本正在测试
  • 第三个发布版则尚在开发之中

如果这些版本的任何一个版本发现了问题,则需要将修复方案通报给所有的版本。除非对变更进行慎重的控制和监测,否则可能会引起混乱,并且由于混乱而需要进行修复和返工,而这往往成本很高

 

以上这些问题都应通过配置管理来解决

 

配置管理作用

  • 修订历史管理:增量存储,保留文件修改轨迹
  • 产品版本管理:对应用程序系统在版本级的管理
  • 构建管理:允许为建立程序有可重用的定义
  • 变更管理:对变更严格的加以控制和管理,保持修改信息,并使其精确、清晰。
  • 状态报告:对开发过程做出系统的记录

 

 

常用配置管理工具

>>>>VSS(Visual Source Safe)

 

优点:提供了还原点和并行协作功能,使程序开发能够同时处理软件的多个版本

缺点:功能和安全性较弱,只对windows平台进行支持

建议:作为项目配置管理入门时采用的工具

 

 

>>>>CVS(Concurrent Version System)

 

优点:拥有VSS所有的功能,支持并发的版本管理代码开源,可以在任何操作系统和网络环境下运行,CVS服务器有自己专用的数据库,不受限于局域网,安全性和版本管理功能较强,可以实现异地开发的支持

缺点:安装和使用多采用命令行方式,学习曲线高,不提供对变更管理的功能缺少升级和维护

建议:小型团队可以采用CVS进行管理

 

 

>>>>SVN(Subversion)

 

优点:开放源码的多用户版本控制系统,支持非ASCII文本和二进制数据,支持本地访问或通过网络访问的数据库和文件系统存储库,除提供常见的比较、修补、标记、提交、回复和分支功能外,增加了追踪移动和删除的能力

建议:适用于Web开发

 

 

>>>>ClearCase

 

优点:应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理、构建管理、过程控制。可以跨越UNIX和Windows NT平台被共享

缺点:应用学习曲线和学习成本都很高,需要集成ClearQuest才能完成完整的配置管理功能

建议:用于大型的团队开发和建立组织级的配置管理体系

 

 

>>>>StarTeam

 

优点:很好地平衡了功能性、易用性和安全性,集成了版本管理、变更管理和缺陷管理

最大的特点是按照项目组织配置库

StarTeam2008中提供了对Web访问的支持强大的用户和权限管理功能

建议:适用于大型团队开发和建立组织级的配置管理体系

 

 

配置管理活动内容

CMMI知识科普连载——配置管理
制定配置管理计划

  • 时机:项目启动之初项目经理制定了项目总体计划后,配置管理员根据项目特征及总体计划,制定配置管理计划。
  • 批准:配置管理计划须经CCB负责人(通常是项目经理)审批,或同项目总体计划一起经过评审之后方可实施。
  • 内容:人员角色与职责、软硬件资源、配置项计划、基线计划、配置库备份计划、版本控制规则、变更控制规则、审批

 

建立配置库

配置库种类

  • 开发库:用于保存开发人员当前正在开发的配置实体,包括新模块/文档/数据元素或进行修改的已有元素是软件工程师的工作区,由工程师控制
  • 受控库:存放经过验证后的产品和各种广泛使用的已发布的基线用于管理当前基线,以及控制对基线的变更用于创建集成、系统和验收测试、以及对用户发布的构建版由配置管理员管理,必须有适当的权限授权变更
  • 产品库:用于存放对外发布的产品由配置管理员管理

今后信息部的配置库建设可能会按照三库的模式来建设,产品的上线发布将把控得更为严格。

CMMI知识科普连载——配置管理

识别配置项

配置项主要有两大类:

  • 属于产品组成部分的工作成果。例如源代码、需求文档、设计文档、测试用例等等
  • 管理过程中产生的文档。例如各种计划、监控报告等等,这些文档虽然不是产品的组成部。分,但是项目管理的必要文档
  • 每个配置项可用一组信息唯一地标识
  • 确保配置项得到正确的识别,便于管理、检索和使用
  • 配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等

 

建立/发布基线

基线:一组经过正式评审的,作为下一阶段工作基础的配置项

  • 基线中的配置项被“冻结”了,不能再被任何人随意修改
  • 其作用是使连续的工作在这些点上断开,以便于检查和肯定阶段成果
  • 基线需要定期审核,以验证与文档的一致性
  • 基线通常对应于开发过程中的里程碑
  • 一个产品可以有多个基线,也可以只有一个基线
  • 对基线的更改必须遵循变更控制规程
  • 基线的主要属性有:名称、标识符、版本、日期等
  • 通常将交付给客户的基线称为一个“Release”;为内部开发所用的基线则称为一个“Build”

配置状态报告

配置状态统计的用途:管理人员可通过状态信息的统计,监控项目的进展预见多发问题的位置及根源辅助管理人员采取有效的措施,防止项目失去控制。

配置状态记录尽可能考虑自动化实现。

记录内容包括:变更日志、处理日志、配置状态报告。

  • 变更日志包含系统中所有与配置变更相关的数据信息

CMMI知识科普连载——配置管理

  • 处理日志包含所有发生在配置项上的处理,并按时间顺序记录

CMMI知识科普连载——配置管理

  • 配置状态报告用于总结系统中所有配置项的状态

CMMI知识科普连载——配置管理
配置状态报告示例:

CMMI知识科普连载——配置管理

配置审计

目的:确认软件系统是否与文档说明书中描述的配置项相符,保证所有人员(包括CM、CCB、PM、DEV等角色)都遵守配置管理规范

执行人员:一般由QA角色的人员执行,或由CM配合QA执行

审计对象:项目的主要配置项

审计时机:产品基线发布前,实施功能审计(FCA)和物理审计(PCA);软件开发周期中各阶段结束时进行;产品最终发布前实施审核

 

配置变更管理

配置变更和所有变更管理过程类似,都应遵循变更流程,对变更实施评审和确认

CMMI知识科普连载——配置管理

 

 

CMMI对配置管理的要求

 

CMMI知识科普连载——配置管理

 

>>>>目标:SG1建立基线

 

实践:

SP1.1识别配置项

SP1.2建立配置管理系统

SP1.3创建或发布基线

 

 

>>>>目标:SG2跟踪并控制变更

 

实践:

SP2.1跟踪变更请求

SP2.2控制变更

 

 

>>>>目标:SG3建立完整性

 

实践:

SP3.1建立配置管理记录

SP3.2执行配置审计

 

以上活动过程都要体现在 配置管理规范和实际开发过程的配置管理当中。

 

 

– END –

本文是“东航信息部IT百分百”原创,转载需注明出处

转载须保持以上所有内容完整。

文丨质量控制部

 

 

 


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CMMI知识科普连载——配置管理
喜欢 (3)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址