[原创]软件配置管理
[原创]软件配置管理
一 什么是软件配置管理?
以下是一些标准定义:(1)《ISO/IEC 12207(1995)信息技术--软件生存期过程》:配置管理过程是在整个软件生存期中实施管理和技术规程的过程,它标识、定义系统中软件项并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、装载和交付。
(2)《ISO 9000-3(1997)质量管理和质量保证标准--第3部分:ISO 9001:1994 在计算机软件开发、供应、安装和维护中的使用指南》:软件配置管理是一个管理学科,它对配置项的开发和支持生存期给予技术上和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。
(3)巴比齐(W.Babich):软件配置管理能协调软件开发,使得混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效地提高生产率。
(4)《GB/T 11457(1995)软件工程术语》:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。
总结配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。
二 软件配置管理的主要内容:
1、版本管理
1.1 软件配置项(software configuration item):
含义:在软件生存周期内所产生的各种应纳入管理范围的系统构成成分。
包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等(配置管理的资源对象)。
形态:在通常的软件配置管理系统中,最基本的软件配置项是以磁盘文件的形式进行存放和管理的。
1.2 版本管理是配置管理的基础:
应当记录每个软件配置项的所有历史记录,并记录该软件配置项由何人创建,何人在何时因何原因进行了修改等信息,以及对这些软件配置项版本的进行的检索和信息查询等活动。
1.3 版本树:
可以对软件系统的不同演化方向进行管理。
1.4 软件配置项的版本管理——版本数
记录一棵带有时间标记的配置项版本演化的树结构信息。
2、配置支持
2.1 软件配置(software configuration):
所有软件配置项在不同时期的组合、结构与关系定义。
2.2 系统建模
通过定义配置来表示整个系统或其中的子系统。
2.3 依赖性追踪
例如:查找与某个源文件版本对应的设计文档的版本。
2.4 影响分析
分析对系统一个部分的修改可能影响哪些其它部分。
3、变化管理
3.1 变化:软件版本演化的来源与过程
来源:需求变化、增加功能、修改错误 ……
生命周期:请求、审批、实施、验证、审核、结束。
3.2 变化控制
记录和控制对软件配置项的每一次修改。
3.3 变化跟踪
一个变化生命周期进行到哪一步了?
如果一个已经改掉的bug又出现了,怎样找出原因。
3.4 变化传播
帮助将对产品一个版本的修改传播到其它版本中。
4、构造管理(Build)
4.1 系统的构造和重新构造(Build)
帮助开发人员正确和快速地构造和重新构造产品的任何版本。
4.2 软件发布管理(Release)
为不同的用户提供不同的版本,避免其中发生混乱。
4.3 软件部署管理(Deployment)
帮助在分布式环境中部署整个系统。
5、过程支持
5.1 过程控制
5.2 预定义的过程模版和可剪裁的过程实例
可定义过程,并保证过程中定义的每一步均由授权的人员按正确的顺序执行。
5.3 过程支持中的关键概念
包括:角色、工作组、任务、触发器机制等。
6、团队支持
6.1 工作区管理
不同的开发人员拥有独立的不相互影响的工作空间。
6.2 并行开发
支持多个开发人员同时开发一个项目。
6.3 远程开发
开发人员在物理上可以分布在相距较远的位置上。
7、状态报告
依赖性报告
影响报告
构造报告
变化状态报告
差异报告
历史报告
访问控制报告
冲突检测报告
8、审计控制
8.1 验证软件配置管理过程
8.2 验证系统管理的所有配置项的完整性
8.3 基本的审计控制是记录配置管理过程中执行的所有活动,并提供检索机制->日志