目录 1
第一章 导论 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
若干关键概念 3
1.3.1 生存期 3
1.3.2 软件项目估算 3
1.3.3 需求分析 3
1.3.4 软件设计 3
1.3.9 软件配置管理 4
1.3.8 软件维护 4
1.3.10 文档和复查 4
1.3.6 测试步骤及方法 4
1.3.7 小型项目的软件工程 4
1.3.5 结构化编码 4
1.4 软件工程指南的目的 5
1.4.1 管理人员的指南 5
1.4.2 专业人员的指南 5
1.5 指南的使用 5
1.5.1 方法与工序的来源 6
1.5.2 文挡格式的来源 6
1.5.3 一般的信息和参考文献信息的来源 6
1.6 如何使用软件工程指南 6
1.6.1 题目-读者相关 6
对照表 6
1.7 小结 8
方法的建议 8
方法的建议 8
1.6.2 对管理人员阅读 8
1.6.3 对专业人员阅读 8
第二章 软件工程概述 10
2.1 定义阶段 10
2.1.1 系统需求分析 10
2.1.2 初步软件计划 10
2.1.3 软件需求 11
2.2 开发阶段 11
2.2.1 概要设计 12
2.2.2 详细设计 13
2.2.3 编码及模块测试 15
2.2.4 集成测试 15
2.3 维护阶段 16
2.3.1 软件管理 16
2.2.5 正式确认测试 16
2.2.6 系统测试 16
2.3.2 维护 17
2.3.3 软件配置管理 18
2.4 软件开发的组织结构 18
2.5 小结 19
3.1 系统定义 20
3.2 初步软件计划 20
第三章 软件计划 20
3.2.1 范围 21
3.2.2 资源需求 22
3.3 成本估算 23
3.3.1 软件种类 23
3.3.2 软件生产率数据 23
3.4 成本估算技术 24
3.4.1 代码行技术 24
3.4.2 任务估算技术 25
3.5 “购买”决定 27
3.4.3 自动成本估算 27
3.4.4 结果比较 27
3.5.1 购买实例 28
3.5.2 对多个包的软件选择 28
3.6 其他成本 29
3.6.1 计算机成本 29
3.6.2 旅差和住宿成本 30
3.6.3 材料和各种硬件成本 30
3.7 影响软件成本的因素 30
3.8 安排 31
3.9 软件计划复查 32
3.10 小结 32
第四章 软件需求分析 33
4.1 系统需求 33
4.2 需求子任务 35
4.2.1 研究软件计划 35
4.2.4 定义功能细节和界面 36
的模型 36
4.2.2 为分析组织“交流” 36
4.2.3 建立一个信息流 36
4.2.5 决定设计限制 37
4.2.6 规定确认准则 37
4.2.7 编写“初步用户手册” 37
4.2.8 软件需求的复查 37
4.2.9 复查计划 37
4.3 分析员 38
4.4 数据流图 38
4.5 软件需求规范书 39
4.6 需求分析的自动工具 40
4.7 小结 41
第五章 软件设计 42
5.1 设计步骤 42
5.3.1 结构和工序 43
5.3 软件概念 43
5.2 概要设计 43
5.3.2 下属和上属关系 44
5.3.3 传入和传出特征 44
5.3.4 耦合 44
5.3.5 聚合 45
5.3.6 模块度 45
5.3.7 形态的特征 46
5.3.8 影响范围/控制范围 46
5.3.9 小结 46
5.4 结构化设计 47
5.4.1 系统的数据流 47
5.4.2 定义信息流边界 47
5.4.3 中心变换分析 48
5.4.4 处置中心分析 50
5.6 概要设计交付文件 51
5.7 概要设计复查 51
5.5 其他的概要设计技术 51
5.4.5 小结 51
5.8 详细设计 52
5.8.1 图示工具 53
5.8.2 程序设计语言 54
5.8.3 表格工具 56
5.8.4 工具的比较 58
5.9 详细设计交付文件 58
5.10 详细设计复查 59
5.10.1 非正式的遍查 59
5.10.2 结构化遍查 59
5.10.3 设计审查 60
5.11 设计管理 60
5.11.1 设计任务安排 60
5.11.2 用户/申请者 60
互相作用 60
5.12 小结 61
6.1 程序结构 62
6.1.1 结构的重要性 62
6.1.2 结构化编码 62
第六章 结构化编码 62
6.1.3 代码格式 63
6.2 代码格式 63
6.3 排错 67
6.4 编码风格 67
6.5 可移植的软件 68
6.6 实现工具 69
6.6.1 源代码准备 70
6.6.2 语言处理 70
6.6.3 程序评价辅助工具 70
6.6.4 通用开发环境 70
6.9 小结 71
6.7 交付文件和复查 71
6.8 管理考虑 71
第七章 软件测试 72
7.1 测试的目的及定义 72
7.1.1 软件可靠性和故障 72
7.1.2 测试和排错 72
7.2 测试序表 72
7.3 模块测试 73
7.4 联调 74
7.4.1 联调计划和进度 74
7.4.2 联调工序 75
7.4.3 测试报告 75
7.5 确认测试 75
7.7 测试原则 76
7.7.1 总指导原则 76
7.5.2 系统测试 76
7.5.1 测试计划 76
7.7.2 测试用例设计技术 77
7.7.3 错误核查表 78
7.6 测试小组 79
7.7.4 排错 79
7.8 测试的自动工具 79
7.8.1 程序流分析程序 79
7.8.2 测试驱动程序、记录程序、数据生成程序 79
7.8.3 测试台 79
7.8.5 性能分析工具 80
7.8.4 典型系统 80
7.9 小结 81
第八章 配置管理 82
8.1 软件配置 82
8.2 交付文件和基线 82
8.3 配置标识 83
8.4 变动控制 84
8.4.1 控制处理过程 84
8.6 配置状态报告 85
8.4.2 变动控制委员会 85
8.5 配置审计 85
8.7 小结 86
第九章 软件维护 87
9.1 维护的分类 87
9.2 易维护性 88
9.3 维护工序 88
9.3.1 组织 88
9.3.2 计划 89
9.3.3 实现 89
9.3.4 错误的报告 89
9.3.5 变动评估 89
9.3.6 错误的改正 92
9.3.7 维护工序小结 92
9.4 管理方面的考虑 92
9.4.1 维护后的软件验收 92
9.4.4 人员协调 93
9.4.3 配置管理 93
9.4.2 修改后软件的 93
交付准则 93
9.4.5 维护记录 94
9.5 维护的复查 94
9.6 小结 95
第十章 小项目的软件工程 96
10.1 小项目的性质 96
10.2 小项目的定义 96
10.3 小项目的开发 97
10.4 小项目的维护 97
10.5 小项目的软件配置 97
10.5.1 定义文档 97
10.5.2 开发文档 97
10.5.3 维护文档 98
10.5.4 配置管理 98
10.6 小结 98
结构 99
11.1.1 计划、分析和管理 99
第十一章 管理问题 99
11.1 组织结构 99
11.1.2 定义的管理问题 100
11.2 软件项目的失败 100
11.2.1 失败的托辞 101
11.2.2 失败的理由 102
11.3 标准 102
11.4 软件工程教育 103
11.5 如何建立软件工程 103
11.5.1 一种实现的途径 104
11.5.2 选择原型项目 104
11.6 小结 105
格式化软件包) 106
软件计划(FORTRAN 106
系统描述Ⅱ 106
系统描述Ⅰ 106
引言 106
第十二章 一个实例 106
需求规范书(FORTRAN 109
格式化软件包) 109
附录Ⅰ 初步的用户手册 112
附录Ⅱ 预期的测试结果 115
附录Ⅲ 术语解释 115
设计文挡(FORTRAN 116
格式化软件包) 116
附录Ⅰ 详细设计描述 123
集成测试规范书(FORTRAN 131
格式化软件包 131
确认测试规范书(FORTRAN 134
格式化软件包) 134
0-79/9) 136
用户手册(SEP004U. 136
附录A.2 软件计划 143
附录A 文档格式 144
附录A.1 系统规范书介绍 144
附录A.3 软件需求规范书 146
附录A.4 设计编写文档 149
附录A.5 测试规范书 152
附录A.6 模块开发卷宗 153
附录A.7 维护文档 156
附录A.8 安装手册和用户 160
指南 160
附录B 软件方法和工具 163
附录B.1 面向数据结构 163
的设计 163
附录B.2 软件工具 168
附录B.3 程序设计语言 169