目录 1
前言 1
第一章 序论 1
1.1 软件与软件工程 1
1.1.1 程序与文档 1
1.1.2 软件工程登台 2
1.1.3 软件工程基础理论 5
1.2.1 环境的变化 7
1.2 软件生产环境 7
1.2.2 环境与生产技术的关系 9
1.3 软件生存期 10
1.3.1 生存期 10
1.3.2 软件开发阶段的划分 11
1.3.3 软件开发各阶段的文档 16
1.4 软件生产的问题与对策 20
1.4.1 可靠性 20
1.4.2 软件生产效率 24
1.4.4 软件移植 25
1.4.3 可维护软件 25
1.4.5 软件管理 26
第二章 系统分析工程 29
2.1 系统分析概要 29
2.2 系统分析原则 30
2.2.1 系统分析方法 30
2.2.2 系统分析主体 31
2.2.3 系统分析顺序 32
2.3.1 结构分析技术概要 37
2.3 结构分析技术 37
2.3.2 SADT图式语言 41
2.3.3 使用结构分析SADT的过程 50
2.3.4 结构分析小结 51
2.4 系统分析辅助工具PSL/PSA 52
2.4.1 问题说明语言PSL 53
2.4.2 问题说明分析器PSA 61
2.4.3 PSL/PSA小结 64
2.5 系统分析工程实例——日本学会事务中心信息处理系统的分析 74
2.5.1 问题的提出 75
2.5.2 现行业务分析与描述 76
2.5.3 改善的需求与解决方案 77
2.5.4 评价讨论 83
2.5.5 确立开发计划 84
2.6 系统分析工程小结 85
第三章 系统设计工程 87
3.1 系统设计概要 87
3.2 系统设计原则 88
3.2.1 系统设计目的 88
3.2.2 功能设计 89
3.2.3 性能设计 90
3.2.4 可靠性设计 91
3.2.5 设计的基本作业 92
3.2.6 系统设计顺序 94
3.3 模块化 95
3.3.1 模块与模块化的概念 95
3.3.2 为什么要模块化 96
3.3.3 模块的分割 98
3.3.4 模块评价标准 100
3.4 系统设计基础与方法论 105
3.4.1 以数据为中心的设计技术与方法论 106
3.4.2 以控制为中心的设计技术与方法论 119
3.4.3 几种代表性的设计技术与方法的比较评价 123
3.4.4 系统设计的描述方法 127
3.5 系统设计工程实例——日本学会事务中心信息处理系统的设计 131
3.5.1 基本功能展开 131
3.5.2 输入输出设计 136
3.5.3 文件设计 139
3.6 系统设计工程小结 141
第四章 程序设计工程与测试工程 143
4.1 程序设计工程的概要 143
4.2 程序设计工程的原则 144
4.2.1 程序设计语言 145
4.2.2 结构程序设计 148
4.2.3 编码规则 150
4.2.4 程序设计工程步骤 151
4.3 测试工程概要 154
4.3.1 确认软件正确性的方法 154
4.3.3 软件正确性确认的步骤 156
4.3.2 软件错误的类型 156
4.3.4 静态分析与动态分析 160
4.4 测试用例选择 162
4.4.1 选择测试的概念 162
4.4.2 测试与可靠性 164
4.4.3 条件表 165
4.4.4 因果图 166
4.5.1 由顶向下测试方法 174
4.5 测试方法 174
4.5.2 由底向上测试方法 177
4.6 程序设计工程与测试工程实例——日本学会事务中心信息处理系统的程序设计与测试 179
4.6.1 对实际环境的了解 179
4.6.2 程序的管理方式 180
4.6.3 程序组成的考虑 182
4.6.4 程序编码 188
4.6.5 程序的测试 191
4.7 程序设计工程与测试工程小结 195
5.1 系统运行、维护概要 197
第五章 系统运行、维护工程 197
5.2 系统运行、维护原则 198
5.2.1 维护的形式定义 198
5.5 系统运行、维护工程实例——日本学会事务中心信息处理系统的运行、维护 200
5.2.2 维护作业的分类 201
5.2.3 软件维护特性 202
5.2.4 维护作业的顺序 204
5.3 维护实例分析 207
5.3.1 并行开发 208
5.3.3 开发与维护的工时比例 209
5.3.2 确保互换性 209
5.3.4 改造与修理的工时比例 210
5.4 维护技术 211
5.4.1 维护方向技术 211
5.4.2 维护支撑技术 214
5.4.3 预防维护技术 217
5.4.4 维护的问题与对策 218
5.5.1 系统缺陷的整理与解决对策 222
5.5.2 差错的检出与处理 223
5.5.3 系统维护 225
5.6 系统运行、维护工程小结 231
6.1 软件工具的概要 233
6.1.1 什么是软件工具 233
第六章 软件工具与环境 233
6.1.2 工具的发展过程 234
6.2 工具的分类 236
6.2.1 按开发阶段划分 236
6.2.2 按工具功能划分 239
6.2.3 工具好坏的评价 241
6.3.1 工具与工具群 242
6.3 自动工具与环境 242
6.3.2 自动工具的产生 243
6.3.3 软件工具与软件开发环境的关系 244
6.3.4 综合的会话型的程序开发环境 244
6.4 软件生产支撑环境SKIPS 248
6.4.1 SKIPS的开发背景 248
6.4.2 SKIPS系统的目标 250
6.4.3 SKIPS系统的组成 255
6.4.4 SKIPS支撑环境中软件的开发过程 263
6.4.5 SKIPS系统的特点与现状 278
6.5 软件工具与环境小结 280
第七章 软件的估价 281
7.1 软件成本估价概要 281
7.2 软件估价方法 282
7.2.1 一般的估价方法 282
7.2.2 系统规模估算方法 284
7.2.3 软件生产效率的估算 287
7.2.4 组成管理 288
7.2.5 生存期的估算方法 291
7.2.6 合同方式的成本估算 292
7.3 几种成本估算模式 294
7.3.1 Aron模式 295
7.3.2 Walston与Ferix模式 298
7.3.3 Doty模式 302
7.4 资源分配模式 306
7.4.1 Nordon模式 306
7.4.2 Putnam模式 307
7.5 软件估价小结 309
参考文献 311