本文详细介绍了软件配置管理的概念、内容、模式及其重要作用,包括版本控制、变更控制、工作空间管理和配置审计等核心活动。讨论了成熟配置管理工具的特征,如权限控制、版本控制和流程管理,并列举了SourceSafe、CVS、ClearCase等代表性工具的优缺点。软件配置管理的目标是管理软件产品,通过良好的配置管理提高开发效率、软件质量和用户信心。 摘要由CSDN通过智能技术生成

一、软件配置管理(SCM)

1. 软件配置管理概述
  1. 软件配置管理,又称软件形态管理、或软件建构管理,简称软件行管,界定软件的组成项目,对每个项目的变更进行管控,并维护不同项目之间的版本管关联,以使软件在开发过程中任意时间的内容都可以被追溯;
  2. 软件配置管理内容:
    1️⃣版本控制、2️⃣变更控制、3️⃣过程支持;
2. 软件配置管理模式
  1. 恢复提交模式 :是一种面向文件单一版本的软件配置模式;
  2. 面向改变模式 :考虑各组成单元的改变;
  3. 合成模式 :基于恢复提交模式的基础上,引入系统模型概念用以描述整个软件产品的系统结构;
  4. 长事务模式 :基于恢复提交模式的,引入工作空间的概念,各个开发人员在各自独立的工作空间下与其他用户相互隔离,独立地对软件进行修改。
3. 软件配置的作用
  1. 作用:能覆盖软件开发和维护的各个方面,同时对软件开发过程的宏观管理;
  2. 支持作用:良好的配置管理能使开发过程有更好的可预测性,使软件系统具有可重复性,使用户和主管部门用软件质量和开发小组有更强的信心;
  3. 最终目标: 管理软件产品;
  4. 好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的结合,使整个开发乐团像一个交响乐一样和谐而又错杂的进行。
4. 软件配置管理过程(6个活动)
  1. 配置项识别
    1️⃣配置项定义: 软件过程的输出信息可以分为三个主要类别:计算机程序、描述计算机程序的文档、数据;这些项包含了所有软件过程中产生的信息;
    2️⃣配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容;
    3️⃣基线:已经正式通过复审批准的某规约或产品,他因此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变;
    4️⃣在软件的开发流程中,把所有需加以控制的配置项分为基线配置项和非基线配置项两类,基线配置项包括所有的设计文档和源程序等,非基线配置下,可能包括项目的各类计划和报告;
  2. 工作空间管理:在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下;
  3. 版本控制:是核心功能,所有至于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性;
  4. 变更控制:
    1️⃣提出变更请求
    2️⃣ CCB审核并决定是否批准
    3️⃣修改请求分配人员为,提取SCI,进行修改
    4️⃣复审变化
    5️⃣提交修改后的SCI
    6️⃣建立测试基线并测试
    7️⃣重建软件的适当版本
    8️⃣复审所有SCI的变化
    9️⃣发布新版本
  5. 状态报告:根据配置项操作数据库中的记录来向管理者报告软件开发活动的进展情况,定期进行,尽量通过CASE工具自动生成。
    配置状态报告内容: 1️⃣配置库结构和相关说明;2️⃣开发起始基线的构成;3️⃣当前基线位置及状态;4️⃣各基线配置项集成分支的情况;5️⃣各私有开发分支类型的分布情况;6️⃣关键元素的版本演进记录;7️⃣其他应予报告的事项;
  6. 配置审计:作为变更控制的补充手段,该活动由SQA人员单独执行;
    主要任务:1️⃣制定项目的配置计划;2️⃣对配置项进行标识;3️⃣对配置项进行版本控制;4️⃣对配置项进行变更控制;5️⃣定期进行配置审计;6️⃣向相关人员报告配置的状态;

二、软件配置管理工具的功能

1. 权限控制:减小误操作的可能性;
  1. 核心概念: 行为主体(用户)、行为客体(项目和项目成员)、行为(特定操作);
2. 版本控制:是基本要求;
  1. 保证在任何时刻恢复人一个版本,他是支持并行开发的基础;
  2. SCM工具记录项目和文件的修改轨迹,跟踪修改信息;
  3. SCM工具可以对同一文件的不同版本进行差异比较;
  4. SCM工具内部对版本的标识;
3. 增强的版本控制:快照和分支是以基本的版本控制功能为基础;
4. 变更管理:在整个软件生命周期中对软件变更的控制;
  1. 变更管理有效地支持了不同开发人员之间,以及客户和开发人员之间的交流,避免了无序和各自为政的状态;
5. 独立的工作空间
  1. 沙箱为并行开发提供了独立的工作空间,在有的SM工具中称为工作目录;
6. 报告
  1. 使项目经理能够随时了解项目进展情况;
7. 过程自动化
  1. 让一个事件触发另一个事件产生行为,来实现过程自动化;
  2. 缩短任务事件,提高生产率,规范了团队开发的过程,减少了混乱;
8. 管理项目的整个生命周期
  1. 始于项目开发之初,终于产品淘汰之时;
9. 与主流开发环境的集成
  1. 从集成开发环境的角度看,版本控制是其一项的新功能;
  2. 从SM工具的角度看,集成开发环境充当了杀伤的角色;

三、成熟软件配置管理工具的特征

1. 软件配置管理工具的发展
  1. 第一代:基于文件,以版本控制、支持Check Out /Check In 模型的简单分支为主要特征;
  2. 第二代:基于项目库,支持并行开发团队协作以及过程管理;
  3. 第三代:全面结合CM管理等各个软件开发环节的软件配置管理整体解决方案;
