基本信息
- 作者: [英]伊恩·萨默维尔(Ian Sommerville)
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111674641
- 上架时间:2021-2-1
- 出版日期:2021 年1月
- 开本:16开
- 页码:306
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 软件方法/软件工程

编辑推荐
重点关注与软件产品相关的工程化过程和技术,而非项目驱动型软件工程技术
内容简介
作译者
【加照片】伊恩·萨默维尔(Ian Sommerville) 英国著名软件工程专家,曾任圣安德鲁斯大学软件工程系教授,2014年退休。他在软件工程的教学和科研方面有40多年的经验,研究领域包括需求工程、大规模复杂系统和系统可靠性等。他撰写的软件工程教材畅销全球,销量超过75万册。
目录
译者序
前言
第1章 软件产品 1
1.1 产品愿景 6
1.2 软件产品管理 9
1.2.1 产品愿景管理 11
1.2.2 产品路线图管理 11
1.2.3 用户故事和场景开发 11
1.2.4 产品待定项管理 12
1.2.5 验收测试 12
1.2.6 客户测试 12
1.2.7 用户界面设计 12
1.3 产品原型设计 13
要点 14
推荐阅读 15
习题 16
第2章 敏捷软件工程 17
2.1 敏捷方法 17
2.2 极限编程 20
前言
与一些人的想法不同,我认为软件产品工程化需要的技能远比编码技能多得多,因此撰写了本书,旨在介绍一些重要的软件工程活动,这些活动对开发高可信、高安全性的软件产品至关重要。
本书读者对象
本书的读者对象是刚刚开始学习软件工程课程的学生。对那些准备进行软件产品开发又没有多少软件工程经验的技术人员来说,本书也非常适用。
需要一本关注产品的软件工程书籍的原因
大多数软件工程教材关注基于项目的软件工程。基于项目的软件工程的核心思想是:客户给出需求规约,公司开发软件。然而,用于大规模项目开发的软件工程技术和方法,不适合软件产品开发。
学生们通常很难理解大的定制软件系统。我的看法是,当学生关注他们经常使用的软件类型时,他们会发现理解软件工程技术其实并不难。同样,当学生在做项目时,若更多地关注产品工程化技术而不是面向项目的技术,他们会更容易理解软件工程技术。
本书是作者其他的软件工程教材的新版本吗?
不是,这本书考虑的是完全不同的方法,除了几幅图之外,没有重用任何来自《软件工程》(第10版)的材料。
本书内容
本书共10章,涵盖了软件产品、敏捷软件工程、特征/场景和用户故事、软件架构、基于云的软件、微服务架构、安全和隐私、可信赖编程、测试、DevOps和代码管理等内容。
本书适合一个学期的软件工程课程使用。
本书与其他的软件工程导论教材的不同
正如前面所说,本书关注产品而不是项目,介绍的技术是其他软件工程教材没有的,如人物角色和场景、云计算、微服务、安全和DevOps等。 由于产品创新不是来自高校科研,所以书中没有应用或提及科研成果,本书的写作风格也是“非正式”的。
如何才能从本书获得价值?
只需要你具有现代面向对象语言的编程经验,例如,你能熟练地使用Java或者Python语言编程,熟悉有意义的命名,也熟悉基本的计算概念,如对象、类和数据库等。书中的示例程序尽管是用Python语言写的,但任何具有编程经验的人都能轻松理解。
教辅资源
1. 教师手册,其中包含每章习题和测验问题的解答。
2. 有关如何在一个学期的软件工程课程中使用本书的建议。
3. 教学讲义(Keynote、PowerPoint和PDF三种形式)。
媒体评论
本书的核心内容包括软件产品、软件架构、敏捷软件工程、人物角色、场景、用户故事、基于云的软件、微服务架构、安全和隐私以及DevOps等。建议读者具有一定的Java或Python等面向对象语言的编程经验,在学习过程中注重从产品工程化的视角来理解软件工程技术,从而为开发高质量、高安全性、高可靠性的软件产品打好基础。
本书特色
从软件产品工程化的视角全面讨论软件产品开发所需的方法和技术。
涵盖同类书籍较少涉及的主题,如人物角色和场景、云计算、微服务、安全和DevOps等。
内容组织灵活,每章都包含大量的示例、图表、要点分析、推荐阅读和习题等。
作者简介
伊恩·萨默维尔(Ian Sommerville) 英国著名软件工程专家,曾任圣安德鲁斯大学软件工程系教授。他在软件工程的教学和科研方面有40多年的工作经验,研究领域包括需求工程、大规模复杂系统和系统可靠性等。他撰写的软件工程教材畅销全球,销量超过75万册。
主要译者简介
李必信东南大学计算机科学与工程学院教授,中国计算机学会软件工程专委会委员、容错计算专委会常务委员,江苏省计算机学会软件专委会副主任。主要研究方向是软件开发方法与技术、算法设计与分析、高级软件工程、软件架构建模/分析/测试与验证、软件系统演化及软件质量保证等。