上篇:基本话题
第1章 恼人不休的问题:什么是软件配置管理
1.1 问题的引出
1.2 有那么一类管理
1.3 为什么称做配置管理
1.4 其他一些比喻
第2章 基本的版本控制:记录历史并防止混乱
2.1 即使只有一个开发人员
2.2 建立公共存储区
2.3 防止版本覆盖
2.4 行话
第3章 当代版本控制方法
3.1 变更集的概念
3.2 以变更集为单位修改代码并提交
3.3 反方向:适时更新工作区
3.4 源代码的整体版本
3.5 分布式版本控制
第4章 集成:关注整体质量
4.1 集成的概念
4.2 保证提交的质量
4.3 狭义集成的步骤
4.4 在基线产生之后
4.5 质量保证:集成前、集成中、集成后
第5章 从源代码到运行中的程序
5.1 管理生成转换过程和相关资产
5.2 保证构建的可重复性
5.3 全量构建和增量构建
5.4 让构建更快
5.5 安装包的版本控制
5.6 管理测试运行环境
第6章 迈向持续集成
6.1 及早和经常地集成,持续集成
6.2 化繁为简
6.3 全程自动化
6.4 快!快!快!
6.5 多层集成:当团队规模扩大以后
第7章 分支:减少等待,分头工作
7.1 文件级分支
7.2 产品级分支
7.3 典型应用:实现多层集成
7.4 温故而知新:实现隔离与共享
7.5 分支的其他典型应用
7.6 公共版本库中的分支
7.7 私有版本库中的分支
第8章 管理文档
8.1 文档的标识和存储
8.2 自带的说明信息
8.3 趋势:Wiki
8.4 趋势:数据文件和数据库
第9章 跟踪缺陷,直到消灭
9.1 别让发现的缺陷跑掉
9.2 状态转换图
9.3 准确记录,便于修复
9.4 消灭它?立刻消灭它?
9.5 分析统计缺陷相关数据
9.6 关联缺陷记录与变更集
第10章 管理变更
10.1 管理增强
10.2 管理特性
10.3 瀑布模型中的变更
10.4 影响变更管理的因素
10.5 控制产品版本间的差异
10.6 表达产品版本间的差异
第11章 玄妙的学院派
11.1 配置识别
11.2 配置控制
11.3 配置状态报告
11.4 配置审计
11.5 一些软件研发模型中的配置管理
下篇:复杂场景中的配置管理
第12章 用分支实现交迭
12.1 补丁版本
12.2 复用另一条分支上的改动
12.3 甚至早在1.0版发布之前
12.4 甚至为了重要的内部版本
12.5 甚至为了每次集成
12.6 双分支结构
12.7 都是交迭
第13章 用分支实现变体
13.1 什么是变体
13.2 用分支支持变体
13.3 随主干继续演进
13.4 把公共改动放到主干上
13.5 变更管理对交迭和变体的支持
13.6 历史版本与变体版本的命名
第14章 用设置实现变体
14.1 在构建时读取设置信息
14.2 安装和运行时读取设置信息
14.3 资源与数据
14.4 何时使用哪种方法
14.5 设置对交迭的支持
第15章 用组件的组合实现变体
15.1 雏形:平台加应用
15.2 在不同阶段组装
15.3 复合基线
15.4 复合分支
15.5 实现软件复用:分支、设置、组件相结合
15.6 实现软件复用:架构、过程和组织
第16章 支持多地点开发
16.1 何时出现多地点开发
16.2 主要困难和解决方法
16.3 离线工作模式
16.4 远程访问模式
16.5 当地版本库模式
16.6 只读模式
16.7 多地点开发中的变更管理
第17章 支持跨组织合作
17.1 从开源到外包
17.2 管理第三方资产
17.3 本地记录第三方源代码的演进
17.4 再加上本地的改造
17.5 共同开发
第18章 管理软件部署
18.1 安装包的存储和管理
18.2 管理安装过程
18.3 记录运行系统配置
18.4 管理变更请求
18.5 管理网站
第19章 软件配置管理实施
19.1 不同阶段,不同挑战
19.2 如何完成一项改进
19.3 在一个项目的生命周期中
19.4 平衡集权与自治
19.5 管理众多的项目
19.6 软件配置管理团队的组织结构
结语:提倡务实的精神
附录A:相关工具索引
在线资源
书网互动