2. 成熟软件配置管理工具的特征
指标 特征
配置项管理 版本控制、配置管理、并行开发支持
构建与发布管理 能利用流行的构建工具
工作空间管理 能自动跟踪工作空间中所有类型的变更、能应用不同配置项填充工作空间、工作空间既允许隔离又允许更新
流程管理 不同类型的对象都应具备流程定制能力、流程的范围可定制、支持测试与发布流程
分布式开发的支持 负载均衡
与其他工具的集成能力 变更请求工具、开发工具、其他CASE工具、命令行、SDK
易用性、易管理性 报告能力架构的弹性

四、典型软件配置管理工具

1. SourceSafe(微软公司)
  1. 支持所有文件格式;
  2. 简单易于,一学就会;
  3. 局限性:只能在Windows下运行、适合局域网内的用户群;
2. CVS
  1. 支持所有的sourcesafe功能,且支持并发的版本管理,功能和性能高出一筹;
  2. 用JAVA编写,支持任何操作系统和网络环境下运行;
  3. 有专用数据库,不受限于局域网,安全性更好
  4. 维护任意文档的开发和使用;
  5. 支持文本类型和二进制裂隙;
  6. 缺点:客户端软件五花八门、良莠不齐;
3. ClearCase(Rational公司)
  1. 功能强大价格昂贵的配置管理软件;
  2. 应用于复杂产品的并行开发、发布和维护,功能划分为版本控制、工作空间管理、构造管理、过程控制;
  3. 特殊效益:增加团队效率、增加个人效率、简单的维护和提高对客户的支持、快速准确的产品发布、减少错误发生、硬件资源的优化、提高项目协调和编制、提高产品质量、更加有效的团队扩展、支持分布式结构使得团队成长、使得配置管理工具而降低风险、增加了软件的安全性和保护性、减少培训和实现成本、强有力的开发和维护、支持不同种类的开发;
  4. 缺点:价格昂贵、要培训才会使用;
4. CCC/Harvest( CA公司)
  1. 特性:
    1️⃣提供自动化的变更提交
    2️⃣实现开发过程的自动化
    3️⃣支持自动同步的并发开发
    4️⃣管理用户对供应商提供的代码的修改
    5️⃣具有灵活的定制功能

第二部分 练习

一、名词解释

1. 软件配置管理

答:又称软件形态管理、或软件构建管理。简称软件形管。界定软件的组成项目,对每个项目的变更进行管控,并维护不同项目之间的版本关联,以使软件开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合;

2. SCI

答:软件过程的输出信息可以分为三个主要类别:计算机程序、描述计算机程序的文档、数据,这些项包含了所有在软件过程中产生的信息,总称为软件配置项;

二、分析题

1. 软件配置管理有哪些内容?

答:版本控制、变更控制、过程支持;

2. 软件配置管理中使用了哪些模式?

答:恢复提交模式、面向改变模式、合成模式、长事务模式;

3. 软件配置管理有什么作用?

答:良好的配置管理能使软件开发过程有更好的可预测性,使软件系统具有可重复性,使用户和主管部门用软件质量和开发小组有更强的信心。软件配置管理的最终目标是管理软件产品。好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合,使整个开发团队像一个交响乐一样和谐而又错杂地进行;

4. 简单介绍软件配置管理过程中的活动。

答:配置项的识别、工作空间管理、版本控制、变更控制、状态报告、配置审计;

5. 配置状态报告的主要内容是什么?

答:配置库结构和相关说明、开发起始基线的构成、当前基线位置及状态、各基线配置项集成分支的情况、各私有开发分支类型的分布情况、关键元素的版本演进记录、其他应予报告的事项;

6. 成熟软件配置管理工具有哪些特征?

答:配置项管理、构建与发布管理、工作空间管理、流程管理、分布式开发的支持、与其他工具的集成能力、易用性和易管理性;

三、分析题

1. 请详细分析软件配置管理工具SCM的功能。

答:软件配置管理指示变更管理的一个方面;但从SCM的发展看来,越来越多的SM工具开始集成变更管理的功能,甚至问题跟踪功能:权限控制、版本控制、增强版本控制、变更管理、独立的工作空间、报告、过程自动化、管理项目的整个生命周期、与主流开发环境的集成;

2.请分析软件配置管理工具的发展
  1. 第一代:基于文件,以版本控制、支持检出减入模型和简单分支为主要特征,仅仅处理文件版本控制的工具,基于单一文件的工具,支持恢复提交模式
  2. 第二代:基于项目库,支持并行开发团队协作以及过程管理,最具显著的特征是软件开发项目的源代码与文档分离,存储在数据库中,数据库称为项目数据库或软件库
  3. 第三代:全面结合C M管理等各个软件开发环节的软件配置管理整体解决方案,保持了第二代的优点,并加入了文件透明性这一特性
软件配置管理 ,它为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。配置管理的过程实际是软件开发过程中质量管理的精髓所在,版本管理提高了开发者的工作效率,而变更控制则提高了整个开发团队的工作效率。两者的紧密结合,将为软件开发项目提供一道坚实的质量防火墙,使软件开发项目的质量管理过程规范而有效。   软件开发过程中随着工作的进展会产生...
(2019年为SCM 工具 ) 配置管理(CM)是一种系统工程方法,用于在产品的整个生命周期内建立和维持产品的性能,功能和物理属性与其设计,要求和操作信息的一致性。它们为您的组织带来了成本效益和更好的时间管理。 当今市场上充斥着各种配置管理 工具 。以下是精选的16种精选配置管理软件的列表,这些软件具有流行的功能和最新的下载链接。此比较列表包含开源和商业 工具 。 1)CFEngine配置 工具 CFEngi...