目 录 1
第1章软件工程概述 1
1.1软件 2
1.1.1软件的定义 2
1.1.2软件的特点及最新发展 2
1.1.3软件的分类 4
1.2软件工程概念 5
1.2.1软件危机 5
1.2.2软件危机的原因及解决方法 5
1.2.3软件工程的概念 6
1.2.4软件工程的原则 6
1.3.1软件生存周期 7
1.3软件生存周期与开发模型 7
1.3.2软件开发模型 9
习题 11
第2章结构化分析 13
2.1软件定义过程概述 13
2.1.1问题的定义 13
2.1.2可行性研究 13
2.1.3需求分析 14
2.2结构化分析 16
2.2.1结构化分析方法概述 16
2.2.2数据流图 17
2.2.3数据词典 21
2.2.4加工逻辑的描述方法 23
2.3.1需求规格说明的主要内容 24
2.3需求规格说明与评审 24
2.3.2需求分析的评审 25
2.4需求规格说明书写作范例 26
习题 28
第3章概要设计 30
3.1概要设计的任务与步骤 30
3.1.1概要设计的任务 30
3.1.2概要设计的过程 31
3.2软件设计的概念与原则 32
3.2.1模块化 32
3.2.2抽象与逐步求精 32
3.2.3信息隐蔽和局部化 33
3.2.4模块独立性 33
3.2.5设计准则 35
3.3面向数据流的设计方法 37
3.3.1基本概念 37
3.3.2系统结构图 38
3.3.3变换分析 39
3.3.4事务分析 41
3.3.5设计优化 42
3.4概要设计文档评审 43
3.5概要设计文档写作范例 43
习题 45
第4章详细设计 47
4.1详细设计的任务与原则 47
4.1.1详细设计的任务 47
4.2详细设计的方法 48
4.2.1程序流程图 48
4.1.2详细设计的原则 48
4.2.2 N-S图 50
4.2.3 PAD图 50
4.2.4 PDL 52
4.3详细设计规格说明书与评审 53
4.3.1详细设计说明书 53
4.3.2详细设计复审 53
4.4详细设计文档写作范例 54
习题 55
第5章面向对象的分析和设计 57
5.1面向对象方法概述 57
5.1.1面向对象方法概述 58
5.1.2面向对象的软件工程 59
5.1.3面向对象的基本概念和特征 62
5.1.4面向对象的开发方法 67
5.2面向对象分析 70
5.2.1 OOA方法概述 70
5.2.2确定对象 74
5.2.3确立结构 75
5.2.4确立主题 76
5.2.5确定属性 76
5.2.6确定服务和消息 77
5.3面向对象设计 78
5.3.1 OOD方法概述 78
5.3.2人机交互子系统的设计 78
5.3.3问题域子系统的设计 79
5.3.4任务管理部分的设计 81
5.3.6 OOD的基本准则 82
5.3.5数据管理部分的设计 82
习题 83
第6章统一建模语言UML 84
6.1 UML概述 84
6.1.1UML概念 84
6.1.2UML的发展过程 85
6.1.3 UML的主要内容 85
6.1.4标准建模语言UML的应用领域 87
6.2 UML的概念模型 88
6.2.1 UML的构造块 88
6.2.2 UML的规则 91
6.3 UML的静态建模机制 92
6.3.1用例图 92
6.2.3UML中的公共机制 92
6.3.2类图 96
6.3.3对象图 101
6.3.4包 101
6.3.5使用类图的几个建议 102
6.4 UML的动态建模机制 103
6.4.1对象之间的交互 103
6.4.2状态图 104
6.4.3交互图 107
6.4.4活动图 109
6.4.5四种图的运用 111
习题 112
第7章面向对象分析与设计范例 113
7.1.1案例背景介绍 114
7.1.2需求获取 114
7.1系统需求获取 114
7.2分析问题领域 116
7.2.1高层用例识别 116
7.2.2用例分析 118
7.3静态建模 121
7.3.1确定对象 121
7.3.2描述对象的属性 122
7.3.3描述对象之间的关联 123
7.4动态建模 125
7.4.1动态用例分析 125
7.4.2对象状态分析 128
7.4.3描述对象操作 130
7.5系统设计 131
7.5.1系统总体设计 132
7.5.2系统详细设计 135
习题 137
第8章程序编码 139
8.1程序设计语言 139
8.1.1程序设计语言分类 139
8.1.2程序设计语言的特点 141
8.1.3程序设计语言的选择 143
8.2编码风格 144
8.3程序调试 146
8.3.1调试过程 146
8.3.2调试途径 147
8.4面向对象程序设计 148
8.4.1面向对象语言的一些技术特点 148
8.4.2面向对象语言的选择 151
习题 152
第9章软件测试 153
9.1软件测试 153
9.1.1软件测试概述 153
9.1.2测试方法 155
9.1.3测试过程 156
9.2测试用例设计 160
9.2.1白盒子法测试用例设计 160
9.2.2黑盒子法测试用例设计 163
9.3程序调试 164
9.4面向对象测试 165
习题 166
10.1软件维护的内容 167
第10章软件维护 167
10.2软件维护的特点 169
10.2.1非结构化维护和结构化维护 169
10.2.2维护的困难性 170
10.2.3软件维护的费用 170
10.3软件维护的实施 171
10.3.1维护的组织 171
10.3.2维护的流程 171
10.3.3维护技术 173
10.4维护的副作用 174
10.5软件可维护性 175
10.5.1影响可维护性的软件属性 175
10.5.2对可维护性的定量度量 176
10.5.3提高可维护性的途径 176
10.6软件再工程 177
习题 179
第11章配置管理与文档技术 180
11.1软件配置管理基本概念 180
11.1.1软件配置管理的概念 180
11.1.2软件配置项 181
11.1.3基线技术 182
11.2软件配置管理的任务 183
11.2.1配置标识 184
11.2.2版本控制 185
11.2.3变更控制 186
11.2.4配置状态报告 188
11.2.5配置审核 189
11.3软件文档技术 189
11.3.1软件文档的作用和分类 190
11.3.2对文档编制的质量要求 194
11.3.3文档的管理和维护 195
习题 196
第12章软件质量管理 197
12.1软件质量的定义 197
12.1.1软件质量定义 197
12.1.2影响软件质量的因素 198
12.2软件质量保证 199
12.2.1软件质量保证策略 199
12.2.2软件质量保证活动 200
12.3软件质量保证标准 201
12.3.1 ISO 9000基本思想 201
12.3.2 ISO 9000-3标准 202
12.4.2软件过程成熟度模型 205
12.4软件过程成熟度模型(CMM) 205
12.4.1软件机构的成熟性 205
12.4.3能力成熟度等级 207
12.4.4关键过程领域 208
12.4.5成熟度提问单 209
12.4.6 CMM的应用 210
习题 211
第13章软件复用和CASE技术 212
13.1软件复用概述 212
13.1.1软件复用的概念 212
13.1.2软件复用的种类、成分和意义 213
13.2面向对象与软件复用 215
13.3.1计算机辅助软件工程概述 216
13.3计算机辅助软件工程(CASE) 216
13.3.2集成化CASE环境(I-CASE) 217
习题 219
附录计算机软件开发文档编写指南 220
附录1可行性研究报告 220
附录2项目开发计划 224
附录3需求规格说明书 225
附录4概要设计说明书 227
附录5详细设计说明书 229
附录6测试计划 230
附录7测试分析报告 232
附录8开发进度月报 233
附录9项目开发总结报告 233
主要参考文献 235