项目量化管理

Quantitative Management

联系我们 |   Contact Us

北京随济科技有限公司
地址:北京石景山区实兴大街30号中关村科技园3号楼8层8055 邮政编码:100041
联系电话:010-87611052
E-mail:info@suiji.com.cn
功能点交流QQ群:222582410

当前位置:首页>项目量化管理>项目管理

变更与配置管理

2008-3-13  点击率:10845
    软件配置管理是在软件的整个生命周期中,对软件及其相关产品的变更进行管理,以提高效率、避免混乱,有效保护软件资源的一项技术。软件配置管理技术,是支持团队化的软件开发、规范化团队开发下团队成员行为的一项技术。它可以有效地记录相关于一个某一特定的软件产品的全部配置项(包括构成一个软件产品的全部代码、文档、数据和测试用例等)的历史变更轨迹,控制变更行为,使变更在一种受控的状态下进行,以保证变更的正确性。软件产品的开发工作及开发完成后的维护工作都是对软件的不同的配置项的不断的变更的过程,变更地越频繁越容易引起混乱,所以必须对团队模式下的变更进行有效管理。
 
    企业的软件资产(包括软件、文档以及数据等)是企业的一项重要投资。这些资产的变更由于会对企业的主要业务造成很大的潜在影响,因此必须予以严格的科学管理。软件变更与配置管理(CCM)可以记录并维护软件资产及其相互关系,并对这些资产如何变更进行管理和控制,这种控制是为了保障资产的质量和可用性。
 
    随着计算机应用技术的发展,应用越来越复杂,变更控制问题进一步加重。但软件开发人员把更大的优先权放在开发程序而不是对变更进行存档这一烦琐的任务上,从而忽略了对变更的妥善管理,造成了非常严重的后果。最为直观的影响是软件开发机构绝大部分的人力资源(粗略估计在80%以上)开销在维护上。这对于软件生产机构的软件生产力和软件产品的质量都造成了。因此,对于大规模的复杂的应用,进行有效的变更与配置管理是非常必要的。
 
    变更与配置管理相关技术的发展,经历了一个逐渐认识、逐步完善的发展阶段,随着技术的不断变化,管理方法和相关的管理技术、管理重点也出现了一系列的变化,下面就一些典型的技术进行概要的介绍:
 
版本管理:
    版本管理的主要功能是对所管理的对象集中受控,需要对受控的对象进行编辑的时候需要将对象检出系统,在开发环境中经过修改后再检入到系统中,在检入时系统将比较检入的对象与检出的对象之间是否存在不同,当存在不同时,系统将以一个新的版本号对变更进行标识,所标识的变更将被以增量的方式存储下来。在后续的技术发展中,又在版本主干的基础上增加了分支及归并的支持,以支持对受管理的对象的并发的修改工作。因此,对于一个完整的版本管理系统,应当能够提供检出、检入、分支的创建与分支的归并等功能。通过这些功能,可以实现对受控对象的变更的历史变更轨迹的记载和变更的控制和管理,同时支持团队的并发工作的需求。
 
变更请求管理:
    通过版本管理功能,只能纪录是谁(Who)、在什么时间(When)、对什么对象做了变更(What),而要做到对变更的全面完整的管理,非常重要的一点就是要纪录每个变更所发生的原因(Why)。纪录一个变更所发生的原因有利于管理者检查每个变更是不是在经过授权的条件下、基于合理的原因而发生的,这对于管理在开发和维护的过程中对产品的变更非常重要。同时,对原因的管理也可以成为开发工作管理的一种机制。
 
    这里首先澄清变更请求的概念。无论是软件产品中存在软件产品中存在Bug,还是软件产品存在功能不足,可以将这些现象统称为软件产品中存在缺陷,这些缺陷就是软件产品变更的基本原因。变更请求针对的就是这些缺陷。软件产品中存在的缺陷既然是变更的原因,那么对于变更的管理就可以上升到对于缺陷的追踪管理,要对缺陷的解决的全程进行追踪管理,并管理缺陷所关联的受控对象的相关变更。
