基本信息
- 原书名:Software Engineering, Tenth Edition
- 作者: (英)伊恩·萨默维尔(Ian Sommerville)
- 丛书名: 经典原版书库
- 出版社:机械工业出版社
- ISBN:9787111580966
- 上架时间:2017-9-30
- 出版日期:2017 年10月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 软件方法/软件工程
教材

编辑推荐
本书是软件工程领域的经典教材,自1982年第1版出版至今,伴随着软件工程学科的发展不断更新,影响了一代又一代的软件工程人才,对学科建设也产生了积极影响。全书共四个部分,完整讨论了软件工程各个阶段的内容,是软件工程相关专业本科生和研究生的优秀教材,也是软件工程师必备的参考书籍。
新版重要更新
全面更新了关于敏捷软件工程的章节,增加了关于Scrum的新内容。此外还根据需要对其他章节进行了更新以反映敏捷方法在软件工程中日益增长的应用。
增加了关于韧性工程、系统工程、系统之系统的新章节。
对于涉及可靠性、安全性、信息安全性的三章进行了彻底的重新组织。
在面向服务的软件工程一章中增加了关于RESTful服务的新内容。
更新和修改了关于配置管理的章节,增加了关于分布式版本控制系统的新内容。
将关于面向方面的软件工程以及过程改进的章节从本书的纸质版移到了网站上。
在网站上新增了补充材料,包括一系列教学视频。
作者简介
伊恩·萨默维尔(Ian Sommerville) 英国著名软件工程专家,曾任圣安德鲁斯大学软件工程系教授,2014年退休。他在软件工程的教学和科研方面有40多年的经验,研究领域包括需求工程、大规模复杂系统和系统可靠性等。他撰写的软件工程教材畅销全球,销量超过75万册。
内容简介
作译者
人类现在正面临着一系列迫切的挑战:气候变化和极端天气、自然资源的减少、需要为更多的人口提供食物和住房、国际恐怖主义的威胁,以及为老年人提供令人满意的生活的要求。我们需要新技术来帮助我们应对这些挑战,可以肯定的是软件将在这些技术中扮演核心角色。因此,软件工程对于我们在这个星球上的未来极其重要。我们必须继续培养软件工程师并推动软件工程学科的持续发展,从而满足开发更多的软件系统以及创造我们所需要的越来越复杂的未来系统的需要。
当然,软件项目还存在很多问题。系统仍然有时会延迟交付并且成本超支。我们正在创造越来越复杂的软件系统之系统(software systems of systems),在这条道路上遇到各种困难也是不足为奇的。然而,我们不应该让这些问题掩盖软件工程领域已经取得的巨大成就以及所形成的各种令人印象深刻的软件工程方法和技术。
本书的不同版本已经有超过30年的历史。这一版同样遵循了在本书第1版中所建立的基本原则:
按照工业界实践介绍软件工程,不对任何特定的方法(例如敏捷开发、形式化方法)持倾向性态度。在现实中,工业界往往将各种技术(例如敏捷以及基于计划的开发)混合在一起使用,这一点也在本书中有所反映。
根据我所知道的和所理解的知识来介绍软件工程。我得到过很多关于增加并详细介绍其他相关话题的建议,例如开源软件开发、UML的使用以及移动软件工程等。但是我对这些领域了解得并不够多。我个人的工作主要是在系统可靠性和系统工程方面,这一点在我为本书所选择的高级主题中有所反映。
我认为现代软件工程的关键问题是管理复杂性,将敏捷和其他方法结合起来,并确保系统是安全的且有韧性的。这些问题是促使我在这一版中修改和新增内容的驱动力。
对第9版的更新
这一版对第9版的更新内容汇总如下:
全面更新了关于敏捷软件工程的章节,增加了关于Scrum的新内容。此外还根据需要对其他章节进行了更新以反映敏捷方法在软件工程中日益增长的应用。
增加了关于韧性工程、系统工程、系统之系统的新章节。
对于涉及可靠性、安全性、信息安全性的三章进行了彻底的重新组织。
在面向服务的软件工程一章中增加了关于RESTful服务的新内容。
更新和修改了关于配置管理的章节,增加了关于分布式版本控制系统的新内容。
将关于面向方面的软件工程以及过程改进的章节从本书的纸质版移到了网站上。
在网站上新增了补充材料,包括一系列教学视频。我在视频中对于一些关键话题进行了解释并且推荐了相关的YouTube视频。
这一版保留了本书在此前版本中采用的四部分结构,但我对其中每个部分都进行了大量的修改。
在第一部分软件工程导论中,我彻底重写了第3章(敏捷方法)并对其进行了更新以反映Scrum方法在实践中日益增长的应用。第1章中增加了一个关于数字化学习环境的案例研究,这个案例在其他几章中也有用到。第9章更加详细地介绍了遗留系统。所有其他章节都进行了少量的修改和更新。
第二部分介绍系统可依赖性,这部分进行了修改和重新组织。原来采用的面向活动的组织方式使得与安全性、信息安全性、可靠性相关的信息分散在多个章节中,而重新组织之后,安全性、信息安全性、可靠性各属于一章。这使得相关内容(例如信息安全性)可以更加方便地作为独立的专题在更加综合性的课程中使用。我增加了一个全新的关于韧性工程的章节,其中涉及网络安全、组织韧性以及韧性系统设计。
第三部分增加了关于系统工程、系统之系统的新章节,并对与面向服务的系统工程相关的内容进行了全面修改以反映RESTful服务的应用增长趋势。面向方面的软件工程相关的章节从本书的纸质版中移除,但在网站上作为在线章节保留。
目录
第1章 概述 3
1.1 专业化软件开发 5
1.2 软件工程职业道德 14
1.3 案例研究 17
第2章 软件过程 29
2.1 软件过程模型 31
2.2 过程活动 40
2.3 应对变化 47
2.4 过程改进 51
第3章 敏捷软件开发 58
3.1 敏捷方法 61
3.2 敏捷开发技术 63
3.3 敏捷项目管理 70
3.4 敏捷方法的伸缩 74
第4章 需求工程 87
4.1 功能性和非功能性需求 91
4.2 需求工程过程 97
4.3 需求抽取 98
4.4 需求规格说明 106
前言
人类现在正面临着一系列迫切的挑战:气候变化和极端天气、自然资源的减少、需要为更多的人口提供食物和住房、国际恐怖主义的威胁,以及为老年人提供令人满意的生活的要求。我们需要新技术来帮助我们应对这些挑战,可以肯定的是软件将在这些技术中扮演核心角色。因此,软件工程对于我们在这个星球上的未来极其重要。我们必须继续培养软件工程师并推动软件工程学科的持续发展,从而满足开发更多的软件系统以及创造我们所需要的越来越复杂的未来系统的需要。
当然,软件项目还存在很多问题。系统仍然有时会延迟交付并且成本超支。我们正在创造越来越复杂的软件系统之系统(software systems of systems),在这条道路上遇到各种困难也是不足为奇的。然而,我们不应该让这些问题掩盖软件工程领域已经取得的巨大成就以及所形成的各种令人印象深刻的软件工程方法和技术。
本书的不同版本已经有超过30年的历史。这一版同样遵循了在本书第1版中所建立的基本原则:
按照工业界实践介绍软件工程,不对任何特定的方法(例如敏捷开发、形式化方法)持倾向性态度。在现实中,工业界往往将各种技术(例如敏捷以及基于计划的开发)混合在一起使用,这一点也在本书中有所反映。
根据我所知道的和所理解的知识来介绍软件工程。我得到过很多关于增加并详细介绍其他相关话题的建议,例如开源软件开发、UML的使用以及移动软件工程等。但是我对这些领域了解得并不够多。我个人的工作主要是在系统可靠性和系统工程方面,这一点在我为本书所选择的高级主题中有所反映。
我认为现代软件工程的关键问题是管理复杂性,将敏捷和其他方法结合起来,并确保系统是安全的且有韧性的。这些问题是促使我在这一版中修改和新增内容的驱动力。
对第9版的更新
这一版对第9版的更新内容汇总如下:
全面更新了关于敏捷软件工程的章节,增加了关于Scrum的新内容。此外还根据需要对其他章节进行了更新以反映敏捷方法在软件工程中日益增长的应用。
增加了关于韧性工程、系统工程、系统之系统的新章节。
对于涉及可靠性、安全性、信息安全性的三章进行了彻底的重新组织。
在面向服务的软件工程一章中增加了关于RESTful服务的新内容。
更新和修改了关于配置管理的章节,增加了关于分布式版本控制系统的新内容。
将关于面向方面的软件工程以及过程改进的章节从本书的纸质版移到了网站上。
在网站上新增了补充材料,包括一系列教学视频。我在视频中对于一些关键话题进行了解释并且推荐了相关的YouTube视频。
这一版保留了本书在此前版本中采用的四部分结构,但我对其中每个部分都进行了大量的修改。
在第一部分软件工程导论中,我彻底重写了第3章(敏捷方法)并对其进行了更新以反映Scrum方法在实践中日益增长的应用。第1章中增加了一个关于数字化学习环境的案例研究,这个案例在其他几章中也有用到。第9章更加详细地介绍了遗留系统。所有其他章节都进行了少量的修改和更新。
第二部分介绍系统可依赖性,这部分进行了修改和重新组织。原来采用的面向活动的组织方式使得与安全性、信息安全性、可靠性相关的信息分散在多个章节中,而重新组织之后,安全性、信息安全性、可靠性各属于一章。这使得相关内容(例如信息安全性)可以更加方便地作为独立的专题在更加综合性的课程中使用。我增加了一个全新的关于韧性工程的章节,其中涉及网络安全、组织韧性以及韧性系统设计。
第三部分增加了关于系统工程、系统之系统的新章节,并对与面向服务的系统工程相关的内容进行了全面修改以反映RESTful服务的应用增长趋势。面向方面的软件工程相关的章节从本书的纸质版中移除,但在网站上作为在线章节保留。
媒体评论
新版重要更新:
·全面更新了关于敏捷软件工程的章节,增加了关于Scrum的新内容。此外还根据需要对其他章节进行了更新以反映敏捷方法在软件工程中日益增长的应用。
·增加了关于韧性工程、系统工程、系统之系统的新章节。
·对于涉及可靠性、安全性、信息安全性的三章进行了彻底的重新组织。
·在面向服务的软件工程一章中增加了关于RESTful服务的新内容。
·更新和修改了关于配置管理的章节,增加了关于分布式版本控制系统的新内容。
·将关于面向方面的软件工程以及过程改进的章节从本书的纸质版移到了网站上。
·在网站上新增了补充材料,包括一系列教学视频。