第1章 软件工程概论 1
1.1软件和软件工程的概念 1
1.1.1软件的概念 1
1.1.2软件危机 2
1.1.3软件工程的概念 3
1.2软件工程方法 4
1.2.1面向过程方法 4
1.2.2面向对象方法 5
1.2.3形式化方法 6
1.3软件过程与软件生存周期 6
1.3.1软件生存周期 6
1.3.2软件过程 7
1.4软件过程模型 8
1.5软件工具概述 15
小结 18
复习要点 18
第2章 面向对象的基本概念与UML 20
2.1面向对象系统的基本概念 20
2.1.1面向对象系统的概念 20
2.1.2对象 21
2.1.3类与封装 21
2.1.4继承 22
2.1.5多态与动态绑定 23
2.1.6消息通信 23
2.2统一建模语言UML概述 23
2.2.1UML的产生和发展 24
2.2.2UML的特点 24
2.3UML的模型元素 24
2.3.1UML的事物 24
2.3.2UML中的关系 26
2.4UML中的图 29
2.4.1外部视图 29
2.4.2内部视图 31
小结 34
复习要点 34
第3章 软件需求分析 36
3.1系统工程的概念 36
3.1.1基于计算机的系统 36
3.1.2计算机系统工程 37
3.1.3可行性研究 37
3.2软件需求分析的任务和原则 38
3.2.1软件需求的定义和层次 39
3.2.2软件需求分析的任务 40
3.2.3需求分析的原则 40
3.3软件需求获取 41
3.3.1需求获取的任务和原则 41
3.3.2需求获取的过程 42
3.3.3需求的表达 43
3.4结构化分析方法 43
3.4.1数据建模 44
3.4.2功能建模 45
3.4.3行为建模 48
3.4.4数据字典 48
3.4.5基本加工逻辑说明 49
3.5面向对象的分析方法 51
3.5.1面向对象分析概述 51
3.5.2识别类或对象 52
3.5.3识别关系(结构) 53
3.5.4标识类的属性和服务 54
3.6需求规格说明和需求评审 55
3.6.1软件需求规格说明的目标 55
3.6.2软件需求规格说明编制原则 55
3.6.3软件需求规格说明模板 56
3.6.4软件需求评审 57
小结 58
复习要点 58
第4章 软件设计 60
4.1软件设计的任务和原则 60
4.1.1软件设计的概念 60
4.1.2软件设计的任务 60
4.1.3软件设计的过程 61
4.1.4软件设计的原则 61
4.2结构化设计方法 65
4.2.1结构化设计与结构化分析的关系 65
4.2.2软件结构及表示工具 65
4.2.3结构化设计的过程 67
4.2.4变换流映射 67
4.2.5事务流映射 68
4.2.6软件模块结构改进 69
4.2.7接口设计 70
4.3软件的过程设计 70
4.3.1部署设计 70
4.3.2算法设计 71
4.3.3处理过程的描述 71
4.4面向对象的系统设计 73
4.4.1系统设计的目标和准则 73
4.4.2子系统分解 73
4.4.3问题域部分的设计 74
4.4.4人机交互部分的设计 75
4.4.5任务管理部分的设计 76
4.4.6数据管理部分的设计 77
4.5体系结构设计 79
4.5.1体系结构的概念 79
4.5.2体系结构的4+1视图 80
4.5.3常用的体系结构风格 81
4.5.4分布式系统体系结构 84
4.6对象设计 86
4.6.1使用模式设计对象 86
4.6.2接口规格说明设计 87
4.6.3重构对象设计模型 87
4.6.4优化对象设计模型 87
4.7软件设计规格说明与评审 88
4.7.1软件设计规格说明 88
4.7.2软件概要设计评审 89
4.7.3软件详细设计评审 90
小结 90
复习要点 91
第5章 程序实现 93
5.1程序实现的任务 93
5.2结构化程序设计方法 94
5.2.1自顶向下和逐步求精 94
5.2.2使用基本控制结构构造程序 94
5.3面向对象的程序设计方法 94
5.4程序设计风格与编码规范 96
5.5编程语言的选择 99
5.5.1编程语言特性的比较 100
5.5.2编程语言的分类 101
5.5.3编程语言的选择 103
5.6程序复杂性 104
5.6.1代码行度量法 104
5.6.2McCabe度量法 105
5.7程序调试 106
5.7.1程序调试的步骤 106
5.7.2几种主要的调试方法 107
5.7.3程序调试的原则 109
小结 110
复习要点 110
第6章 软件测试 112
6.1软件测试的任务 112
6.2软件测试方法 116
6.2.1白盒测试方法 116
6.2.2黑盒测试方法 120
6.2.3其他测试方法 122
6.3软件测试的策略 123
6.3.1软件测试活动 123
6.3.2单元测试 123
6.3.3集成测试 124
6.3.4系统测试 127
6.3.5验收测试 128
6.4人工测试 129
6.4.1桌上检查 129
6.4.2代码检查 130
6.4.3走查 131
小结 132
复习要点 132
第7章 软件维护 134
7.1软件维护的任务 134
7.1.1软件维护的定义 134
7.1.2软件维护的类型 134
7.2软件维护的活动 135
7.2.1维护机制 135
7.2.2软件维护申请报告 136
7.2.3软件维护过程模型 136
7.2.4GB/T20157—2006软件维护过程 137
7.2.5维护记录文档 138
7.3程序修改的步骤及修改的副作用 138
7.3.1分析和理解程序 139
7.3.2评估修改范围 139
7.3.3修改程序 140
7.3.4修改程序的副作用及其控制 140
7.3.5重新验证程序 141
7.4软件可维护性 141
7.4.1可维护性的定义 142
7.4.2软件可维护性度量 142
7.5软件演进与再工程 143
7.5.1遗留系统的演化 143
7.5.2软件再工程 144
7.5.3遗留系统的现代化改造过程 145
7.5.4重构与逆向工程 146
小结 147
复习要点 147
第8章 软件过程 149
8.1软件过程的概念 149
8.2软件过程的建模 150
8.2.1软件生存周期过程模型 150
8.2.2生存周期的基本过程 151
8.2.3生存周期的支持过程 151
8.2.4生存周期的组织过程 152
8.3软件过程成熟度模型 153
8.3.1软件过程成熟度 153
8.3.2CMM与CMMI 154
8.3.3CMMI的分级表示 155
8.3.4CMMI的连续表示 158
8.3.5CMMI的模型构件 159
8.3.6CMMI评估 161
8.4软件过程改进 162
8.4.1软件过程改进的IDEAL模型 162
8.4.2软件过程改进框架 164
8.4.3有效的软件过程 165
小结 165
复习要点 166
第9章 软件项目管理 167
9.1软件项目与项目管理概述 167
9.1.1项目和项目管理的概念 167
9.1.2项目管理的定义 168
9.1.3过程与项目管理 168
9.2软件项目计划与项目集成管理 169
9.2.1项目集成管理的概念 169
9.2.2项目计划制订的过程 169
9.2.3项目计划的执行和控制 172
9.3软件项目度量与工作量估算 174
9.3.1软件度量的概念 174
9.3.2软件范围管理 176
9.3.3软件项目中的资源 177
9.3.4软件项目的工作量估算 178
9.4项目的成本管理 178
9.4.1项目成本的概念 178
9.4.2项目成本管理的过程 179
9.5项目的进度管理 180
9.5.1项目进度管理的概念 180
9.5.2项目进度管理的过程 181
9.6项目人员与沟通管理 182
9.6.1项目人员管理的概念 182
9.6.2项目的组织规划 182
9.6.3项目的人员组织 185
9.6.4项目团队的组织与建设 186
9.6.5项目冲突及管理 188
9.6.6项目沟通管理 189
9.7项目风险管理 190
9.7.1风险与风险管理的概念 190
9.7.2项目风险管理的过程 192
9.8软件配置管理 196
9.8.1软件配置管理的概念 196
9.8.2软件配置管理的过程 198
9.9需求管理 200
9.9.1需求管理的概念 200
9.9.2需求管理的任务 200
9.9.3需求变更请求的管理 203
小结 205
复习要点 206
第10章 软件质量管理 208
10.1软件质量与质量模型 208
10.1.1软件质量的概念 208
10.1.2软件质量特性 209
10.1.3软件质量模型 209
10.2软件质量度量和度量模型 212
10.2.1软件质量的度量 212
10.2.2软件质量度量模型 213
10.2.3软件质量度量方法 214
10.2.4软件质量评价 215
10.3软件质量计划 217
10.3.1软件质量计划编制的目的 217
10.3.2软件质量计划的内容 218
10.4软件质量保证 218
10.4.1软件质量保证的概念 218
10.4.2软件质量保证的过程 219
10.4.3软件质量保证的任务 220
10.4.4质量保证体系与ISO9000标准 220
10.4.5国际标准ISO90003 221
10.5验证与确认 222
10.5.1软件验证和确认的概念 222
10.5.2生存周期中的验证和确认工作 222
10.6软件评审 224
10.6.1软件评审的概念 224
10.6.2软件评审的作用 225
10.6.3软件评审的实施 225
10.6.4评审的方法和技术 227
10.7审核 229
小结 231
复习要点 232
第11章 软件工程标准化与软件文档 233
11.1标准和标准化 233
11.1.1标准与标准化的概念 233
11.1.2软件工程标准的制定与实施 234
11.2软件工程标准的分类和分级 235
11.3软件文档的作用和分类 238
11.4软件工程文档的概要 240
11.5对文档编制的质量要求 243
小结 244
复习要点 245
附录1 全国计算机等级考试四级软件工程考试大纲(2013年版) 246
附录2 全国计算机等级考试四级软件工程样题及参考答案 249
参考文献 252