21世纪高等学校计算机规划教材——名家系列

软件工程

分享 推荐 0 收藏 4 阅读 4.4K
郑人杰 , 马素霞 , 麻志毅 (编著) 978-7-115-21026-5

关于本书的内容有任何问题,请联系 武恩玉

本书主要特点是为普通高等院校学生量身定做的软件工程教材,所选内容贴近教学实际,理论实践结合。
本书作者为国内软件工程界权威。
¥39.80 ¥33.83 (8.5 折)
立即购买 申请样书
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

  本书根据CC 2004对软件工程课程的要求,从软件的开发、维护和管理等方面阐述了软件工程的基本概念和常用方法。内容包括:软件工程基础、结构化软件开发方法、面向对象软件开发方法、软件生存期模型与软件体系结构、软件维护与管理。各章节均结合实例讲解,使读者易于理解和掌握。
  本书可作为高等院校计算机专业或信息类相关专业本科生或研究生教材,也可作为软件开发人员的参考书。

目录

目 录

第 1部分 软件工程基础

第 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 软件工程的目标 4
1.2.3 软件工程的基本原理 5
1.3 软件生命周期 6
1.4 软件工程方法学 8
1.4.1 结构化方法学 8
1.4.2 面向对象方法 9
1.5 软件工程知识体系及知识域介绍 9
1.6 软件产业的形成与发展 12
1.6.1 我国软件产业的形成 12
1.6.2 全球软件产业的发展 13
1.6.3 软件产业的发展模式 13
1.6.4 软件工程在软件产业中的作用 15
小结 15
习题 16

第 2章 软件需求获取与确认 17
2.1 软件需求获取的任务 17
2.2 软件需求的获取与确认过程 18
2.3 快速原型化方法 19
2.4 基于用况的方法 20
2.4.1 系统边界 20
2.4.2 参与者 21
2.4.3 用况 22
2.4.4 用况图 27
2.5 需求管理 28
小结 29
习题 29

第 2部分 结构化软件开发方法

第3章 结构化分析建模 31
3.1 软件需求分析阶段的任务 31
3.2 结构化分析方法简介 33
3.3 功能建模 33
3.3.1 数据流图的基本图形符号 33
3.3.2 环境图 34
3.3.3 数据流图的分层 35
3.3.4 实例研究 36
3.4 数据建模 38
3.4.1 数据对象 38
3.4.2 属性 39
3.4.3 关系 39
3.5 行为建模 41
3.5.1 状态 41
3.5.2 状态转换 41
3.5.3 事件 42
3.6 数据字典 43
3.6.1 词条描述 43
3.6.2 数据结构描述 44
3.7 加工规格说明 46
3.7.1 决策表 47
3.7.2 决策树 48
3.8 需求规格说明 49
3.8.1 软件需求规格说明 49
3.8.2 数据需求说明 50
小结 51
习题 51

第4章 总体设计 53
4.1 软件设计的概念及目标 53
4.1.1 软件设计的概念 53
4.1.2 软件设计的目标 53
4.2 软件设计的任务 56
4.2.1 软件设计的阶段与任务 56
4.2.2 结构化设计与结构化分析的关系 57
4.3 模块结构与数据结构 57
4.3.1 模块结构及表示 58
4.3.2 数据结构及表示 61
4.4 创建良好设计的原则 62
4.4.1 分而治之和模块化 62
4.4.2 模块独立性 63
4.4.3 提高抽象层次 68
4.4.4 复用性设计 69
4.4.5 灵活性设计 69
4.4.6 预防过期 69
4.4.7 可移植性设计 70
4.4.8 可测试性设计 70
4.4.9 防御性设计 71
4.5 面向数据流的设计方法 71
4.5.1 设计过程 71
4.5.2 典型的数据流类型和系统结构 72
4.5.3 变换型映射方法 74
4.5.4 事务型映射方法 76
4.5.5 软件模块结构的改进方法 79
4.5.6 实例研究 82
4.6 接口设计 86
4.6.1 接口设计概述 86
4.6.2 人机交互界面 87
4.7 数据设计 89
4.7.1 文件设计 89
4.7.2 数据库设计 90
4.8 软件设计规格说明 90
小结 91
习题 92

第5章 详细设计与编码 93
5.1 结构化程序设计 93
5.1.1 结构化程序设计的概念与原则 93
5.1.2 自顶向下、逐步细化的设计 过程 94
5.2 过程设计的工具 96
5.2.1 程序流程图 96
5.2.2 N-S图 99
5.2.3 PAD图 100
5.2.4 伪代码 101
5.3 程序设计语言 103
5.3.1 程序设计语言的性能 103
5.3.2 程序设计语言的分类 104
5.3.3 程序设计语言的选择 106
5.4 程序设计风格 107
5.4.1 源程序文档化 107
5.4.2 数据说明标准化 109
5.4.3 语句结构简单化 109
5.4.4 输入/输出规范化 112
5.5 程序复杂程度度量 113
5.5.1 McCabe方法 113
5.5.2 Halstead方法 115
小结 116
习题 116

