(一)学习内容
一、软件配置管理
1. 软件配置管理概述
- 内容:版本控制、变更控制、过程支持;
2. 软件配置管理模式
- 恢复提交模式:是一种面向文件单一版本的软件配置模式;
- 面向改变模式:考虑各组成单元的改变;
- 合成模式:描述整个软件产品的系统结构;
- 长事务模式:各个开发人员在各自独立的工作空间下与其他用户相互隔离,独立地对软件进行修改。
3. 软件配置的作用
- 作用:能覆盖软件开发和维护的各个方面,同时对软件开发过程的宏观管理;
- 支持作用:良好的配置管理能使开发过程有更好的可预测性,使软件系统具有可重复性,使用户和主管部门用软件质量和开发小子有更强的信心;
- 最终目标:管理软件产品;
4. 软件配置管理过程(6个活动)
- 配置项识别
(1)配置项定义:软件过程的输出信息可以分为三个主要类别:计算机程序、描述计算机程序的文档、数据; (2)配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容; - 工作空间管理
- 版本控制:是核心功能;
- 变更控制
- 状态报告:根据配置项操作数据库中的记录来向管理者报告软件开发活动的进展情况。
(1)配置状态报告内容:配置库结构和相关说明、开发起始基线的构成、当前基线位置及状态、各基线配置项集成分支的情况、各私有开发分支类型的分布情况、关键元素的版本演进记录、其他应予报告的事项; - 配置审计:作为变更控制的补充手段;
(1)主要任务:制定项目的配置计划、对配置项进行标识、对配置项进行版本控制、对配置项进行变更控制、定期进行配置审计、向相关人员报告配置的状态;
二、软件配置管理工具的功能
1. 权限控制:减小误操作的可能性;
- 核心概念:行为主体(用户)、行为客体(项目和项目成员)、行为(特定操作);
2. 版本控制:是基本要求;
- SCM工具记录项目和文件的修改轨迹,跟踪修改信息;
- SCM工具可以对同一文件的不同版本进行差异比较;
- SCM工具内部对版本的标识;
3. 增强的版本控制:快照和分支是以基本的版本控制功能为基础;
4. 变更管理:在整个软件生命周期中对软件变更的控制;
5. 独立的工作空间
- 沙箱为并行开发提供了独立的工作空间;
6. 报告
- 使项目经理能够随时了解项目进展情况;
7. 过程自动化
- 让一个事件触发另一个事件产生行为,来实现过程自动化;
- 缩短任务事件,提高生产率,规范了团队开发的过程,减少了混乱;
8. 管理项目的整个生命周期
- 始于项目开发之初,终于产品淘汰之时;
9. 与主流开发环境的集成
三、成熟软件配置管理工具的特征
1. 软件配置管理工具的发展
- 第一代:基于文件,以版本控制、支持Check Out /Check In 模型的简单分支为主要特征;
- 第二代:基于项目库,支持并行开发团队协作以及过程管理;
- 第三代:全面结合CM管理等各个软件开发环节的软件配置管理整体解决方案;
2. 成熟软件配置管理工具的特征
指标 | 特征 |
---|
配置项管理 | 版本控制、配置管理、并行开发支持 | 构建与发布管理 | 能利用流行的构建工具 | 工作空间管理 | 能自动跟踪工作空间中所有类型的变更、能应用不同配置项填充工作空间、工作空间既允许隔离又允许更新 | 流程管理 | 不同类型的对象都应具备流程定制能力、流程的范围可定制、支持测试与发布流程 | 分布式开发的支持 | 负载均衡 | 与其他工具的集成能力 | 变更请求工具、开发工具、其他CASE工具、命令行、SDK | 易用性、易管理性 | 报告能力架构的弹性 |
四、典型软件配置管理工具
1. SourceSafe
- 支持所有文件格式;
- 简单易于,一学就会;
- 局限性:只能在Windows下运行、适合局域网内的用户群;
2. CVS
- 维护任意文档的开发和使用;
- 支持文本类型和二进制裂隙;
- 缺点:客户端软件五花八门、良莠不齐;
3. ClearCase
- 应用于复杂产品的并行开发、发布和维护;
- 特殊效益:增加团队效率、增加个人效率、简单的维护和提高对客户的支持、快速准确的产品发布、减少错误发生、硬件资源的优化、提高项目协调和编制、提高产品质量、更加有效的团队扩展、支持分布式结构使得团队成长、使得配置管理工具而降低风险、增加了软件的安全性和保护性、减少培训和实现成本、强有力的开发和维护、支持不同种类的开发;
- 缺点:价格昂贵、要培训才会使用;
4. CCC/Harvest
- 特性:提供自动化的变更提交、实现开发过程的自动化、支持自动同步的并发开发、管理用户对供应商提供的代码的修改、具有灵活的定制功能;
(二)练习
一、名词解释
1. 软件配置管理
答:又称软件形态管理、或软件构建管理。简称软件形管。界定软件的组成项目,对每个项目的变更进行管控,并维护不同项目之间的版本关联,以使软件开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合;
2. SCI
答:软件过程的输出信息可以分为三个主要类别:计算机程序、描述计算机程序的文档、数据,这些项包含了所有在软件过程中产生的信息,总称为软件配置项;
二、分析题
1. 软件配置管理有哪些内容?
答:版本控制、变更控制、过程支持;
2. 软件配置管理中使用了哪些模式?
答:恢复提交模式、面向改变模式、合成模式、长事务模式;
3. 软件配置管理有什么作用?
答:良好的配置管理能使软件开发过程有更好的可预测性,使软件系统具有可重复性,使用户和主管部门用软件质量和开发小组有更强的信心。软件配置管理的最终目标是管理软件产品。好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合,使整个开发团队像一个交响乐一样和谐而又错杂地进行;
4. 简单介绍软件配置管理过程中的活动。
答:配置项的识别、工作空间管理、版本控制、变更控制、状态报告、配置审计;
5. 配置状态报告的主要内容是什么?
答:配置库结构和相关说明、开发起始基线的构成、当前基线位置及状态、各基线配置项集成分支的情况、各私有开发分支类型的分布情况、关键元素的版本演进记录、其他应予报告的事项;
6. 成熟软件配置管理工具有哪些特征?
答:配置项管理、构建与发布管理、工作空间管理、流程管理、分布式开发的支持、与其他工具的集成能力、易用性和易管理性;
三、分析题
1. 请详细分析软件配置管理工具SCM的功能。
答:权限控制、版本控制、增强版本控制、变更管理、独立的工作空间、报告、过程自动化、管理项目的整个生命周期、与主流开发环境的集成;
|