第一章 本书简介 1
1.1问题的提出 1
1.1.1软件开发 1
1.1.2软件检测 2
1.2解决方法 2
1.2.1软件生命期 2
1.2.2工程方法 2
1.2.3软件工程 2
1.3本书中引进的主要概念 3
1.3.1生命期 3
1.3.2软件项目估算 3
1.3.8软件维护 4
1.3.7小型软件项目的软件工程 4
1.3.6测试步骤和方法 4
1.3.5结构编程 4
1.3.4软件设计 4
1.3.3需求分析 4
1.3.9软件配置管理 5
1.3.10文件和检查 5
1.4本书的目的 5
1.4.1经理指南 5
1.4.2技术人员指南 6
1.5本书的内容 6
1.5.1软件工程方法与步骤库 6
1.5.2文件格式库 7
1.5.3文献目录和一般的信息库 7
1.6如何使用本书 7
1.6.1课题与读者关联矩阵 7
1.6.2建议经理阅读的内容 7
1.6.3为技术人员推荐的内容 7
1.7结语 9
第二章 软件工程概述 10
2.1定义阶段 11
2.1.1系统需求分析 11
2.1.2初步的软件计划 12
2.1.3软件需求 12
2.2开发阶段 13
2.2.1初步设计 13
2.2.2详细设计 16
2.2.3编写程序和程序模块测试 19
2.2.4组装测试 19
2.2.5验证测试 20
2.2.6系统测试 20
2.3.1软件监察 21
2.3.2维护 21
2.3维护阶段 21
2.3.3软件配置管理 22
2.4软件开发组织 23
2.5结语 24
第三章 软件开发计划 25
3.1系统定义 25
3.2初步的软件开发计划 26
3.2.1软件功能范围 26
3.2.2资源需求 27
3.3成本估算 29
3.3.1软件的种类 29
3.3.2软件生产数据 29
3.4成本估算技术 30
3.4.1估算源程序的行数 31
3.4.2任务成本技术 32
3.5做买软件的决定 35
3.4.4结果比较 35
3.4.3自动估算成本 35
3.5.1购买软件的例子 36
3.5.2软件的选择 37
3.6其他成本 37
3.6.1计算机成本费 37
3.6.2差旅费 39
3.6.3消耗品和其他硬件费 39
3.7影响软件成本的因素 39
3.8计划安排 41
3.9检查软件计划 42
3.10结论 42
第四章 软件需求分析 43
4.1系统需求 44
4.2需求子任务 45
4.2.3构造一个数据流模式 46
4.2.2确定做分析时的联络范围 46
4.2.1研究软件开发计划 46
4.2.4确定功能细节与界面 47
4.2.5确定设计约束条件 47
4.2.6规定验证测试标准 47
4.2.7编写初步的用户手册 48
4.2.8检查软件需求说明书 48
4.2.9检查软件开发计划 48
4.3分析员 49
4.4数据流程图 49
4.5软件需求说明书 52
4.6需求分析的自动工具 52
4.7结语 54
第五章 软件设计 55
5.1设计过程 55
5.3软件设计概念 56
5.2初步设计 56
5.3.2隶属与“管辖”关系 57
5.3.1结构与过程 57
5.3.3输入与输出特点 58
5.3.4外联度 58
5.3.5内联度 59
5.3.6程序模块数 59
5.3.7结构特点 60
5.3.8影响域与控制域 60
5.3.9结语 61
5.4结构设计 61
5.4.1系统数据流 61
5.4.2确定信息流边界 63
5.4.3转换中心分析 63
5.4.4事务中心分析 66
5.6初步设计文件 68
5.4.5结构设计结论 68
5.5其他的初步设计技术 68
5.7初步设计检查 69
5.8详细设计 71
5.8.1图形工具 71
5.8.2详细设计语言 74
5.8.3表格工具 77
5.8.4详细设计工具比较 80
5.9详细设计标志文件 80
5.10详细设计检查 81
5.10.1非正式的详细设计检查 81
5.10.2较正式的详细设计检查 81
5.10.3正式的设计检查 82
5.11设计管理 82
5.11.2会见用户/客户 83
5.12结语 83
5.11.1安排设计任务 83
第六章 结构编程 84
6.1程序结构 84
6.1.1结构的重要性 84
6.1.2结构编程 85
6.1.3程序格式 86
6.2程序文件 86
6.3防止错误 90
6.4编程风格 91
6.5可移植的软件 93
6.6实现工具 94
6.6.1准备源程序 94
6.6.2处理语言 95
6.6.3辅助评价程序 95
6.6.4一般的开发环境 95
6.9结语 96
6.7标志文件与检查 96
6.8管理措施 96
第七章 软件测试 97
7.1测试目的与定义 97
7.1.1软件的可靠性与失灵 97
7.1.2测试与调试 97
7.2测试顺序 98
7.3单元测试 99
7.4组装测试 99
7.4.1组装测试计划和实施方案 100
7.4.2组装过程 101
7.4.3测试报告 102
7.5验证测试 102
7.5.1测试计划 102
7.6测试组 103
7.5.2测试过程 103
7.5.3系统测试 103
7.7测试原理 104
7.7.1一般的指南 104
7.7.2测试情况设计技术 104
7.7.3检查错误表 105
7.7.4调试程序 106
7.8自动测试工具 107
7.8.1程序流分析程序 107
7.8.2测试驱动程序 107
7.8.3测式台 108
7.8.4典型系统 108
7.8.5性能分析工具 108
7.9结语 109
8.2标志文件与分界线 111
8.1软件配置 111
第八章 配置管理 111
8.3配置标识 112
8.4修改控制 114
8.4.1控制过程 114
8.4.2修改控制委员会 115
8.5配置审查 116
8.6说明配置情况 116
8.7结语 116
第九章 软件维护 117
9.1维护工作分类 117
9.2可维护性 118
9.3维护过程 118
9.3.1组织 118
9.3.3实施 119
9.3.4错误报告 119
9.3.2计划 119
9.3.5修改评估 120
9.3.6纠正错误 120
9.3.7维护过程结语 121
9.4维护课题 122
9.4.1接收经过验证测试的软件 123
9.4.2修订已交付使用的软件 123
9.4.3配置管理 123
9.4.4技术人员调配 124
9.4.5维护记录与保存 126
9.5维护检查 126
9.6结语 127
第十章 小型项目的软件工程 128
10.1小型项目的种类 128
10.5小型项目的软件配置 129
10.5.1定义文件 129
10.2小型项目的定义 129
10.4小型项目的维护 129
10.3小型项目的开发 129
10.5.2开发文件 130
10.5.3维护文件 130
10.5.4配置管理 130
10.6结语 130
第十一章 管理问题 131
11.1管理联络方法 131
11.1.1计划、分析和管理方法 132
11.1.2定义阶段的管理问题 132
11.2软件项目失败 133
11.2.1失败的原因 133
11.2.2失败的根本原因 134
11.4软件工程教育 135
11.3标准 135
11.5如何建立软件工程 136
11.5.1实现方法 137
11.5.2选择试点项目 137
11.6结语 138
第十二章 帮助理解软件工程方法的例子 139
序言 139
系统说明 139
软件计划 140
需求说明书 142
附录1、初步的用户手册 148
附录2、希望的测试结果 153
附录3、词汇 153
设计文件 154
附录1、FORTFORM的详细设计 163
FORTFORM的组装测试说明书 165
验证测试说明书 170
FORTFORM的用户手册 173
附录A 文件格式 183
附录A·1 系统说明书 183
附录A·2 软件计划 188
附录A·3 软件需求说明书 193
附录A·4 设计文件 198
附录A·5 测试说明书 203
附录A·6 程序模块开发文件夹 206
附录A·7 维护文件 210
附录A·8 安装手册与用户指南 216
附录B 软件方法与工具 221
附录B·1 面向数据结构的设计 221
附录B·2 软件工具 229
附录B·3 详细设计语言 231
附录C 软件工程参考文献 239
附录D 软件工程的定量方法 244