第一章 软件工程概述 1
1.1 软件 1
1.1.1 软件的发展 1
1.1.2 软件的定义 2
1.1.3 软件的特点 2
1.1.4 软件的分类 4
1.2 软件工程概念 6
1.2.1 软件危机与软件工程的定义 6
1.2.2 软件工程的基本内容与目标 9
1.2.3 软件工程的原则 9
1.3 软件生存周期与软件开发模型 10
1.3.1 软件生存周期 10
1.3.2 软件开发模型 11
小结 19
习题一 19
第二章 可行性研究 20
2.1 可行性研究的任务 20
2.2 可行性研究的步骤 21
2.3 系统流程图 22
2.4 成本效益分析 24
2.4.1 成本估计 24
2.4.2 费用估计 25
2.4.3 几种度量效益的方法 26
小结 27
习题二 27
3.1.1 需求分析的任务 28
3.1 需求分析的任务与步骤 28
第三章 需求分析 28
3.1.2 需求分析的步骤 30
3.1.3 需求分析的原则 33
3.2 需求分析的方法 34
3.2.1 面向数据流的需求分析方法 35
3.2.2 数据流图 36
3.2.3 数据字典 43
3.3 图形工具 48
3.3.1 层次方框图 48
3.3.2 Warnier图 49
3.3.3 IPO图 49
3.4 需求规格说明与评审 50
3.4.1 需求规格说明的主要内容 50
3.4.3 需求分析评审的方法 51
3.4.2 需求分析的评审 51
小结 52
习题三 52
第四章 概要设计 54
4.1 概要设计的任务与步骤 54
4.1.1 概要设计任务 54
4.1.2 概要设计的过程 54
4.2 软件设计的概念与原则 56
4.2.1 概块化 56
4.2.2 抽象与逐步求精 57
4.2.3 信息隐蔽和局部化 59
4.2.4 模块独立性 59
4.2.5 结构设计原则 64
4.3 面向数据流的设计方法 67
4.3.1 基本概念 68
4.3.2 系统结构图的组成 69
4.3.3 变换分析 70
4.3.4 事务分析 74
4.3.5 设计优化 76
4.4 面向数据结构的分析设计方法 76
4.4.1 Jackson系统开发方法 76
4.4.2 Warnier方法 86
4.5 概要设计文档评审 87
小结 88
习题四 88
5.1.1 详细设计的任务 89
5.1.2 详细设计的原则 89
5.1 详细设计的任务与原则 89
第五章 详细设计 89
5.2 详细设计的方法 90
5.2.1 程序流程图 90
5.2.2 N-S图 92
5.2.3 PAD图 93
5.2.4 PDL 95
5.2.5 HIPO图 96
5.2.6 详细设计工具的选择 97
5.3 详细设计规格说明与复审 98
5.3.1 详细设计说明书 98
5.3.2 设计复审 99
小结 99
习题五 100
第六章 面向对象的分析和设计方法 101
6.1 面向对象方法的基本概念和特征 101
6.1.1 面向对象方法概述 101
6.1.2 面向对象的软件工程(OOSE) 103
6.1.3 面向对象的基本概念和特征 107
6.2 面向对象的分析 115
6.2.1 面向对象分析基本过程及原则 115
6.2.2 确定对象、类 119
6.2.3 确定属性 122
6.2.4 定义服务 123
6.2.5 对象间通信 126
6.3 面向对象设计 132
6.3.1 面向对象设计的基本概念 133
6.3.2 面向对象设计的方法 134
6.4 UML方法 137
6.4.1 UML的发展 137
6.4.2 UML的表示法 141
6.4.3 UML软件开发过程概述 154
小结 156
习题六 156
第七章 编码 157
7.1 程序设计语言 157
7.1.1 程序设计语言分类 157
7.1.2 程序设计语言的特点 159
7.1.3 程序设计语言的选择 161
7.2 编码风格 163
7.2.1 源程序文档化 164
7.2.3 语句结构 166
7.2.2 数据说明 166
7.2.4 输入/输出(I/O) 169
7.3 程序效率 169
7.3.1 有关程序效率的几条准则 169
7.3.2 算法对效率的影响 170
7.3.3 影响存储器效率的因素 170
7.3.4 影响输入/输出的因素 170
7.4 编程安全 171
7.4.1 冗余程序设计 171
7.4.2 防错程序设计 172
7.5 面向对象程序设计步骤 173
小结 173
习题七 174
8.2 影响软件质量的因素 175
第八章 软件质量与质量保证 175
8.1 软件质量的定义 175
8.3 软件质量保证策略 176
8.4 软件质量保证活动 177
8.5 软件评审 178
8.5.1 设计质量的评审内容 179
8.5.2 程序质量的评审内容 184
8.6 软件质量保证的标准 186
8.7 结构化的软件测试 188
8.7.1 软件测试的概念和原则 188
8.7.2 软件测试技术 190
8.7.3 测试的步骤 197
8.7.4 软件纠错技术 201
8.8.1 面向对象分析和面向对象设计的模型测试 203
8.8 面向对象的软件测试 203
8.8.2 面向对象的测试策略 205
8.8.3 面向对象软件测试集设计 206
8.9 软件测试计划与测试分析报告 208
8.10 软件维护 210
8.10.1 软件维护的定义、分类、特点 210
8.10.2 软件维护步骤及组织 212
8.10.3 软件的可维护性 216
8.10.4 软件维护的副作用 217
8.10.5 逆向工程和再生工程 218
小结 219
习题八 220
9.1.1 软件项目的特点 221
9.1 软件项目的特点与软件管理功能 221
第九章 项目计划与管理 221
9.1.2 软件管理的功能 222
9.1.3 确定软件项目的工作范围 222
9.2 确定软硬件资源 222
9.2.1 人力资源 223
9.2.2 硬件 223
9.2.3 软件 223
9.3 人员的计划和组织 224
9.4 成本估计及控制 225
9.4.1 软件开发成本估计方法 225
9.4.2 专家判定技术 226
9.4.3 成本估算模型 226
9.5.2 各阶段工作量的分配 229
9.5.1 软件工作的特殊性 229
9.5 进度计划 229
9.5.3 制定开发进度 230
9.6 软件配置管理 231
9.6.1 基线 231
9.6.2 软件配置项 232
9.6.3 软件配置管理过程 234
9.7 软件管理方案 237
小结 238
习题九 238
第十章 软件开发工具与环境概述 239
10.1 软件开发工具概述 239
10.2 软件开发工具的功能 239
10.3 软件开发工具的特性 240
10.4 软件开发工具的分类 241
10.5 软件开发环境 243
10.6 常用开发环境 245
10.6.1 Windows98开发环境 245
10.6.2 WindowsNT开发环境 249
10.6.3 Linux开发环境 252
10.6.4 Unix程序开发环境 257
10.7 软件开发环境与工具的研究、应用及发展 261
10.8 CASE技术 262
小结 264
习题十 264
11.1.1 PowerDesigner6.0概述 265
11.1.2 PowerDesigner6.0的模块组成 265
11.1 PowerDesigner6.0简介 265
第十一章 PowerDesigner 265
11.1.3 PowerDesigner6.0的模型和对象特性 267
11.2 ProcessAnalyst 267
11.2.1 概述 267
11.2.2 PA应用实例 272
11.3 DataArchitect 290
11.3.1 DataArchitect概述 290
11.3.2 DataArchitect的概念数据模型(CDM) 297
11.3.3 DataArchitect的物理数据模型 304
小结 309
习题十一 309
第十二章 课程实验 310
12.1 实验一:撰写可行性研究报告 310
12.2 实验二:撰写需求规格说明书 315
12.3 实验三:撰写概要设计说明书 322
12.4 实验四:撰写详细设计说明书 330
12.5 实验五:UML的使用 347
12.6 实验六:使用Word编写软件工程文档 366
12.7 实验七:熟悉PowerDesigner环境 376
附录 398
附录1 可行性研究报告规范 398
附录2 项目开发计划规范 402
附录3 需求规格说明书规范 405
附录4 概要设计说明书规范 409
附录5 详细设计说明书规范 412
附录6 项目开发总结报告规范 414
附录7 用Word撰写文档规范 417
参考文献 421