第1章 绪论 1
1.1 基础知识 1
1.1.1 软件工程的产生 1
1.1.2 软件工程的概念 1
1.1.3 软件开发环境 2
1.1.4 软件工具 2
1.1.5 计算机辅助软件工程 2
1.2 单元练习 2
1.2.1 填空题 2
1.2.2 选择题 5
1.2.3 简答题 10
1.3 参考答案 11
第2章 软件工程的基本理论 21
2.1 基础知识 21
2.1.1 软件工程过程 21
2.1.2 软件生存周期 21
2.1.3 软件生存周期模型 21
2.1.4 软件开发的增量模型 22
2.1.5 软件开发方法 24
2.2 单元练习 24
2.2.1 填空题 24
2.2.2 选择题 27
2.2.3 简答题 32
2.3 参考答案 33
第3章 可行性研究 45
3.1 基础知识 45
3.1.1 可行性研究的任务 45
3.1.2 可行性研究的具体步骤 45
3.1.3 可行性研究报告的主要内容 46
3.1.4 成本-效益分析 46
3.1.5 项目开发计划 47
3.2 单元练习 47
3.2.1 填空题 47
3.2.2 选择题 48
3.2.3 简答题 52
3.3 参考答案 52
第4章 软件需求分析与概念模型 58
4.1 基础知识 58
4.1.1 需求分析的概念 58
4.1.2 需求分析的基本原则 58
4.1.3 需求分析的基本任务 58
4.1.4 结构化分析方法 59
4.1.5 结构化分析的步骤 59
4.1.6 数据流图 60
4.1.7 数据字典 60
4.1.8 加工逻辑的描述 60
4.1.9 IDEF方法 61
4.2 单元练习 61
4.2.1 填空题 61
4.2.2 选择题 63
4.2.3 简答题 75
4.3 参考答案 76
第5章 总体设计 91
5.1 基础知识 91
5.1.1 软件总体设计的基本任务 91
5.1.2 软件设计的基本原理 92
5.1.3 软件结构图 92
5.1.4 软件结构设计优化准则 93
5.1.5 面向数据流的设计方法 93
5.1.6 IDEF0图设计方法 95
5.1.7 表示软件结构的另一种 95
图形工具——HIPO图 95
5.2 单元练习 95
5.2.1 填空题 95
5.2.2 选择题 99
5.2.3 简答题 107
5.3 参考答案 107
第6章 软件细节设计 121
6.1 基础知识 121
6.1.1 详细设计的基本任务 121
6.1.2 结构化程序设计方法的基本要点 121
6.1.3 详细设计描述 121
6.1.4J ackson方法 122
6.2 单元练习 123
6.2.1 填空题 123
6.2.2 选择题 125
6.2.3 简答题 128
6.3 参考答案 129
第7章 面向对象方法学 136
7.1 基础知识 136
7.1.1 传统方法学的缺点 136
7.1.2 面向对象的基本概念 137
7.1.3 面向对象模型 138
7.2 单元练习 139
7.2.1 填空题 139
7.2.2 选择题 140
7.2.3 简答题 143
7.3 参考答案 144
第8章 面向对象分析 149
8.1 基础知识 149
8.1.1 分析的基本过程 149
8.1.2 发现对象的方法 149
8.1.3 定义属性与服务 149
8.1.4 定义结构 150
8.1.5 实例连接 150
8.2 单元练习 150
8.2.1 填空题 150
8.2.2 选择题 151
8.2.3 简答题 153
8.3 参考答案 154
第9章 面向对象设计 159
9.1 基础知识 159
9.1.1 设计的准则 159
9.1.2 启发式规则 159
9.1.3 面向对象程序设计 159
9.1.4 软件重用技术 159
9.2 单元练习 160
9.2.1 填空题 160
9.2.2 选择题 160
9.2.3 简答题 163
9.3 参考答案 163
第10章 形式化方法 168
10.1 基础知识 168
10.1.1 形式化方法的概念 168
10.1.2 有限状态机 168
10.1.3 Petri网 168
10.1.4 净室方法学 169
10.2 单元练习 169
10.2.1 填空题 169
10.2.2 选择题 170
10.2.3 简答题 171
10.3 参考答案 171
第11章 用户界面设计 173
11.1 基础知识 173
11.1.1 软件界面设计 173
11.1.2 设计人机交互子系统 173
11.1.3 图形用户界面设计 174
11.1.4 多媒体用户界面设计 174
11.2 单元练习 174
11.2.1 填空题 174
11.2.2 选择题 174
11.2.3 简答题 175
113 参考答案 175
第12章 软件质量 179
12.1 基础知识 179
12.1.1 软件质量的概念 179
12.1.2 质量度量模型 179
12.1.3 软件复杂性 179
12.1.4 软件可靠性 179
12.1.5 软件评审 180
12.1.6 软件容错技术 180
12.2 单元练习 180
12.2.1 填空题 180
12.2.2 选择题 183
12.2.3 简答题 193
12.3 参考答案 193
第13章 软件实现 203
13.1 基础知识 203
13.1.1 程序设计语言特性 203
13.1.2 程序设计语言的选择 203
13.1.3 程序设计风格 204
13.2 单元练习 205
13.2.1 填空题 205
13.2.2 选择题 206
13.2.3 简答题 213
13.3 参考答案 213
第14章 软件测试 223
14.1 基础知识 223
14.1.1 软件测试的目的 223
14.1.2 软件测试的原则 223
14.1.3 测试方法 223
14.1.4 黑盒测试法与白盒测试法 223
14.1.5 黑盒技术 224
14.1.6 白盒技术 224
14.1.7 软件测试过程 225
14.1.8 调试 226
14.2 单元练习 226
14.2.1 填空题 226
14.2.2 选择题 228
14.2.3 简答题 242
14.3 参考答案 242
第15章 软件维护 263
15.1 基础知识 263
15.1.1 软件维护的内容 263
15.1.2 软件维护的特点 263
15.1.3 软件维护的困难性 264
15.1.4 软件维护的费用 264
15.1.5 软件维护任务的实施 264
15.1.6 软件的可维护性 264
15.2 单元练习 265
15.2.1 填空题 265
15.2.2 选择题 266
15.2.3 简答题 273
15.3 参考答案 274
第16章 软件项目管理与计划 288
16.1 基础知识 288
16.1.1 软件项目管理的内容 288
16.1.2 软件项目计划 288
16.1.3 软件配置管理 288
16.1.4 软件工程标准化与软件文档 288
16.2 单元练习 289
16.2.1 填空题 289
16.2.2 选择题 291
16.2.3 简答题 300
16.3 参考答案 300
附录综合测试试题及参考答案 312
综合测试试题(一) 312
综合测试试题(一)参考答案 314
综合测试试题(二) 317
综合测试试题(二)参考答案 320
综合测试试题(三) 322
综合测试试题(三)参考答案 325
综合测试试题(四) 327
综合测试试题(四)参考答案 330
综合测试试题(五) 333
综合测试试题(五)参考答案 336