目录 1
第1章 软件工程与软件文档 1
1.1 软件 1
1.1.1 软件的概念 1
1.1.2 软件的特点 2
1.2 软件的分类和发展 4
1.2.1 软件的分类 4
1.2.2 软件的发展历史和软件危机 5
1.3 软件工程 8
1.3.1 软件工程构成三要素 9
1.3.2 软件工程目标 10
1.3.3 软件工程的原则 11
1.3.4 12个在不同场合反复出现的概念 12
1.4.1 文档的地位和作用 14
1.4 软件文档在软件开发中的地位和作用 14
1.4.2 对文档的基本要求 15
1.4.3 软件文档的种类 18
习题1 20
第2章 软件生命周期、过程模型和CASE 21
2.1 软件生命周期 21
2.1.1 软件定义 22
2.1.2 软件开发 24
2.1.3 软件使用、维护和退役 25
2.2 软件开发模型 25
2.2.1 瀑布模型 26
2.2.2 快速原型模型 27
2.2.3 增量模型 28
2.2.4 螺旋模型 29
2.2.5 面向对象开发模型 30
2.2.6 其他模型 31
2.2.7 各种模型的比较 32
2.3 CASE工具和环境 33
2.3.1 计算机辅助软件工程 33
2.3.2 CASE工具 34
2.4 可行性分析阶段的系统流程图 35
2.4.1 系统流程图 35
2.4.2 使用系统流程图的例子 36
2.5 可行性研究报告和项目开发计划 38
2.5.1 可行性研究报告的编写目的 38
2.5.2 可行性研究报告的主要内容及写作要求 39
2.5.3 项目开发计划 44
习题2 45
3.1 软件文档 46
3.1.1 软件文档定义 46
第3章 软件文档写作 46
3.1.2 软件文档的工作 47
3.1.3 对文档编制的质量要求 48
3.2 软件文档的编写步骤 50
3.2.1 准备工作 50
3.2.2 确定写作内容 52
3.2.3 编写定稿 54
3.2.4 更新完善 55
3.3 如何写好计算机软件文档 56
3.3.1 做好准备 56
3.3.2 讲究文风 59
3.3.3 注重表达 60
3.3.4 加强文档编写使用的组织管理 61
3.3.5 文档写作中值得注意的几个问题 63
习题3 66
4.1.1 需求分析的目标 67
第4章 需求分析基础 67
4.1 软件需求分析的目标和过程 67
4.1.2 需求分析的过程 68
4.2 需求获取技术 69
4.2.1 需求获取技术 69
4.2.2 实例分析 70
4.3 需求分析和描述技术 71
4.3.1 需求建模 71
4.3.2 问题抽象、问题分解与多视点分析 71
4.3.3 用于支持需求分析的快速原型化方法 72
4.3.4 需求管理的内容 75
4.4 需求分析人员 78
4.4.1 需求分析人员面临的挑战 78
4.4.2 需求分析人员的原则和策略 79
4.4.3 需求分析人员应采用的技术 79
4.5 软件需求规格说明和需求评审 80
4.6 软件需求规格说明书 81
习题4 83
第5章 面向数据流的分析 84
5.1 结构化分析方法 84
5.1.1 数据建模 85
5.1.2 功能建模和数据流 86
5.1.3 行为建模 91
5.1.4 数据词典 93
5.1.5 画数据流图的注意事项 94
5.2 面向数据流的分析过程 96
5.2.1 创建实体关系图 96
5.2.2 创建数据流模型 97
5.2.3 创建行为模型 100
5.3 面向数据流的软件需求分析文档 101
5.2.4 编写加工规格说明 101
习题5 106
第6章 面向对象的需求分析方法 108
6.1 什么是面向对象 108
6.1.1 面向对象概念 108
6.1.2 对象 109
6.2 面向对象需求分析的过程 115
6.3 面向对象分析 116
6.3.1 OOA基本认识和基本方法 116
6.3.2 Coad与Yourdon的OOA方法 119
6.4 面向对象的需求分析文档 125
习题6 128
第7章 统一建模语言UML 129
7.1 软件建模的意义 129
7.2 UML简介 130
7.2.1 视图 131
7.2.2 图 132
7.2.3 模型元素 134
7.2.4 语义规则 135
7.2.5 UML主要部分的逻辑关系 135
7.3 UML的用例分析过程 138
7.4 类和对象建模 147
7.4.1 类图和对象图 147
7.4.2 确定类 148
7.4.3 UML中类之间的关系 150
7.4.4 包 156
7.4.5 模板 157
7.4.6 一个类图的实例 157
7.5.2 状态图 158
7.5.1 消息 158
7.5 动态建模 158
7.5.3 时序图 159
7.5.4 协作图 165
7.5.5 活动图 169
7.6 物理体系结构建模 171
7.6.1 逻辑体系结构和物理体系结构 173
7.6.2 构件图 174
7.6.3 配置图 176
7.7 支持UML的CASE工具——ROSE 178
7.7.1 Rose的功能与特点 178
7.7.2 Rose主界面 179
7.7.3 Rose的基本操作 181
7.7.4 使用Rose的若干体会 182
7.8.1 UML过程的基础 183
7.8 使用UML的过程 183
7.8.2 面向对象方法的一般过程 185
7.8.3 Rational Objectory过程 187
7.9 利用UML视图的需求说明书 188
习题7 195
第8章 面向数据流的软件设计 196
8.1 软件设计基础 196
8.1.1 软件设计的原则 198
8.1.2 软件体系结构 201
8.1.3 有效的模块设计 203
8.2 面向数据流的设计 207
8.2.1 面向数据流的概要设计 207
8.2.2 面向数据流的详细设计 214
8.2.3 面向数据流的设计举例 223
8.3 设计规格说明与设计评审 225
8.4.1 概要设计说明书 227
8.4 概要设计说明书和详细设计说明书 227
8.4.2 详细设计说明书 229
习题8 231
第9章 面向对象的软件设计 232
9.1 面向对象设计 232
9.1.1 高层设计 232
9.1.2 类设计的目标和方针 234
9.1.3 通过复用设计类 235
9.1.4 类设计方法 237
9.1.5 面向对象设计的应用状况 238
9.2 对象模型技术 238
9.2.1 对象模型 239
9.2.2 动态模型 244
9.2.3 功能模型 247
9.3.1 问题论域部分的设计 248
9.2.4 基于三个模型的分析过程 248
9.3 Coad与Yourdon面向对象设计方法 248
9.3.2 用户界面部介的设计 250
9.3.3 任务管理部分的设计 252
9.3.4 数据管理部分的设计 253
9.4 设计模式 255
9.4.1 设计模式的研究状况 255
9.4.2 设计模式对软件开发的作用 256
9.4.3 设计模式的定义 256
9.4.4 面向对象的设计模式 256
9.4.5 设计模式的描述 257
9.5 框架 258
9.5.1 框架的定义 258
9.5.2 白盒框架 258
9.5.3 黑盒框架 260
9.5.4 框架与设计模式 261
9.6 基于UML的面向对象软件设计文档 261
习题9 270
第10章 程序编码 271
10.1 编码概念 271
10.2 结构化程序设计 272
10.3 程序设计语言 275
10.3.1 程序设计语言分类 275
10.3.2 程序设计语言的基本成分 276
10.3.3 程序设计语言选择 279
10.4 编码风格 281
10.5 编码策略与编码CASE工具 283
10.5.1 编码策略 283
10.5.2 支持编码的CASE工具 284
习题10 285
第11章 软件测试与测试文档 288
11.1 软件测试的概念和原则 288
11.1.1 软件的错误 288
11.1.2 软件测试的目标和原则 289
11.1.3 软件测试信息流 291
11.2 软件测试方法 292
11.2.1 软件测试方法概述 292
11.2.2 黑盒测试方法 294
11.2.3 白盒测试方法 296
11.2.4 程序的静态测试 298
11.3 软件测试过程管理 301
11.3.1 软件测试过程 301
11.3.2 单元测试 302
11.3.3 集成测试 305
11.3.4 确认测试 307
11.3.5 系统测试 309
11.3.6 软件调试 310
11.3.7 测试中的可靠性分析 312
11.4 软件测试自动化 314
11.4.1 测试自动化的意义 314
11.4.2 测试自动化的若干做法 315
11.4.2 支持测试自动化的CASE工具 318
11.5 软件测试文档 319
11.5.1 测试文档的类型和作用 319
11.5.2 测试计划的主要内容和写作要求 320
11.5.3 测试分析报告的主要内容和写作要求 322
习题11 323
12.1 软件维护的概念 325
12.1.1 软件维护的定义 325
第12章 软件维护 325
12.1.2 软件维护的特点 326
12.1.3 软件的可维护性 328
12.1.4 提高可维护性的方法 329
12.2 软件维护的实施 332
12.2.1 软件维护流程 332
12.2.2 软件维护的副作用 334
12.3 软件再工程 335
12.3.1 逆向工程与软件再工程 335
12.3.2 基于ROSE的逆向工程 339
12.4 软件维护阶段文档 341
12.4.1 维护申请单 342
12.4.2 维护报告单 342
12.4.3 用户手册的主要内容及写作要求 343
习题12 345
参考文献 346