1.1 软件的发展 1
1.1.1 20世40~50年代 1
第1章 软件 1
1.1.2 20世纪60年代 2
1.1.3 20世纪70年代 2
1.1.4 20世纪80年代 3
1.1.5 20世纪90年代 3
1.1.6 21世纪初 4
1.2 软件危机 4
1.2.1 软件危机的定义 4
1.3 软件工程 5
1.3.1 软件工程的定义 5
1.2.2 软件危机的原因 5
1.2.3 软件危机的解决 5
1.3.2 基本目标 6
1.3.3 软件工程的原则 6
1.4 软件工程师 7
1.4.1 软件工程师的任务 7
1.4.2 高质量工作的重要性 7
1.4.3 个体软件过程 7
思考题 8
2.1.1 过程思维 9
2.1 过程思维 9
第2章 过程 9
2.1.2 过程思维与传统思维方式的区别 10
2.2 过程 10
2.2.1 过程的定义 10
2.2.2 过程的3个方面 11
2.2.3 以过程为中心的好处 11
2.2.4 成熟的过程与不成熟的过程 12
2.3 过程的改进 12
2.3.1 进行过程改进的原因 12
2.3.2 过程改进的步骤 13
思考题 14
3.1.1 统计过程控制 15
第3章 度量软件过程 15
3.1 度量过程 15
3.1.2 过程管理的任务 16
3.1.3 过程度量的框架 17
3.2 度量计划 17
3.2.1 确定问题 17
3.2.2 选择和定义度量 18
3.2.3 度量与过程的集成 19
3.3 采集数据 20
3.3.1 采集方法 20
3.3.3 保存数据 21
3.3.4 理解数据 21
3.3.2 评估采集 21
3.4 分析过程 22
3.4.1 控制图的构成 22
3.4.2 变量数据控制图的比较 23
3.4.3 研究与结论 28
思考题 29
第4章 软件开发过程 30
4.1 软件开发过程 30
4.1.1 确定软件模型 30
4.1.2 确定活动 32
4.1.4 将每项活动的有用信息文档化 33
4.1.3 确定活动间的关系 33
4.1.5 剪裁过程文档化 34
4.1.6 改善过程文档化 34
4.2 过程脚本 35
4.3 基本概念 37
思考题 38
第5章 时间管理 39
5.1 时间管理的重要性 39
5.2 记录时间的使用情况 40
5.2.1 了解时间的使用情况 40
5.2.2 使用工程记事本 41
5.2.3 工程记事本示例 41
5.3.1 跟踪时间 43
5.3 时间记录日志 43
5.3.2 时间记录日志 44
5.3.3 在工程记事本中登记时间日志 47
5.4 阶段计划 48
5.4.1 阶段计划与产品计划 48
5.4.2 周活动总结表 48
5.4.3 周活动总结表使用指南 49
5.5 产品计划 53
5.5.1 产品计划的定义 53
5.5.2 作业编号日志 54
5.5.3 作业编号日志使用指南 55
思考题 58
6.1 规模的测量 59
第6章 程序的规模 59
6.2 使用规模测量的注意事项 60
6.3 程序的规模 60
6.4 其他的规模测量方法 62
6.5 程序规模估计表 62
6.6 较大规模的估算 63
6.7 在作业编号日志中使用规模测量的方法 65
思考题 68
第7章 进度管理 69
7.1 进度管理的必要性 69
7.2 Gantt图 70
7.4.1 检查点的描述 71
7.4 检查点 71
7.3 制定项目进度表 71
7.4.2 关于建立检查点的几点建议 72
7.5 跟踪项目计划 73
7.5.1 跟踪项目计划的重要性 73
7.5.2 一个跟踪项目计划的示例 73
7.5.3 关于跟踪项目进度的几点建议 74
7.6 跟踪积分 75
思考题 77
8.1 缺陷 78
8.1.1 缺陷的定义 78
第8章 缺陷管理 78
8.1.2 缺陷的类型 79
8.1.3 设计缺陷 79
8.1.4 缺陷的记录日志 80
8.2 缺陷查找技术 83
8.2.1 发现缺陷 83
8.2.2 代码复查 83
8.2.3 代码复查检查表 85
8.3 缺陷预测 87
8.4 缺陷排除的经济效益 88
思考题 89
9.1 产品质量 90
9.1.1 产品质量控制的重要性 90
第9章 质量管理 90
9.1.2 缺陷排除效益的计算 91
9.1.3 最终的缺陷排除效益的估计 93
9.1.4 有效提高产品质量 93
9.2 过程质量 94
9.2.1 过程的测量 94
9.2.2 质量成本及计算 95
9.2.3 质检/过失比 96
9.2.4 质量成本的精确计算 96
9.3 个人对质量的承诺 98
思考题 98
10.1 项目计划及总结的必要性 99
第10章 项目计划总结表 99
10.2 项目计划总结表 100
10.3 项目计划总结表的填写 101
10.3.1 项目计划数据的填写 101
10.3.2 项目实际数据的填写 105
10.3.3 项目累计数据的填写 106
10.3.4 DEF/Hour的填写 108
思考题 111
第11章 网上超市购物结算程序 112
11.1 实训目的 112
11.2 实训要求 112
11.4.2 计划、设计阶段 113
11.4.1 准备阶段 113
11.3 实训环境 113
11.4 实训安排 113
11.4.3 编码阶段 116
11.4.4 代码复查 117
11.4.5 编译、测试阶段 120
11.4.6 后置处理阶段 122
11.5 实训结果 123
第12章 图书管理系统的开发 127
12.1 实训目的 127
12.2 实训要求 127
12.4.1 准备阶段 128
12.4.2 计划和设计阶段 128
12.4 实训安排 128
12.3 实训环境 128
12.4.3 编码阶段 131
12.4.4 代码复查阶段 134
12.4.5 编译、测试阶段 135
12.4.6 后置处理阶段 138
12.5 实训结果 139
第13章 使用C++制作一个简单的电话簿 150
13.1 实训目的 150
13.2 实训要求 150
13.4.2 计划、设计阶段 151
13.4.1 准备阶段 151
13.4 实训安排 151
13.3 实训环境 151
13.4.3 编码阶段 154
13.4.4 代码复查 155
13.4.5 编译、测试阶段 157
13.4.6 后置处理阶段 158
13.5 实训结果 158
第14章 使用C++制作简单的文件加密/解密程序 160
14.1 实训目的 160
14.2 实训要求 160
14.3 实训环境 160
14.4.2 计划、设计阶段 161
14.4.1 准备阶段 161
14.4 实训安排 161
14.4.3 编码阶段 164
14.4.4 代码复查 164
14.4.5 编译、测试阶段 166
14.4.6 后置处理阶段 166
14.5 实训结果 166
第15章 编程规范 169
15.1 Java编程规范 169
15.2 C/C++编程规范 174
15.2.1 编码规范 174
15.2.2 可理解性 178
参考文献 187