在原有的技术上,往往版本管理与变更请求管理是两个独立的系统,需要进行必要的集成才能做到变更请求与相关的产品变更的紧密关联。
 
过程驱动:
    过程驱动是近年来出现在软件配置管理中的一项新技术,简而言之,它是一种机制,通过这种机制可以帮助企业在开发和产品维护过程中去自动化地强化变更管理流程(Change Control Procedure)的实现。这一点非常有利于软件过程的稳定性和可重复性,对于软件产品的质量也有很大的帮助。近年来,软件配置管理技术的一个重要的发展方向就是注重与软件过程之间的结合,能否将产品与变更控制过程结合得更为紧密将决定软件变更控制流程能否在软件生产过程中高效地实现。
  
    过程驱动的机制首先可以支持过程根据定义的情况被自动化地实现,自动化的意义除了高效外,更重要的一点是可以稳定地实现控制过程,做到过程的稳定、可重复;过程驱动的另外一个要点是要支持变更控制流程的灵活定义,每个开发机构可以根据自己的管理办法定义自己的变更控制流程,并对过程进行管理。
 
发布管理:
    软件产品成功开发后会出现发布管理的问题,一般来讲,一个产品经过长时间的多个用户的使用,会出现很多发布的版本,这些不同版本在不同的最终用户处被同时的使用着,这对于软件生产组织就提出了一个要求,对这些用户必须能够提供支持,这就要求在任何的时刻都能够重构过去发布过的任何一个版本,这只有通过对产品发布的科学管理才能够做得到。特别是对于过去采用结构化程序设计方法所开发出来的软件产品,发布管理非常的必要。
 
    在配置管理系统中,全部的产品的组成部分(包括文档、代码、数据文件、测试用例等)被做为软件资产统一地存放在软件资产库中,对于每个发布的版本必须保存一份发布配置纪录,并且遵循规范的发布过程,这就为重构历史发布版本提供了可能。
 
变更与配置管理:
    变更与配置管理实际上是上面所谈及的各项管理的一种有机结合,在早期的软件管理系统中,管理的重点非常倾向于对产品的配置的管理,但随着软件技术的发展,变更的管理越来越成为管理的重点,其中更为注重的是对变更控制流程的强化。
 
    在软件配置管理的概念中,其中也涉及到了变更控制流程的概念,非常具有代表性的就是软件资产三级库的概念,也称为配置管理三环境。这个概念是这样的,在配置管理系统内部必须提供支持开发、测试和产品管理的三个基本环境,传统的实现方式是建立三个物理上分立的存储库。第一个叫做开发库,提供给开发人员进行任意的产品变更;第二个叫做受控库,在受控库中任何人不允许做变更,只提供给测试人员进行测试;第三个叫做产品库,产品库只允许产品管理人员从库中提取产品发布。在三个库之间需要有产品的迁移,这些工作都是在特定的授权下由专门的人来进行的。
 
    在过程驱动的模式下,这些产品生命周期中的控制都可以被自动化地实现,并且可以避免认为的疏忽所引入失误的可能性。在当前的应用开发环境下,由于开发的规模日益扩大,因此变更过程的管理被提到了一个更高的位置上。
 
    在没有自动化配置管理解决方案的任何软件开发机构要处理变更请求均将发生错误、延迟和过度的成本消耗。信息系统机构正面临提供更高质量产品以及更短开发生命周期和更简便维护的日益压力。因此,配置管理的真正挑战就是在不影响生产力的情况下将控制引入应用软件的开发和维护过程。通过有效地进行软件的变更和配置管理,可以帮助软件开发团队提高软件开发过程的稳定性,并保证软件产品具有良好的可维护性和可重用性,为当前形势下要求的快速地建立高质量的应用提供必要的支撑。