目录 1
第1章 软件工程概述 1
1.1 软件工程的产生 2
1.2 软件工程及其基本原理 3
12.1 软件工程定义 3
1.2.2 软件工程的基本原理 4
1.3 软件生存期 6
1.4 软件工程方法学 8
1.4.1 软件工程方法学 8
1.4.2 面向对象方法 11
1.5 软件过程 14
1.6 软件工程工具和环境 18
1.6.1 软件工程环境的概念 18
1.6.2 软件工程环境的类型 18
1.6.3 软件工程环境的发展前景 20
1.6.4 人工智能和软件工程环境 20
1.7 软件工程学习指南 21
本章小结 22
习题 22
第2章 需求分析 23
2.1 需求分析的任务 24
2.2 需求分析的原则 26
2.3 可行性研究 27
2.3.1 可行性研究的任务 27
2.3.2 可行性研究的步骤 28
2.3.3 系统流程图 30
2.4 需求分析方法 32
2.4.1 结构化分析方法 32
2.4.2 面向对象分析方法 41
2.4.3 统一建模语言 44
2.5.2 规格说明及形式化说明技术 50
2.5 软件需求分析建模与规格说明 50
2.5.1 需求分析建模 50
2.6 软件需求正确性验证 52
2.6.1 软件需求正确性要求和验证方法 52
2.6.2 用于需求分析的软件工具 53
2.7 需求分析指南 54
本章小结 55
习题 56
第3章 软件设计 58
3.1.1 总体设计的基本任务 59
3.1 软件设计的基本任务 59
3.1.2 详细设计的基本任务 60
3.2 软件设计的概念和原则 61
3.2.1 模块化与模块独立性 61
3.2.2 抽象与细化 68
3.2.3 信息隐蔽 69
3.2.4 可重用 70
3.3 结构化设计 70
3.3.1 结构化设计概述 70
3.3.2 结构化设计描述工具 71
3.3.3 面向数据流的设计 82
3.3.4 面向数据结构的设计 88
3.4 面向对象的设计 97
3.4.1 面向对象的设计概述 97
3.4.2 系统设计 98
3.4.3 对象设计 103
3.4.4 设计模式 104
3.5 用户界面设计 106
3.5.1 用户界面设计的一般原则 107
3.5.2 用户界面设计过程 108
3.5.3 用户界面设计经验 109
3.6 设计质量的度量 110
3.6.1 McCabe方法 111
3.6.2 Halstead方法 113
3.7 软件设计CASE工具 113
本章小结 115
习题 116
第4章 软件实现 119
4.1 编码 120
4.1.1 程序设计语言 120
4.1.2 编码风格 125
4.1.3 常用程序设计工具简介 128
4.2 软件测试概述 130
4.2.1 软件测试的概念和原则 130
4.2.2 软件测试的方法和步骤 132
4.3 软件测试的策略 136
4.3.1 单元测试 136
4.3.2 集成测试 137
4.3.3 系统测试 141
4.4.1 白盒测试法用例的设计 144
4.4 测试用例的设计 144
4.4.2 黑盒测试法用例的设计 148
4.5 面向对象的软件测试 153
4.5.1 面向对象的测试策略 153
4.5.2 面向对象的测试用例设计 155
4.6 软件调试 157
4.6.1 调试原则 158
4.6.2 调试步骤 159
4.6.3 调试方法 160
4.7 软件可靠性 161
4.7.1 软件可靠性概念 162
4.7.2 软件测试中可靠性分析 163
4.8 软件测试CASE工具 164
4.8.1 软件测试工具分类 165
4.8.2 测试工具的选择 167
本章小结 168
习题 169
第5章 软件维护 172
5.2 软件维护的过程 173
5.1.2 软件维护的特点 173
5.1.1 软件维护的定义 173
5.1 软件维护的定义和特点 173
5.3 软件的可维护性 174
5.3.1 决定软件的可维护性的因素 174
5.3.2 提高可维护性的方法 175
5.4 软件再工程 176
本章小结 177
习题 177
第6章 项目管理 178
6.1.1 项目管理的特点 179
6.1 项目管理概述 179
6.1.2 项目管理的过程 180
6.2 项目计划 181
6.3 进度安排 182
6.4 项目估算 183
6.4.1 软件规模估算 184
6.4.2 软件开发成本估算 185
6.5 项目组织 187
6.5.1 组织原则 187
6.5.2 人员配备 187
6.6.1 软件质量及质量保证 188
6.6 软件质量 188
6.6.2 质量保证的主要内容 189
6.6.3 质量保证体系 189
6.6.4 软件工程标准化 190
6.6.5 CMM模型 192
6.7 软件配置管理 193
6.7.1 概述 194
6.7.2 配置管理的过程 194
本章小结 196
6.8 常用软件项目管理工具 196
习题 197
第7章 软件工程的未来 198
7.1 软件工程的发展前景和研究方向 199
7.1.1 软件体系结构 199
7.1.2 软件复用 201
7.1.3 分布计算和分布对象技术 203
7.1.4 面向Agent的软件工程 205
7.1.5 敏捷方法 210
7.1.6 网络时代软件工程技术发展的趋势 212
7.1.7 软件工程理论研究和实践的结合 215
7.1.8 软件工程管理 216
7.2 我国软件产业的现状和发展趋势 218
7.2.1 政府大力支持软件产业发展 219
7.2.2 软件企业由弱到强 220
7.2.3 中国软件产业的特征 221
7.2.4 中国软件产业的发展趋势 223
7.3 软件工程教育 225
7.3.1 法律意识和职业素质 225
7.3.2 国际化与软件工程教育 227
7.3.3 多元化与软件工程教育 228
7.3.4 本地化与软件工程教育 229
7.3.5 工程化与软件工程教育 230
本章小结 232
附录 233
附录1 软件工程中国国家标准目录 233
附录2 GB 8567—88软件开发主要文档编写规范 234
附录3 软件工程职业道德规范和实践要求 255
附录4 软件工程资料网址 260
主要参考文献 261