第6章 软件测试 118
6.1 软件测试的基本概念 118
6.1.1 什么是软件测试 118
6.1.2 软件测试的目的和原则 119
6.1.3 软件测试的对象 120
6.1.4 测试信息流 121
6.1.5 测试与软件开发各阶段的关系 122
6.1.6 白盒测试与黑盒测试 122
6.2 白盒测试的测试用例设计 124
6.2.1 逻辑覆盖 124
6.2.2 语句覆盖 125
6.2.3 判定覆盖 125
6.2.4 条件覆盖 125
6.2.5 判定-条件覆盖 126
6.2.6 条件组合覆盖 126
6.2.7 路径测试 127
6.3 基本路径测试 128
6.4 黑盒测试的测试用例设计 131
6.4.1 等价类划分 131
6.4.2 边界值分析 134
6.5 软件测试的策略 136
6.5.1 单元测试 137
6.5.2 组装测试 139
6.5.3 确认测试 142
6.5.4 系统测试 144
6.5.5 测试的类型 144
6.6 人工测试 147
6.6.1 静态分析 147
6.6.2 人工测试的几种形式 148
6.7 调试 149
小结 150
习题 150

第3部分 面向对象软件开发方法

第7章 面向对象方法概述 153
7.1 面向对象的基本思想 153
7.2 面向对象的主要概念及基本原则 154
7.2.1 面向对象的主要概念 154
7.2.2 面向对象的基本原则 156
7.3 面向对象方法的发展史及现状简介 157
7.4 关于统一建模语言 158
小结 160
习题 160

第8章 面向对象分析 161
8.1 什么是面向对象分析 161
8.2 建立基本模型——类图 164
8.2.1 对象与类 164
8.2.2 定义属性与操作 168
8.2.3 建立关系 173
8.3 建立行为模型 187
8.3.1 顺序图 187
8.3.2 活动图 191
8.3.3 状态机图 195
8.4 建立组织模型——包图 202
8.4.1 概念与表示法 202
8.4.2 如何划分与组织包 204
小结 205
习题 205

第9章 面向对象设计与测试 207
9.1 什么是面向对象设计 207
9.2 问题域部分的设计 208
9.2.1 为复用类而增加结构 208
9.2.2 提高性能 209
9.2.3 增加一般类以建立共同协议 210
9.2.4 按编程语言调整继承 211
9.2.5 对复杂关联的转化并决定关联的实现方式 213
9.2.6 调整与完善属性 214
9.2.7 构造及优化算法 215
9.2.8 决定对象间的可访问性 215
9.2.9 定义对象 216
9.3 人机交互部分的设计 216
9.3.1 什么是人机交互部分 216
9.3.2 如何分析人机交互部分 217
9.3.3 如何设计人机交互部分 218
9.4 控制驱动部分的设计 222
9.4.1 什么是控制驱动部分 223
9.4.2 控制流 223
9.4.3 如何设计控制驱动部分 223
9.5 数据管理部分的设计 227
9.5.1 什么是数据管理部分 228
9.5.2 数据库和数据库管理系统 228
9.5.3 如何设计数据管理部分 229
9.6 面向对象测试的概念 235
9.6.1 面向对象软件测试的问题 235
9.6.2 面向对象软件测试的参考过程模型 236
9.7 面向对象测试方法 237
9.7.1 面向对象的分析与设计测试 237
9.7.2 面向对象的程序测试 237
9.7.3 面向对象的系统测试 239
小结 239
习题 239

第4部分 软件生存期模型与软件体系结构

第 10章 软件生存期模型 241
10.1 软件过程框架 241
10.1.1 软件过程框架的内容 241
10.1.2 通用过程框架 241
10.1.3 典型的普适性活动 243
10.2 传统软件过程模型 243
10.2.1 瀑布模型 243
10.2.2 快速原型模型 245
10.2.3 增量模型 245
10.2.4 螺旋模型 247
10.2.5 喷泉模型 248
10.3 现代软件过程模型 249
10.3.1 基于构件的开发模型 249
10.3.2 形式化方法模型 250
10.3.3 面向方面的软件开发 251
10.3.4 统一过程 251
10.3.5 敏捷过程模型 253
小结 255
习题 256

