今天的分享内容是软件配置管理,阅读了《软件质量管理指南》一书中的软件配置管理部分,结合实际的项目经验,来说说自己的看法。
PS:本文所述的软件配置管理,主要指软件研发团队的配置管理,即代码管理工具,不是运维的服务器配置管理。
软件配置管理的背景?
软件是由代码组成的可运行的逻辑产品,而稍微复杂一点的软件,都不可能是由一个人独立完成的,一定是多人协作,每个人负责不同的部分,共同完成的。像QQ,淘宝,高峰都达到上万人一起协作,这上万人都在一个产品上开发,如何保证其有序开展,不相互打扰呢? 这就需要科学的配置管理方法了。
软件配置管理能够给大家带来什么益处?
1,分支以及冲突解决机制,让不同团队之间的协作更高效;
2,文件可回溯性,让埋雷的人无所遁形;
3,配置计划和基线管理,变更管理提供有力支撑;
什么是软件配置管理?
CMMI中关于软件配置管理的定义。
配置管理(Configuration Management,CM)的目的在于使用配置识别、
配置控制、配置状态记录与报告以及配置审计,来建立并维护工作产品的
完整性。
银行中的保险柜,可以理解为配置库,而保险库中贵重的东西,比如金钱,古董,文件等,就是配置项,而保险柜的安全机制,就是配置管理的权限控制。
软件配置管理管什么?
软件开发项目过程中的计划,需求方案,设计方案,源码,测试用例,总结,会议纪要,审计报告,也就是软件开发的所有过程资产和最终沉淀资均在软件配置管理的范畴内。
如何进行软件配置管理?
目前业界内的配置管理工具越来越成熟,比如早期的CVS, SVN, ClearCase,TFS, Git等等,每个工具的操作细节存在一定的差异,但是基本原理差不多,通过这些工具,更高效地完成以下事项:
- 制定配置管理策略;
- 实施、维护配置管理的环境;
- 研发团队在指定的配置库以及分支上开发和测试;
- 基线制定;
- 版本发布;
- 配置审计;
软件配置管理的趋势?
随着软件行业发展趋于成熟,软件配置管理工具越来越标准化和自动化。尤其是Devops开发模式将研发,测试,运维的工具链打通,使得软件构建、测试、发布更加快捷、频繁和可靠。
软件配置管理工具作为Devops工具链的一环,软件开发的底层支撑,其稳定性和可靠性对软件行业供应链的影响不可小觑,国内仍需做好此类工具研发的技术储备以及人才储备。软件行业生态健身,仍任重而道远,一起努力。
,