当前: 首页 - 图书专区 - 软件工程:实践者的研究方法(原书第8版·本科教学版)
软件工程:实践者的研究方法(原书第8版·本科教学版)


  在线购买
[美]罗杰 S.普莱斯曼(Roger S. Pressman) 布鲁斯 R. 马克西姆(Bruce R. Maxim) 著
978-7-111-55501-8
59.00
410
2016年12月26日
郑人杰 马素霞 等译
计算机 > 软件工程及软件方法学
McGraw-Hill
917
简体中文
16
Software Engineering: A Practitioner's Approach, Eighth Edition
教材
计算机科学丛书








参考文献
  链接:http://pan.baidu.com/s/1bHjmHK 密码:fdqi
本书的各个版本一直都是软件专业人士熟悉的读物,在国际软件工程界享有无可质疑的权威地位。它在全面而系统、概括而清晰地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。此外,本书在给出传统的、对学科发展具有深刻影响的方法时,又适当地介绍了当前正在发展的、具有生命力的新技术。
本书是软件工程领域的经典权威著作,自第1版出版至今,30多年来在软件工程界产生了巨大而深远的影响。第8版在继承之前版本风格与优势的基础上,不仅更新了全书内容,而且优化了篇章结构,以内容全面而著称。
为满足本科生“软件工程”课程的教学需求,本书保留了完整版中的基本内容,压缩或删除了一些高级内容,涵盖软件过程、建模、质量管理和项目管理四项主题,对概念、原则、方法和工具的介绍细致、清晰且实用。此外,书中提供了丰富的辅助阅读资源并配有网络资源(www.mhhe.com/pressman)。

本书特色
重点与更新。突出软件质量管理的相关内容,同时加强了软件过程部分。与时俱进的内容包括软件系统安全性和软件工程对人员的要求等。
组织与结构。每章开篇给出“要点浏览”和“关键概念”,最后给出“习题与思考题”以及“扩展阅读与信息资源”,章中贯穿的辅助阅读信息包括SafeHome对话框、软件工具、引述、关键点、网络资源等。
教学与自学。本科教学版更适合作为高校教材,同时,精选的知识点和丰富的扩展资源不仅易于初学者掌握基础理论,而且可供有兴趣的读者进行深入研究。

