第1章 软件工程师的任务 1
1.1 什么是软件工程 1
1.2 为什么工程质量很重要 1
1.3 个体软件过程 2
1.4 高质量工作的规范 2
1.5 高质量工作的重要性 3
1.6 如何提高工作质量 3
1.7 过程改进的步骤 4
1.8 本书的策略 4
1.9 总结 5
1.10 练习1 5
第2章 时间管理 6
2.1 时间管理的逻辑原理 6
2.2 了解时间的使用情况 7
2.3 工程记事本 7
2.4 工程记事本的设计 8
2.5 工程记事本示例 9
2.6 总结 10
2.7 练习2 10
第3章 时间跟踪 11
3.1 为什么要跟踪时间 11
3.2 记录时间数据 11
3.3 跟踪时间 12
3.4 使用标准的时间记录日志 12
3.5 处理中断 15
3.6 跟踪已完成的任务 15
3.7 在工程记事本中登记时间日志 16
3.8 时间记录的提示 17
3.9 总结 17
3.10 练习3 17
第4章 阶段计划与产品计划 18
4.1 阶段计划和产品计划 18
4.2 周活动总结表 19
4.3 总结每周的时间分配 20
4.4 计算阶段时间和工作效率 22
4.5 使用周活动总结表 25
4.6 总结 26
4.7 练习4 26
第5章 产品计划 27
5.1 产品计划的必要性 27
5.2 产品计划的用途 27
5.3 什么是产品计划 28
5.4 产品计划 28
5.5 制订小型任务的计划 28
5.6 术语定义 29
5.7 作业编号日志 29
5.8 关于使用作业编号日志的几点建议 33
5.9 使用产品的时间和效率数据 33
5.10 总结 34
5.11 练习5 34
第6章 产品规模 35
6.1 产品计划过程 35
6.2 规模测量 35
6.3 使用规模测量的注意事项 36
6.4 程序规模 36
6.5 其它的规模测量方法 38
6.6 程序规模估计 39
6.7 较大规模的估计 39
6.8 在作业编号日志中使用规模测量的方法 41
6.9 总结 44
6.10 练习6 44
第7章 管理好时间 45
7.1 时间管理的要素 45
7.2 活动分类 45
7.3 收集活动的时间数据 45
7.4 时间分配的评价 46
7.5 作出时间安排 46
7.6 找出更多的时间 48
7.7 制订基本规则 48
7.8 设定时间分配的优先级 50
7.9 管理好时间安排 52
7.10 关于管理可变动的时间的几点建议 52
7.11 时间管理的目标 53
7.12 总结 53
7.13 练习7 54
第8章 契约的管理 55
8.1 什么是契约 55
8.2 认真制订契约 56
8.3 契约的一个示例 57
8.4 工业中的示例 58
8.5 处理没有完成的契约 58
8.6 管理契约的重要性 59
8.7 不对契约进行管理的后果 59
8.8 管理契约的方法 60
8.9 总结 61
8.10 练习8 61
第9章 进度管理 62
9.1 进度管理的必要性 62
9.2 Gantt图 63
9.3 制订项目进度表 63
9.4 检查点 64
9.5 跟踪项目计划 65
9.6 跟踪积分 67
9.7 总结 70
9.8 练习9 70
第10章 项目计划 71
10.1 项目计划的必要性 71
10.2 项目计划总结表 71
10.3 项目总结 73
10.4 程序规模 75
10.5 开发阶段的时间 76
10.6 估计的准确性 78
10.7 总结 78
10.8 练习10 78
第11章 软件开发过程 79
11.1 为什么使用过程 79
11.2 一些定义 79
11.3 过程脚本 80
11.4 检查点和阶段 82
11.5 更新的项目计划总结表 82
11.6 一个计划的示例 84
11.7 累计时间值计算的示例 87
11.8 总结 89
11.9 练习11 89
第12章 缺陷 90
12.1 什么是软件质量 90
12.2 缺陷和质量 90
12.3 什么是缺陷 91
12.4 缺陷与Bugs 92
12.5 缺陷类型 92
12.6 了解缺陷 93
12.7 缺陷记录日志 94
12.8 统计缺陷个数 97
12.9 使用缺陷记录日志 97
12.10 更新的PSP过程 98
12.11 总结 102
12.12 练习12 102
第13章 缺陷查找技术 104
13.1 个人对产品质量的承诺 104
13.2 发现缺陷的步骤 104
13.3 发现和修复缺陷的方法 105
13.4 代码复查 105
13.5 为什么要尽早发现缺陷 106
13.6 发现和修复缺陷的费用 107
13.7 利用代码复查发现缺陷 108
13.8 编译前的复查 109
13.9 编译与测试缺陷的数据 110
13.10 更新后的PSP项目计划总结表 111
13.11 其它种类的代码复查 115
13.12 总结 115
13.13 练习13 115
第14章 代码复查检查表 117
14.1 检查表的用途 117
14.2 代码复查检查表的示例 117
14.3 使用代码复查检查表 120
14.4 建立个人检查表 122
14.5 改进检查表 124
14.6 编码标准 126
14.7 总结 128
14.8 练习14 128
第15章 缺陷预测 129
15.1 缺陷率 129
15.2 缺陷数据的使用 130
15.3 缺陷密度 131
15.4 缺陷率的预测 131
15.5 缺陷估计 132
15.6 更新的项目计划总结表和示例 132
15.7 登入实际的数据 137
15.8 总结 138
15.9 练习15 139
第16章 缺陷排除的经济效益 140
16.1 高质量工作的必要性 140
16.2 缺陷排除问题 141
16.3 缺陷排除时间 141
16.4 缺陷引入和排除的经验 141
16.5 节省缺陷排除时间 142
16.6 在PSP项目计划总结表中每小时缺陷数的计算 144
16.7 缺陷排除效益的计算 147
16.8 提高缺陷排除率 148
16.9 减少缺陷引入率 149
16.10 总结 149
16.11 练习16 150
第17章 设计缺陷 151
17.1 设计缺陷的本质 151
17.2 识别设计缺陷 152
17.3 什么是设计 152
17.4 设计过程 153
17.5 设计缺陷的起因 154
17.6 设计缺陷的影响 154
17.7 设计表达 155
17.8 总结 158
17.9 练习17 158
第18章 产品质量 160
18.1 质量第一 160
18.2 测试 160
18.3 过滤器概念 161
18.4 仔细工作的好处 162
18.5 缺陷排除效益的计算 163
18.6 最终的缺陷排除效益的估计 164
18.7 100%过程效益的好处 165
18.8 缺陷排除效益的经验 166
18.9 原型方法 167
18.10 总结 168
18.11 练习18 168
第19章 过程质量 169
19.1 过程测量 169
19.2 缺陷排除中的矛盾 169
19.3 缺陷排除策略 170
19.4 质量的成本 171
19.5 质量成本的计算 171
19.6 质检/过失比 174
19.7 改进复查的效率 177
19.8 质量成本的精确计算 177
19.9 总结 178
19.10 练习19 179
第20章 个人对质量的承诺 180
20.1 质量的重要性 180
20.2 低质软件的危险正在增长 180
20.3 制订个人质量承诺 181
20.4 个人的目标 182
20.5 成就的回报 182