第 11章 软件体系结构 257
11.1 软件体系结构的基本概念 257
11.1.1 什么是体系结构 257
11.1.2 体系结构模式、风格和框架的概念 258
11.1.3 体系结构的重要作用 259
11.2 典型的体系结构风格 259
11.2.1 数据流风格 259
11.2.2 调用-返回风格 260
11.2.3 仓库风格 262
11.3 特定领域的软件体系结构 264
11.3.1 类属模型 264
11.3.2 参考模型 265
11.4 分布式系统结构 266
11.4.1 多处理器体系结构 266
11.4.2 客户机/服务器体系结构 267
11.4.3 分布式对象体系结构 271
11.4.4 代理 272
11.5 体系结构框架 272
11.5.1 模型-视图-控制器 272
11.5.2 J2EE体系结构框架 273
11.5.3 PCMEF与PCBMER框架 274
11.6 体系结构建模 276
11.6.1 类及其依赖性 277
11.6.2 接口及其依赖性 279
11.6.3 包及其依赖性 281
11.6.4 构件及其依赖性 282
11.6.5 结点与部署图 284
小结 285
习题 285

第5部分 软件维护与软件管理

第 12章 软件维护 287
12.1 软件维护的概念 287
12.1.1 软件维护的定义 287
12.1.2 影响维护工作量的因素 288
12.1.3 软件维护的策略 288
12.2 软件维护活动 289
12.2.1 软件维护申请报告 289
12.2.2 软件维护工作流程 290
12.2.3 维护档案记录 291
12.2.4 维护评价 291
12.3 程序修改的步骤及修改的副作用 291
12.3.1 分析和理解程序 291
12.3.2 修改程序 292
12.3.3 修改程序的副作用及其控制 293
12.3.4 重新验证程序 294
12.4 软件的可维护性 295
12.4.1 软件可维护性的定义 295
12.4.2 可维护性的度量 296
12.5 提高可维护性的方法 298
12.5.1 建立明确的软件质量目标和优先级 298
12.5.2 使用提高软件质量的技术和工具 298
12.5.3 质量保证审查 298
12.5.4 改进文档 300
小结 301
习题 301

第 13章 软件项目管理 302
13.1 软件项目管理概述 302
13.1.1 软件项目管理的目标 302
13.1.2 软件项目管理涉及的几个方面 302
13.2 项目估算 304
13.2.1 项目策划与项目估算 304
13.2.2 软件规模估算的功能点方法 305
13.2.3 软件开发成本估算 310
13.3 风险管理 316
13.3.1 什么是软件风险 316
13.3.2 风险管理的任务 318
13.3.3 风险评估 319
13.3.4 风险控制 322
13.3.5 做好风险管理的建议 325
13.4 进度管理 325
13.4.1 进度控制问题 325
13.4.2 甘特图 328
13.4.3 时标网状图 329
13.4.4 PERT图 329
13.5 需求管理 331
13.5.1 系统需求与软件需求 331
13.5.2 需求工程 333
13.5.3 需求变更 335
13.5.4 需求变更控制 337
13.5.5 可追溯性管理 340
13.6 配置管理 341
13.6.1 什么是软件配置管理 342
13.6.2 软件配置标识 342
13.6.3 变更管理 344
13.6.4 版本控制 348
13.6.5 系统建立 349
13.6.6 配置审核 350
13.6.7 配置状态报告 351
小结 351
习题 352

第 14章 软件工程标准及软件文档 353
14.1 标准的概念 353
14.2 软件标准化的意义 354
14.3 标准的分类与分级 355
14.4 软件工程标准的制定与实施 358
14.5 软件组织内的标准化工作 359
14.6 软件文档的作用和分类 360
14.7 软件基本文档的内容要求 362
14.8 对文档编制的质量要求 366
14.9 文档的管理和维护 368
小结 369
习题 369

第 15章 软件过程与软件过程改进 371
15.1 软件过程概述 371
15.2 软件生存期过程国际标准 373
15.3 软件过程成熟度 377
15.3.1 什么是软件过程成熟度 377
15.3.2 过程制度化 379
15.4 软件能力成熟度模型(CMM/CMMI) 381
15.4.1 CMM与SEI 381
15.4.2 CMM的演化 382
15.4.3 CMM族和CMMI 382
15.4.4 CMMI 1.2简介 383
15.4.5 CMMI评估 391
15.5 软件过程改进 392
15.5.1 软件过程改进的IDEAL模型 392
15.5.2 软件过程改进框架 393
15.5.3 有效的软件过程 394
小结 395
习题 396

参考文献 397

读者评论

赶紧抢沙发哦!

我要评论

同系列书

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部