目录 3
《计算机等级考试教程》序言 3
前 言 3
第1篇软件工程原理 3
第1章软件工程概论 3
1.1软件工程产生的背景与软件 3
危机 3
1.1.1软件开发技术的发展时期 3
1.1.2软件危机 5
1.1.3软件工程 6
1.2软件生存周期 7
1.2.1软件生存周期的概念 7
1.2.2软件开发的瀑布模型 8
1.3软件质量评价 10
习题 12
2.2可行性研究的步骤 14
2.1可行性研究的任务 14
第2章可行性研究 14
2.3系统流程图 16
习题 18
第3章需求分析 19
3.1需求分析的基本概念 19
3.1.1需求分析的任务 19
3.1.2需求分析步骤 20
3.1.3软件需求规格说明书 21
3.2.2描述方式 22
3.2结构化分析(SA)方法 22
3.2.1 自顶向下逐层分解 22
3.2.3 SA导出逻辑模型的步骤 23
3.3数据流图 23
3.3.1数据流图的成分和对 23
系统的分解 23
3.3.2怎样画数据流图 26
3.4.1数据词典的内容 31
3.4数据词典 31
3.4.2数据的定义方法 33
3.4.3数据词典的实现和使用 34
3.5数据处理的描述方法 35
3.5.1数据处理的描述 35
*3.5.2结构化语言 36
3.5.3判定表 37
*3.5.4判定树 40
3.5.5三种描述方法的比较 41
3.6需求分析阶段的其它工作 42
习题 43
第4章总体设计 45
4.1 引言 45
4.2软件工程学的基本原则 45
4.2.1模块化 46
4.2.2抽象 47
4.2.3信息隐藏 49
4.3.1模块独立性的概念 51
4.3模块独立性的度量 51
4.2.4信息局部化 51
4.2.5其它原则 51
4.3.2模块独立性的度量之一: 52
耦合性 52
4.3.3模块独立性的度量之二: 56
内聚性 56
*4.3.4耦合、内聚与模块独立性关系 59
4.4软件结构的优化准则 60
4.5结构设计中的图形工具 66
4.5.1层次图和HIPO图 66
4.5.2结构图 67
4.6面向数据流的设计方法 70
4.6.1面向数据流设计方法的 70
基本概念 70
结构的设计 74
4.6.2变换型数据流图到软件 74
4.6.3事务型数据流图到软件 76
结构的设计 76
*4.6.4综合型数据流图到软件 76
结构的设计 76
*4.6.5导出软件初始结构中的 78
有关问题 78
*4.6.6设计优化 79
4.7总体设计的其它工作 83
习题 84
第5章详细设计 87
5.1详细设计的概念 87
5.2结构化程序设计(SP)方法 88
5.3详细设计的描述方法 91
5.3.1程序流程图 92
5.3.2盒图(N—S图) 92
5.3.3 问题分析图(PAD) 94
*5.3.4把非结构化程序变换为结构化程序的方法 97
5.3.5过程设计语言(PDL) 98
5.3.6模块开发卷宗 101
5.4 Jackson程序设计方法 102
5.4.1 Jackson方法的设计步骤 102
5.4.2 Jackson方法的三种基本 102
结构和图式 102
5.4.3 由数据结构的对应关系导出程序结构 104
5.4.4列出和分配操作 106
5.4.5用伪码表示程序 107
5.4.6结构冲突 109
*5.5 Warnier程序设计方法 109
*5.5.1 Warnier图 109
*5.5.2 Warnier方法 110
习题 112
6.1 引言 115
6.2程序语言的选择 115
第6章编码 115
6.3程序设计风格 118
6.3.1程序内部的文档 118
6.3.2变量命名与匈牙利命名规则 119
6.3.3数据说明 122
6.3.4语句构造 123
6.3.5输入/输出 124
6.3.6效率 124
习题 125
第7章测试 126
7.1测试的基本概念 126
7.1.1什么是软件测试 126
7.1.2测试的基本原则 127
7.1.3软件测试步骤及与各 128
开发阶段的关系 128
7.1.4软件测试信息流 129
测试方法 130
7.2软件测试策略 130
7.2.1静态测试方法与动态 130
7.2.2白盒测试与黑盒测试 131
7.2.3穷举测试 132
7.2.4人工测试 132
7.3白盒测试技术 135
7.3.1逻辑覆盖 135
*7.3.2最少测试用例数计算 139
*7.3.3测试覆盖准则 141
*7.3.4符号测试 141
7.4黑盒测试技术 143
7.4.1等价类划分 143
7.4.2边界值分析 147
*7.4.3因果图 148
7.4.4错误推测和判定表 150
驱动测试 150
7.4.5综合策略 150
7.5单元测试 151
7.6集成测试 153
7.6.1 自顶向下结合 154
7.6.2自底向上结合 155
7.7验收测试 156
7.7.1验收测试标准 156
7.7.2软件配置复查 157
*7.7.3 Alpha(α)和Beta(β)测试 157
7.9.1调试方法 158
7.9调试 158
7.8系统测试 158
*7.9.2调试策略 159
习题 161
*第8章软件维护 163
8.1软件维护的概念 163
8.1.1软件维护的定义 163
8.1.2软件维护的生产特性 164
8.2.1结构化与非结构化的维护 165
8.2软件维护的困难和问题 165
8.2.2软件维护的成本 166
8.3软件维护的组织和实施 167
8.3.1软件维护的组织 167
8.3.2维护报告 168
8.3.3软件维护的事件流 168
8.3.4存档软件维护的记录 168
8.4软件维护的副作用 169
8.4.1修改代码的副作用 170
8.4.2修改数据的副作用 170
8.4.3文档的副作用 170
8.5软件配置管理 171
8.5.1软件配置管理的概念 171
8.5.2软件配置项(SCI) 172
8.5.3软件配置管理的内容 172
8.5.4软件配置管理的处理 172
8.5.5软件文档管理 174
习题 176
*第9章软件工程管理 178
9.1软件项目计划 178
9.1.1软件项目计划的概念 178
9.1.2软件项目计划内容 179
9.1.3制定和实施软件工程规范 180
9.2成本估算 181
9.2.1 COCOMO模型 181
9.2.2 Putnam估算模型 183
9.2.3软件成本估算的其它方法 183
9.3进度计划管理 184
9.3.1软件开发任务的并行性 184
9.3.2 Gantt图 185
9.3.3工程网络图 186
9.3.4估算进度 187
9.4.1人员资源 188
9.4资源管理 188
9.4.2硬件资源 189
9.4.3软件资源 189
9.5人员组织 190
9.6软件质量保证 190
习题 191
10.1 软件开发环境的类型和发展 195
10.1.1什么是软件开发环境 195
第2篇计算机辅助软件工程——软件开发环境第10章软件开发环境的概念 195
10.1.2软件开发环境的发展 196
10.1.3软件开发环境的类型 197
10.2对软件开发环境的要求 202
10.3软件开发环境的逻辑模型 203
10.3.1逻辑模型 203
10.3.2处理 204
10.3.3方法 205
10.3.4自动化 206
10.4.1软件开发环境的构成 207
10.4软件开发环境的构成和框架 207
10.4.2软件工程环境的框架 209
习题 213
第11章软件设计方法 214
11.1 引言 214
11.2 面向对象的设计方法 215
11.2.1面向对象设计的概念 215
11.2.2面向对象方法的设计步骤 217
11.2.3面向对象方法的其它 218
设计技术 218
11.3面向可再用的软件设计 224
方法 224
11.3.1软件再用的基本概念 224
11.3.2 可再用设计方法的工作模式 226
11.3.3可再用构件块的描述模式 226
11.4原型方法 228
11.4.1原型方法的概念 229
11.4.2计算机辅助原型系统 230
习题 232
第12章软件工具 233
12.1软件工具的基本概念 233
12.1.1什么是软件工具 233
12.1.2当前软件工具发展的特点 234
12.1.3软件工具的分类 236
12.1.4软件工具的评价和选择 238
12.1.5几种主要工具简介 241
12.2.1工具的集成性 243
12.2工具间集成的概念 243
12.2.2集成性与灵活性 245
12.3基于程序设计系统的 246
结构设计工具(SPD) 246
12.3.1 SPD的基本概念 246
12.3.2 SPD的成分 247
习题 249
13.1.1图形用户界面的概念 250
13.1 图形用户界面(GUI) 250
第13章用户界面与用户界面 250
开发系统(UIMS) 250
13.1.2图形用户界面的标准化 251
13.2用户界面开发系统(UIMS) 254
13.2.1 用户界面开发系统的结构模型 254
13.2.2 UIMS的任务和组成 255
13.2.3 UIMS的描述方法 255
13.3 UIMS的实例—— 258
HyperNews系统 258
13.3.1 HyperNews简介 258
13.3.2 Hyper News的对象类层次模型与设计模型 258
13.3.3界面实现 259
13.3.4通信能力—— 260
对话控制层的主体 260
13.3.5对应用的连接—— 261
应用界面模型 261
习题 263
第14章软件工程环境的数据库 264
14.1软件工程环境信息库的作用 264
和对它的要求 264
14.1.1环境信息库的作用 264
14.1.2对环境信息库的要求 265
14.2传统数据库的不足 266
14.2.1数据库的非传统应用 266
14.2.2传统数据库对非传统 268
应用的不适应性 268
14.3可扩充的数据库系统 270
14.3.1面向应用的扩充 270
14.3.2面向系统的扩充 270
14.4 可扩充的DBMS实例 271
习题 274
参考文献 274