首页 . 理学 . 计算机科学技术 . 软件工程 . 软件工程管理 . 软件配置管理

软件配置管理

/software configuration management; SCM/
最后更新 2024-12-05
浏览 137
最后更新 2024-12-05
浏览 137
0 意见反馈 条目引用

一种按规则实施的管理软件开发和维护开发过程及其软件产品的方法,目的是使软件开发过程中的错误达到最小,最大程度地提高生产效率。

英文名称
software configuration management; SCM
所属学科
计算机科学技术

软件配置管理是人们经过长期的探索,通过总结以往的经验教训而逐步形成的一套科学管理规范。软件配置管理作为贯穿于整个软件生存周期的一项技术,其主要功能是控制在软件生存周期中软件的改变,减小因改变所造成的影响,确保软件产品的质量。

配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准“AFSCM375-1,CM During the Development & Acquisition Phases”。

而软件配置管理概念的提出则是在20世纪60年代末70年代初,当时美国加利福尼亚大学圣巴巴拉分校的L.普雷瑟(Leon Presser,1940~ )教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为Change and Configuration Control的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近一千四百万次修改)的一个经验总结。L.普雷瑟在1975年成立了一家名为SoftTool的公司,开发了配置管理工具:Change and Configuration Control(CCC),这是最早的配置管理工具之一。

随着软件工程的发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到21世纪初提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,软件配置管理已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批产品,如:ClearCase;Perforce;CVS;Microsoft VSS;Hansky Firefly等。在国外已经有50多年历史的软件配置管理,在中国的发展却始于21世纪,发展历程比较短。但是通过专家们的介绍,可以感受到,国内的软件配置管理已经取得了迅速发展,并得到了多数软件公司的普遍认可。

配置管理主要包括配置支持、版本控制、变更控制、构造支持、过程支持、团队支持、报告/查询、审计控制等内容。

配置支持。配置是一组有共同目的的中间软件产品,其中每个中间软件产品称为一个配置项。软件配置管理支持用户建立各配置项之间的各种关系,并对这些关系加以维护。维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。

版本控制。版本控制是软件配置管理的基本要求,它可以保证软件在任何时刻可以恢复到之前任何一个历史版本。版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助。版本控制也是支持并行开发的基础。

变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等),这些信息有助于追踪出现的各种问题。

构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程。软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统。如果和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。

过程支持。过程详细描述了各角色人员在整个软件生存周期中如何使用整个系统。过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,现在软件配置管理也开始提供这部分功能。目前的软件配置管理工具对过程的支持还不够,支持方式的差别也很大。许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都遵照这个模型的规定进行。

团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。

报告/查询。软件配置管理可以向用户提供配置库的各种查询信息,主要包括依赖关系报告、变化影响报告、Build报告、版本差异报告、历史报告、访问控制报告、冲突检测报告。实际上许多软件配置管理工具的此项功能是分散在各种相应的功能中的。

审计控制。软件配置管理通过审计控制来验证软件配置管理过程,以保证配置库中所有配置项的完整性。简单的审计控制是记录软件配置管理工具执行的所有命令,复杂的审计控制还包括记录每个配置项的状态变化。

其他功能。除了以上的主要功能外,软件配置管理还可以提供权限控制、人员管理和配置库管理等,这些功能主要是为软件配置管理实现以上这些功能提供基础保障。

软件产业环境已经发生剧烈变化,竞争也更加激烈,发展速度也更加快速。为了应对这一变化,软件企业也在加倍重视其软件研发过程的管理水平。这使得软件配置管理的地位有了显著的提高,受到了更多的重视。软件配置管理市场突出的变化和趋势如下三点内容:①在软件配置管理市场,单一的软件配置工具厂商已经很难生存,各大厂商都在极力完成自己的ALM套件,以提升整体能力。例如,国际商业机器(IBM)公司虽然已经有了之前的整体平台,但近几年还收购了BuildForge这样的持续集成、构建产品,从而进一步充实自己的实力;宝蓝(Borland)公司虽然有了较完备的ALM产品线,但在测试领域一直存在弱项,因此,也收购了全球知名的测试工具厂商Segue,并收购了持续集成产品Gauntlet,从而显著提升自身能力;微软(Microsoft)公司也推出全新的Team System产品等。②软件开发各阶段的界限正变得越来越模糊,需求、设计、开发、测试、部署等阶段之间由于迭代开发方法的引入而变得愈加紧密,这就要求软件配置管理工具具备很强的集成能力。一方面,优秀的配置管理工具应当尽量能与需求、设计、开发、测试等过程工具实现很好的集成。在开发环境上,甚至能实现完全地嵌入到开发环境中。另一方面,除了自身提供强大的集成功能外,配置管理工具还要具有强大的SDK支持、命令行等二次开发能力,辅助实现定制的集成能力。③在提供愈发强大功能的同时,软件配置管理工具也要尽可能地简化操作,降低管理成本,从而吸引企业进行购买。

  • 董越.未雨绸缪:理解软件配置管理. 2版.北京:电子工业出版,2013.
  • 刘文红.CMMI项目管理实践.北京:清华大学出版社,2013.
  • 王安生.软件工程化.北京:清华大学出版社,2014.
  • 董越.软件集成策略——如何有效率地提升质量.北京:电子工业出版社,2013.
  • 李娜,钱乐秋,赵文耘,等.可变粒度及面向过程的软件配置管理系统.计算机工程,2006,32(1):64-67.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!