作者简介
罗杰 S. 普莱斯曼(Roger S. Pressman) 软件工程界国际知名的顾问和作家,作为工程师、经理人、教授、演讲家和企业家奋战在这一领域已40余年。现任一家咨询公司的总裁,致力于协助企业建立有效的软件工程实践。还是一家创业公司的创始人,专注于为特斯拉Model S系列电动车生产定制产品。
布鲁斯 R. 马克西姆(Bruce R. Maxim) 曾任软件工程师、项目经理、教授、作家和咨询师,研究兴趣涉及软件工程、人机交互、游戏设计及教育等领域,曾任某游戏开发公司的首席技术官。现任密歇根大学迪尔伯恩分校副教授,为该校工程与计算机科学学院建立了游戏实验室。
如果有这样一款计算机软件,它能满足用户的需求,能在相当长的时间内无故障地运行,修改起来轻松便捷,使用起来更是得心应手,那么,这款软件必定是成功的,它切实改善了我们的生活。但是,如果有这样一款软件,它令用户失望,错误频出,修改起来困难重重,使用起来更是举步维艰,那么,这必定是一款失败的软件,它使我们的生活一团糟。谁都希望开发出优秀的软件,为我们的生活带来便利,而不是把自己陷入失败的深渊。要想使软件获得成功,在设计和构建软件时就需要有规范,需要采用工程化的方法。
自本书第1版问世以来的近35年中,软件工程已经从少数倡导者提出的一些朦胧概念发展成为一门正规的工程学科,已被公认为是一个值得深入研究、认真学习和热烈讨论的课题。在整个行业中,软件工程师已经代替程序员成为人们优先选择的工作岗位,软件过程模型、软件工程方法和软件工具都已在全行业的所有环节成功采用。
尽管管理人员和一线专业人员都承认需要有更为规范的软件方法,但他们却始终在争论应该采用什么样的规范。有许多个人和公司至今仍在杂乱无章地开发着自己的软件,甚至即使他们正在开发的系统要服务于当今最为先进的技术,状况也仍是如此。许多专业人员和学生并不了解现代方法,这导致他们所开发的软件质量很差,因而造成了严重的后果。此外,有关软件工程方法真实本质的争论一直持续进行着。软件工程的地位问题已成为一门对比研究课题。人们对软件工程的态度已经有所改善,研究工作已取得了进展,不过要成为一门完全成熟的学科,我们还有大量的工作要做。
我们希望本书能够成为引导读者进入正在走向成熟的软件工程学科的入门读物,和以前的7个版本一样,第8版对学生和专业人员同样具有很强的吸引力。它既是软件专业人员的工作指南,也是高年级本科生和一年级研究生的综合性参考书。
第8版中包含了许多新的内容,它绝不只是前一版的简单更新。这一版不仅对内容做了适当的修改,而且调整了全书的结构,以改进教学顺序;同时更加强调一些新的和重要的软件工程过程和软件工程实践知识。此外,本书进一步加强了“支持系统”,为学生、教师和专业人员提供了更为丰富的知识资源。读者可访问专门为本书建立的网站(www.mhhe.com/pressman)查阅这些信息。
篇章结构
本书共26章,分为四个部分。这种划分有利于那些无法在一个学期内讲完全书内容的教师灵活安排教学。
第一部分“软件过程”给出了有关软件过程的各种不同观点,讨论了所有重要的过程模型,还涉及惯用过程和敏捷过程在指导思想上的分歧。第二部分“建模”给出了分析方法和设计方法,重点讲解面向对象方法和UML建模。第三部分“质量管理”介绍了有关质量管理的概念、规程和方法,使得软件团队能够很好地评估软件质量,实施软件质量保证规程,并正确地运用有效的测试策略和战术。第四部分“管理软件项目”介绍了与计划、管理和控制软件开发项目的人员有关的问题。
第8版沿用了前面几个版本的做法,在各章中都提供了大量的辅助阅读信息,包括一个虚拟软件团队在工作中遇到困难时展开的对话,还包括对各章相关知识给出的补充方法和工具。
致谢
我们要特别感谢渥太华大学的Tim Lethbridge,他帮助我们开发了UML和OCL的案例,以及配合本书内容的其他案例研究。Colby学院的Dale Skrien开发了附录1的UML教辅资源。他们的帮助和意见都是十分宝贵的。此外也感谢高级软件工程师Austin Krauss,他提供了关于视频游戏产业软件开发的宝贵意见。同时,要对为第8版评审做出贡献的几位教授表示感谢,他们是佛罗里达大学的Manuel E. Bermudez、堪萨斯州立大学的Scott DeLoach、密歇根州立大学的Alex Liu和犹他州立大学的Dean Mathias。正是他们的详尽而真诚的评审意见帮助了我们,使得本书更加完善。
特别感谢
十分高兴有机会与罗杰合作,参与本书第8版的撰写工作。在此期间我的儿子Benjamin推出了他的第一款移动App,我的女儿Katherine开始了她的室内设计生涯。我十分高兴地看到他们已经长大成人。同时非常感谢妻子Norma,她热情地支持我,使我能够将所有空闲时间都投入本书的写作。
布鲁斯R. 马克西姆(Bruce R. Maxim)
随着本书各版本的不断推出,我的两个儿子Mathew和Michael也逐渐从小男孩成长为男子汉。他们在生活中的成熟、品格和成功鼓舞着我,没有什么比这更让我自豪了。他们现在也已经有了自己的孩子——Maya和 Lily,这两个女孩已经是移动计算时代新智能设备方面的奇才。最后要感谢妻子Barbara,她宽容我花费如此多的时间在办公室工作,并且还鼓励我继续写作本书的下一个版本。
罗杰 S.普莱斯曼(Roger S. Pressman)
出版者的话
改编者序
译者序
前言
第1章 软件的本质  1
1.1 软件的本质  3
1.1.1 定义软件  3
1.1.2 软件应用领域  4
1.1.3 遗留软件  5
1.2 软件的变更本质  6
1.2.1 WebApp  6
1.2.2 移动App  7
1.2.3 云计算  7
1.2.4 产品线软件  8
习题与思考题  8
扩展阅读与信息资源  8
第2章 软件工程  10
2.1 定义软件工程学科  11
2.2 软件过程  11
2.2.1 过程框架  12
2.2.2 普适性活动  12
2.2.3 过程的适应性调整  13
2.3 软件工程实践  13
2.3.1 实践的精髓  14
2.3.2 通用原则  14
2.4 软件开发神话  16
2.5 这一切是如何开始的  18
习题与思考题  19
扩展阅读与信息资源  19
第一部分 软件过程
第3章 软件过程结构  22
3.1 通用过程模型  23
3.2 定义框架活动  24
3.3 明确任务集  24
3.4 过程模式  25
习题与思考题  27
扩展阅读与信息资源  27
第4章 过程模型  29
4.1 惯用过程模型  30
4.1.1 瀑布模型  30
4.1.2 增量过程模型  32
4.1.3 演化过程模型  32
4.1.4 并发模型  36
4.1.5 演化过程的最终评述  37
4.2 专用过程模型  38
4.2.1 基于构件的开发  38
4.2.2 形式化方法模型  39
4.2.3 面向方面的软件开发  39
4.3 统一过程  40
4.3.1 统一过程的简史  41
4.3.2 统一过程的阶段  41
4.4 产品和过程  42
习题与思考题  43
扩展阅读与信息资源  43
第5章 敏捷开发  45
5.1 什么是敏捷  46
5.2 敏捷及变更成本  47
5.3 什么是敏捷过程  47
5.3.1 敏捷原则  48
5.3.2 敏捷开发战略  49
5.4 极限编程  49
5.4.1 极限编程过程  49
5.4.2 工业极限编程  51
5.5 其他敏捷过程模型  53
5.5.1 Scrum  53
5.5.2 动态系统开发方法  54
5.5.3 敏捷建模  55
5.5.4 敏捷统一过程  56
5.6 敏捷过程工具集  57
习题与思考题  58
扩展阅读与信息资源  58
第6章 软件工程的人员方面  60
6.1 软件工程师的特质  60
6.2 软件工程心理学  61
6.3 软件团队  62
6.4 团队结构  63
6.5 敏捷团队  64
6.5.1 通用敏捷团队  64
6.5.2 XP团队  65
6.6 社交媒体的影响  66
6.7 软件工程中云的应用  67
6.8 协作工具  67
6.9 全球化团队  68
习题与思考题  69
扩展阅读与信息资源  69
第二部分 建模
第7章 理解需求  72
7.1 需求工程  73
7.2 建立根基  78
7.2.1 确认利益相关者  78
7.2.2 识别多重观点  78
7.2.3 协同合作  79
7.2.4 首次提问  79
7.3 获取需求  80
7.3.1 协作收集需求  80
7.3.2 质量功能部署  82
7.3.3 使用场景  83
7.3.4 获取工作产品  84
7.3.5 敏捷需求获取  84
7.3.6 面向服务的方法  84
7.4 开发用例  85
7.5 构建分析模型  88
7.5.1 分析模型的元素  89
7.5.2 分析模式  91
7.5.3 敏捷需求工程  91
7.5.4 自适应系统的需求  91
7.6 避免常见错误  92
习题与思考题  92
扩展阅读与信息资源  93
第8章 需求建模:基于场景的方法  95
8.1 需求分析  96
8.1.1 总体目标和原理  96
8.1.2 分析的经验原则  97
8.1.3 域分析  97
8.1.4 需求建模的方法  99
8.2 基于场景建模  100
8.2.1 创建初始用例  100
8.2.2 细化初始用例  102
8.2.3 编写正式用例  103
8.3 补充用例的UML模型  105
8.3.1 开发活动图  105
8.3.2 泳道图  106
习题与思考题  107
扩展阅读与信息资源  107
第9章 需求建模:基于类的方法  108
9.1 识别分析类  108
9.2 描述属性  111
9.3 定义操作  111
9.4 类–职责–协作者建模  113
9.5 关联和依赖  118
9.6 分析包  118
习题与思考题  119
扩展阅读与信息资源  119
第10章 需求建模:行为和模式  121
10.1 生成行为模型  121
10.2 识别用例事件  122
10.3 状态表达  122
10.4 需求建模的模式  125
10.4.1 发现分析模式  125
10.4.2 需求模式举例:执行器–传感器  126
习题与思考题  129
扩展阅读与信息资源  129
第11章 设计概念  131
11.1 软件工程中的设计  132
11.2 设计过程  134
11.2.1 软件质量指导原则和属性  134
11.2.2 软件设计的演化  136
11.3 设计概念  137
11.3.1 抽象  137
11.3.2 体系结构  137
11.3.3 模式  138
11.3.4 关注点分离  138
11.3.5 模块化  138
11.3.6 信息隐蔽  139
11.3.7 功能独立  139
11.3.8 求精  140
11.3.9 方面  140
11.3.10 重构  141
11.3.11 面向对象的设计概念  141
11.3.12 设计类  142
11.3.13 依赖倒置  144
11.3.14 测试设计  145
11.4 设计模型  145
11.4.1 数据设计元素  146
11.4.2 体系结构设计元素  146
11.4.3 接口设计元素  147
11.4.4 构件级设计元素  148
11.4.5 部署级设计元素  149
习题与思考题  149
扩展阅读与信息资源  150
第12章 体系结构设计  152
12.1 软件体系结构  153
12.1.1 什么是体系结构  153
12.1.2 体系结构为什么重要  154
12.1.3 体系结构描述  154
12.1.4 体系结构决策  155
12.2 体系结构类型  156
12.3 体系结构风格  156
12.3.1 体系结构风格的简单分类  157
12.3.2 体系结构模式  159
12.3.3 组织和求精  160
12.4 体系结构考虑要素  160
12.5 体系结构决策  162
12.6 体系结构设计  162
12.6.1 系统环境的表示  163
12.6.2 定义原型  163
12.6.3 将体系结构细化为构件  164
12.6.4 描述系统实例  165
12.6.5 WebApp的体系结构设计  166
13.6.6 移动App的体系结构设计  166
12.7 评估候选的体系结构设计  167
12.7.1 体系结构描述语言  168
12.7.2 体系结构评审  169
12.8 经验学习  169
12.9 基于模式的体系结构评审  170
12.10 体系结构一致性检查  171
12.11 敏捷性与体系结构  171
习题与思考题  172
扩展阅读与信息资源  173
第13章 构件级设计  175
13.1 什么是构件  176
13.1.1 面向对象的观点  176
13.1.2 传统的观点  177
13.1.3 过程相关的观点  179
13.2 设计基于类的构件  180
13.2.1 基本设计原则  180
13.2.2 构件级设计指导方针  182
13.2.3 内聚性  183
13.2.4 耦合性  184
13.3 实施构件级设计  185
13.4 WebApp的构件级设计  190
13.4.1 构件级内容设计  190
13.4.2 构件级功能设计  190
13.5 设计传统构件  190
13.6 基于构件的开发  191
13.6.1 领域工程  191
13.6.2 构件的合格性检验、适应性修改与组合  191
13.6.3 体系结构不匹配  193
13.6.4 复用的分析与设计  193
13.6.5 构件的分类与检索  194
习题与思考题  195
扩展阅读与信息资源  195
第14章 用户界面设计  197
14.1 黄金规则  198
14.1.1 把控制权交给用户  198
14.1.2 减轻用户的记忆负担  199
14.1.3 保持界面一致  200
14.2 用户界面的分析和设计  201
14.2.1 用户界面分析和设计模型  201
14.2.2 过程  202
14.3 界面分析  203
14.3.1 用户分析  203
14.3.2 任务分析和建模  204
14.3.3 显示内容分析  207
14.3.4 工作环境分析  207
14.4 界面设计步骤  208
14.4.1 应用界面设计步骤  208
14.4.2 用户界面设计模式  210
14.4.3 设计问题  210
14.5 设计评估  212
习题与思考题  213
扩展阅读与信息资源  214
第三部分 质量管理
第15章 质量概念  216
15.1 什么是质量  217
15.2 软件质量  218
15.2.1 Garvin的质量维度  218
15.2.2 McCall的质量因素  219
15.2.3 ISO 9126质量因素  220
15.2.4 定向质量因素  220
15.2.5 过渡到量化观点  221
15.3 软件质量困境  222
15.3.1 “足够好”的软件  222
15.3.2 质量的成本  223
15.3.3 风险  225
15.3.4 疏忽和责任  225
15.3.5 质量和安全  225
15.3.6 管理活动的影响  226
15.4 实现软件质量  226
15.4.1 软件工程方法  227
15.4.2 项目管理技术  227
15.4.3 质量控制  227
15.4.4 质量保证  227
习题与思考题  227
扩展阅读与信息资源  228
第16章 软件质量保证  229
16.1 背景问题  230
16.2 软件质量保证的要素  230
16.3 软件质量保证的过程和产品特性  232
16.4 软件质量保证的任务、目标和度量  232
16.4.1 软件质量保证的任务  232
16.4.2 目标、属性和度量  233
16.5 软件质量保证的形式化方法  234
16.6 统计软件质量保证  235
16.6.1 一个普通的例子  235
16.6.2 软件工程中的六西格玛  236
16.7 软件可靠性  237
16.7.1 可靠性和可用性的测量  237
16.7.2 软件安全  238
16.8 ISO 9000质量标准  239
16.9 软件质量保证计划  240
16.10 产品度量框架  240
16.10.1 测度、度量和指标  241
16.10.2 产品度量的挑战  241
16.10.3 测量原则  242
16.10.4 面向目标的软件测量  242
16.10.5 有效软件度量的属性  243
习题与思考题  244
扩展阅读与信息资源  244
第17章 软件测试策略  246
17.1 软件测试的策略性方法  247
17.1.1 验证与确认  247
17.1.2 软件测试组织  248
17.1.3 软件测试策略——宏观  249
17.1.4 测试完成的标准  250
17.2 策略问题  251
17.3 传统软件的测试策略  251
17.3.1 单元测试  251
17.3.2 集成测试  253
17.4 面向对象软件的测试策略  257
17.4.1 面向对象环境中的单元测试  257
17.4.2 面向对象环境中的集成测试  257
17.5 确认测试  258
17.5.1 确认测试准则  258
17.5.2 配置评审  258
17.5.3 α测试和β测试  258
17.6 系统测试  260
17.6.1 恢复测试  260
17.6.2 安全测试  260
17.6.3 压力测试  260
17.6.4 性能测试  261
17.6.5 部署测试  261
17.7 调试技巧  262
17.7.1 调试过程  262
17.7.2 心理因素  263
17.7.3 调试策略  264
17.7.4 纠正错误  265
习题与思考题  265
扩展阅读与信息资源  266
第18章 测试传统的应用软件  268
18.1 软件测试基础  269
18.2 测试的内部视角和外部视角  270
18.3 白盒测试  271
18.4 基本路径测试  271
18.4.1 流图表示  271
18.4.2 独立程序路径  273
18.4.3 生成测试用例  274
18.5 控制结构测试  276
18.6 黑盒测试  277
18.6.1 等价类划分  277
18.6.2 边界值分析  278
18.7 基于模型的测试  278
习题与思考题  279
扩展阅读与信息资源  279
第19章 测试面向对象的应用  281
19.1 扩展测试的视野  282
19.2 测试OOA和OOD模型  282
19.2.1 OOA和OOD模型的正确性  283
19.2.2 面向对象模型的一致性  283
19.3 面向对象测试策略  284
19.3.1 面向对象环境中的单元测试  284
19.3.2 面向对象环境中的集成测试  285
19.3.3 面向对象环境中的确认测试  285
19.4 面向对象测试方法  285
19.4.1 面向对象概念的测试用例设计含义  286
19.4.2 传统测试用例设计方法的可应用性  286
19.4.3 基于故障的测试  286
19.4.4 基于场景的测试设计  287
19.5 类级可应用的测试方法  287
19.5.1 面向对象类的随机测试  287
19.5.2 类级的划分测试  288
19.6 类间测试用例设计  289
19.6.1 多类测试  289
19.6.2 从行为模型导出的测试  290
习题与思考题  291
扩展阅读与信息资源  291
第20章 安全性工程  293
20.1 安全性需求分析  294
20.2 网络世界中的安全性与保密性  295
20.2.1 社交媒体  295
20.2.2 移动App  296
20.2.3 云计算  296
20.2.4 物联网  296
20.3 安全性工程分析  296
20.3.1 安全性需求获取  297
20.3.2 安全性建模  297
20.3.3 测度设计  298
20.3.4 正确性检查  298
20.4 安全性保证  299
20.4.1 安全性保证过程  299
20.4.2 组织和管理  300
20.5 安全性风险分析  300
20.6 传统软件工程活动的作用  302
20.7 可信性系统验证  303
习题与思考题  304
扩展阅读与信息资源  305
第21章 软件配置管理  306
21.1 软件配置管理概述  307
21.1.1 SCM场景  307
21.1.2 配置管理系统的元素  308
21.1.3 基线  309
21.1.4 软件配置项  310
21.1.5 依赖性和变更管理  310
21.2 SCM中心存储库  311
21.2.1 一般特征和内容  311
21.2.2 SCM特征  312
21.3 SCM过程  312
21.3.1 软件配置中的对象标识  313
21.3.2 版本控制  314
21.3.3 变更控制  315
21.3.4 影响管理  317
21.3.5 配置审核  318
21.3.6 状态报告  318
习题与思考题  319
扩展阅读与信息资源  319
第四部分 管理软件项目
第22章 项目管理概念  322
22.1 管理涉及的范围  323
22.1.1 人员  323
22.1.2 产品  323
22.1.3 过程  324
22.1.4 项目  324
22.2 人员  324
22.2.1 利益相关者  324
22.2.2 团队负责人  325
22.2.3 软件团队  325
22.2.4 敏捷团队  327
22.2.5 协调和沟通问题  328
22.3 产品  329
22.3.1 软件范围  329
22.3.2 问题分解  329
22.4 过程  330
22.4.1 合并产品和过程  330
22.4.2 过程分解  330
22.5 项目  331
22.6 W5HH原则  332
22.7 关键实践  333
习题与思考题  333
扩展阅读与信息资源  334
第23章 过程度量与项目度量  336
23.1 过程领域和项目领域中的度量  337
23.1.1 过程度量和软件过程改进  337
23.1.2 项目度量  339
23.2 软件测量  340
23.2.1 面向规模的度量  341
23.2.2 面向功能的度量  342
23.2.3 调和代码行度量和功能点度量  342
23.2.4 面向对象的度量  343
23.2.5 面向用例的度量  344
23.3 软件质量的度量  345
23.3.1 测量质量  345
23.3.2 缺陷排除效率  346
习题与思考题  347
扩展阅读与信息资源  348
第24章 软件项目估算  350
24.1 对估算的观察  351
24.2 项目计划过程  352
24.3 软件范围和可行性  352
24.4 资源  353
24.4.1 人力资源  354
24.4.2 可复用软件资源  354
24.4.3 环境资源  354
24.5 软件项目估算  354
24.6 分解技术  355
24.6.1 软件规模估算  355
24.6.2 基于问题的估算  356
24.6.3 基于LOC估算的实例  357
24.6.4 基于FP估算的实例  358
24.6.5 基于过程的估算  359
24.6.6 基于过程估算的实例  360
24.6.7 基于用例的估算  360
24.6.8 基于用例点估算的实例  361
24.6.9 调和不同的估算方法  362
24.7 经验估算模型  363
24.7.1 估算模型的结构  363
24.7.2 COCOMOⅡ模型  363
24.7.3 软件方程  363
24.8 面向对象项目的估算  364
习题与思考题  365
扩展阅读与信息资源  365
第25章 项目进度安排  366
25.1 基本概念  367
25.2 项目进度安排概述  368
25.2.1 基本原则  369
25.2.2 人员与工作量之间的关系  370
25.2.3 工作量分配  371
25.3 为软件项目定义任务集  372
25.3.1 任务集举例  372
25.3.2 主要任务的细化  373
25.4 定义任务网络  373
25.5 进度安排  374
25.5.1 时序图  375
25.5.2 跟踪进度  375
25.5.3 跟踪面向对象项目的进展  377
25.6 挣值分析  378
习题与思考题  379
扩展阅读与信息资源  380
第26章 风险管理  382
26.1 被动风险策略和主动风险策略  383
26.2 软件风险  383
26.3 风险识别  384
26.3.1 评估整体项目风险  385
26.3.2 风险因素和驱动因子  386
26.4 风险预测  387
26.4.1 建立风险表  387
26.4.2 评估风险影响  388
26.5 风险细化  390
26.6 风险缓解、监测和管理  390
26.7 RMMM计划  392
习题与思考题  393
扩展阅读与信息资源  394
在线资源
附录1 UML 简介
附录2 面向对象概念
参考文献
本书是国际知名软件工程专家罗杰 S. 普莱斯曼(Roger S. Pressman)的最新著作。自35年前第1版问世以来,这本书在软件工程界产生了巨大而深远的影响。其权威性是无可置疑的,在培养软件工程专业人才方面所起的作用也是显而易见的。在这一版中,新加入的布鲁斯(Bruce)作为第二作者参与了本书的编写工作。
我自20世纪80年代中期开始从事高校软件工程方面的教学与科研工作,多年来,这本书的各个版本一直是我的重要参考书,它给了我许多启发和帮助,我也曾多次向许多业界好友和学生推荐此书。
如今基于计算机的系统已经广泛而深入地渗透到经济、国防和人们日常生活的各个领域,特别是在互联网的推动下,不仅许多行业得以改进和更新,而且产生了一批新的行业,展现了全新的业态。我们必须意识到,在计算机不断向社会的深度和广度层面发展的过程中,软件始终处在系统的核心地位,起着中枢和灵魂的作用,而且这种作用正日益突出。因此,如何为现代化系统配备合格和优良的软件也就更加受到人们的广泛关注。
本书系统地论证了软件工程领域的基本知识和最新研究成果,包括新的概念、原则、技术、方法和工具。同时书中还为读者提供了进一步学习和研究的线索,包括许多可供利用的网上资料和信息。与第7版相比,本版继承了一些优点,同时也做了一些改动、扩充和更新。
本书特点
1. 全书内容分为四个部分,共26章,还包括两个附录。四个部分的内容分别为软件过程、建模、质量管理和管理软件项目。
2. 本书继承了前一版的特色,突出了软件质量管理的内容,同时也加强了软件过程部分。此外,增加的内容还包括:软件工程工作对人员的要求;近年来软件产业发展中出现的新课题——软件系统安全性和移动App。
3. 仍然在各章的开头给出“要点浏览”(包括概念、人员、重要性、步骤、工作产品和质量保证措施)以及“关键概念”(全章内容的关键词)。
4. 仍然在各章的末尾给出“习题与思考题”以及“扩展阅读与信息资源”,这些都非常适合有兴趣、有需要的读者沿着所提供的线索开展进一步的学习和研究。
5. 仍然保留了本书历次版本在各章中为读者提供的多种形式的辅助阅读信息,可以说这是本书的一个突出特点。这些信息从形式上分为两类:一类是采用通栏形式的说明框,包括要点浏览、信息栏、软件工具和SafeHome对话框等;另一类是居于页面右侧的说明框,包括关键概念、引述、建议、关键点、提问和网络资源。这些说明框非常有益于读者理解和进一步探索相关内容。
读者对象
本书仍然面向三类读者,即高校学生(特别是研究生)、教师和专业软件技术人员。总体而言,本书适合作为高校计算机或信息技术相关专业的教学用书,特别适合为软件工程课程提供教学服务。
译者说明
参与本书翻译工作的译者以华北电力大学和清华大学的教师为主,也有少数软件企业和中国软件行业协会的研究人员。他们是:马素霞(第1~4章、17~19章及附录1~2)、宋兰(第7~10章及21章)、石敏(第11、12章)、周长玉(第13、14章)、韩新启(第15~ 16章)、王海青(第22、26章)、王素琴(第22~25章)。此外,刘瑾完成了第5、6章的翻译工作。我负责第20章以及前言和作者简介部分。在翻译过程中,我们得到了华北电力大学控制与计算机工程学院洪海、熊里、赵敏、李树超、高晶晶、吕骁同学的帮助,在此对他们的辛勤劳动表示感谢。我对全部译稿、马素霞教授对大部分译稿做了仔细审核与修改,并更正了原书中个别的错漏之处。
本书英文完整版有900多页,翻译工作量巨大,而译者均有繁重的本职工作,时间并不宽松,因此译文中难免有不当之处,敬请读者见谅并不吝指正。
总之,这是一本非常优秀的软件工程读物,本人十分高兴地向国内读者推荐。我们相信,认真阅读它,定会使你获益匪浅。

郑人杰
2016年11月
计算机\软件工程
读者书评
发表评论



高级搜索
SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架
软件工程案例教程:软件项目开发实践 第3版
系统分析与设计:敏捷迭代方法(原书第6版)


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才