第1章 概述 1
1.1软件工程的概论 1
1.1.1软件工程的概念 1
1.1.2软件工程的发展 2
1.2软件开发技术 6
1.2.1软件生存期模型 6
1.2.2软件开发方法 12
1.3软件开发环境 15
1.3.1软件开发环境简介 16
1.3.2软件开发环境的分类 16
1.3.3软件开发环境的功能 18
1.4小结 18
习题1 19
第2章 可行性研究 20
2.1可行性研究的任务与步骤 20
2.1.1研究任务 20
2.1.2研究步骤 22
2.2系统分析 24
2.2.1系统分析的任务 24
2.2.2分析原理 25
2.2.3系统分析方法 26
2.2.4系统分析员 27
2.3系统分析工具 28
2.3.1系统流程图 28
2.3.2数据流图 30
2.3.3数据字典 33
2.4项目开发计划 34
2.4.1项目计划目标 34
2.4.2项目范围 35
2.4.3软件估算 37
2.5成本—效益分析 43
2.5.1成本估计 43
2.5.2成本—效益分析法 44
2.5.3成本—效益分析的案例 45
2.6可行性研究报告 49
2.7小结 56
习题2 56
第3章 需求分析 57
3.1什么是需求分析 57
3.1.1需求分析的任务 57
3.1.2需求的种类 58
3.1.3需求分析的步骤 60
3.1.4需求分析的方法 64
3.1.5需求分析的参与者 66
3.2结构化分析 67
3.2.1面向数据流的结构化分析方法 67
3.2.2结构化分析的分层思想 68
3.2.3结构化分析的步骤 70
3.2.4数据流图分析过程中可能出现的问题 73
3.3需求分析的其他工具 75
3.3.1分析数据模型的工具 75
3.3.2分析行为模型的工具 76
3.3.3分析数据加工的工具 78
3.4需求分析文档 79
3.4.1编写需求规格说明书的步骤 79
3.4.2需求规格说明书 80
3.5小结 83
习题3 83
第4章 概要设计 87
4.1什么是概要设计 87
4.1.1概要设计的任务 87
4.1.2概要设计的过程 87
4.1.3概要设计的方法 90
4.1.4概要设计的参与者 90
4.2概要设计的原理及启发式规则 91
4.2.1抽象与求精 91
4.2.2模块与模块化 93
4.2.3耦合与内聚 94
4.2.4信息隐蔽与信息局部化 101
4.2.5启发式规则 102
4.3软件结构设计的图形工具 106
4.3.1层次图和HIPO图 106
4.3.2结构图 107
4.4软件结构设计 109
4.4.1基于DFD的变换分析与事务分析 109
4.4.2基于数据流图的结构映射 111
4.4.3结构化设计的步骤 115
4.4.4设计优化 115
4.4.5变换分析举例 115
4.4.6事务分析举例 120
4.4.7混合型举例 122
4.5概要设计文档 123
4.5.1编写概要设计说明书的步骤 123
4.5.2概要设计说明书 124
4.6小结 127
习题4 127
第5章 详细设计 129
5.1什么是详细设计 129
5.1.1详细设计的任务 129
5.1.2详细设计的过程 129
5.1.3详细设计的内容 130
5.1.4详细设计的参与者 132
5.2详细设计的工具 132
5.2.1程序流程图 132
5.2.2盒图 136
5.2.3 PAD图 139
5.2.4判定表 141
5.2.5判定树 142
5.2.6伪代码 143
5.3人机界面设计 148
5.3.1人机界面设计问题 149
5.3.2用户界面设计过程 151
5.3.3用户界面设计的基本原则 152
5.3.4用户界面设计指南 152
5.4程序复杂程度的定量度量 154
5.4.1 McCabe方法 154
5.4.2 Halstead方法 158
5.5详细设计说明书 159
5.5.1编写详细设计说明书的步骤 159
5.5.2详细设计说明书 160
5.6小结 162
习题5 162
第6章 编码与测试 166
6.1编码 166
6.1.1程序设计语言 166
6.1.2程序设计风格及程序效率 169
6.1.3编码工具及环境 173
6.2测试 175
6.2.1软件测试的基本概念 175
6.2.2白盒测试技术 181
6.2.3黑盒测试技术 190
6.2.4软件测试阶段 196
6.2.5面向对象软件测试 207
6.2.6软件测试工具 211
6.2.7软件测试文档 214
6.3小结 218
习题6 219
第7章 软件维护与项目管理 222
7.1软件维护 222
7.1.1软件维护概述 222
7.1.2软件的可维护性 223
7.1.3软件维护的实施 224
7.2软件再工程 226
7.2.1软件再工程概念 226
7.2.1逆向工程 229
7.2.2重构 232
7.3项目管理 234
7.3.1项目管理的概念 234
7.3.2项目管理的对象 235
7.4项目度量 237
7.4.1软件度量 237
7.4.2质量度量 240
7.4.3集成度量 242
7.5风险分析 242
7.6小结 246
习题7 247
第8章 面向对象分析 248
8.1面向对象方法学概述 248
8.1.1对象 250
8.1.2类 251
8.1.3封装 251
8.1.4继承 252
8.1.5消息 252
8.1.6结构与连接 253
8.1.7多态性 254
8.2统一建模语言UML 254
8.3面向对象分析 258
8.3.1需求陈述 258
8.3.2建立对象模型 258
8.3.3建立动态模型 261
8.3.4建立功能模型 263
8.3.5定义服务 263
8.4小结 263
习题8 264
第9章 面向对象设计 265
9.1面向对象设计概述 265
9.2面向对象设计 266
9.2.1设计原则 266
9.2.2信息系统的架构设计 267
9.3类与对象的设计 274
9.3.1通用日记账财务系统的系统分析模型 274
9.3.2通用日记账财务系统的系统设计模型 277
9.4面向对象软件工程方法的合理应用 278
9.4.1软件体系结构对软件工程方法的影响 278
9.4.2对RUP/UML的评价 280
9.5小结 281
习题9 281
第10章 软件工程实例分析 282
10.1软件工程标准与软件文档 282
10.1.1软件工程标准 282
10.1.2文档编写技巧 285
10.2项目实训及案例分析 288
10.2.1软件工程实训简介 288
10.2.2心与心缘网实例分析 292
10.3小结 317
习题10 317
主要参考文献 320