软件工程(原书第10版)

软件工程(原书第10版) pdf epub mobi txt 电子书 下载 2025

[英] 伊恩·萨默维尔(Ian Sommerville) 著,彭鑫,赵文耘 等 译
图书标签:
  • 软件工程
  • 软件开发
  • 编程
  • 计算机科学
  • 软件质量
  • 需求分析
  • 系统设计
  • 测试
  • 项目管理
  • 软件维护
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111589105
版次:1
商品编码:12311942
品牌:机工出版
包装:平装
丛书名: 计算机科学丛书
开本:16开
出版时间:2018-02-01
用纸:胶版纸
页数:515
正文语种:中文

具体描述

内容简介

  《软件工程(原书第10版)》是系统介绍软件工程理论的经典教材,共包含四个部分:第1部分(第1~9章)是对软件工程的一般性介绍,介绍了软件工程的一些重要概念(如软件过程和敏捷方法),描述了基本的软件开发活动(从需求规格说明一直到系统演化);第二部分(第10~14章)关注软件系统可依赖性和信息安全等重要话题;第三部分(第15~21章)介绍更高级的软件工程话题;第四部分(第22~25章)关注技术管理问题。
  《软件工程(原书第10版)》适合作为软件和系统工程专业本科生或研究生教材,同时也是软件工程师难得的参考书。

作者简介

  伊恩·萨默维尔(Ian Sommerville),英国著名软件工程专家,曾任圣安德鲁斯大学软件工程系教授。2014年退休。他在软件工程的教学和科研方面有40多年的经验。研究领域包括需求工程、大规模复杂系统和系统可靠性等。他撰写的软件工程教材畅销全球。销量超过75万册。

内页插图

目录

出版者的话
译者序
前言

第一部分 软件工程导论
第1章 概述
1.1 专业化软件开发
1.1.1 软件工程
1.1.2 软件工程的多样性
1.1.3 互联网软件工程
1.2 软件工程职业道德
1.3 案例研究
1.3.1 胰岛素泵控制系统
1.3.2 心理健康治疗病人信息系统
1.3.3 野外气象站
1.3.4 学校数字化学习环境
要点
阅读推荐
网站
练习
参考文献
第2章 软件过程
2.1 软件过程模型
2.1.1 瀑布模型
2.1.2 增量式开发
2.1.3 集成与配置
2.2 过程活动
2.2.1 软件规格说明
2.2.2 软件设计和实现
2.2.3 软件确认
2.2.4 软件演化
2.3 应对变化
2.3.1 原型
2.3.2 增量式交付
2.4 过程改进
要点
阅读推荐
网站
练习
参考文献
第3章 敏捷软件开发
3.1 敏捷方法
3.2 敏捷开发技术
3.2.1 用户故事
3.2.2 重构
3.2.3 测试先行的开发
3.2.4 结对编程
3.3 敏捷项目管理
3.4 敏捷方法的伸缩
3.4.1 敏捷方法的实践问题
3.4.2 敏捷和计划驱动的方法
3.4.3 面向大型系统的敏捷方法
3.4.4 面向整个组织的敏捷方法
要点
阅读推荐
网站
练习
参考文献
第4章 需求工程
4.1 功能性需求和非功能性需求
4.1.1 功能性需求
4.1.2 非功能性需求
4.2 需求工程过程
4.3 需求抽取
4.3.1 需求抽取技术
……
第5章 系统建模
第6章 体系结构设计
第7章 设计和实现
第8章 软件测试
第9章 软件演化

第二部分 系统可依赖性和信息安全
第10章 可依赖系统
第11章 可靠性工程
第12章 安全工程
第13章 信息安全工程
第14章 韧性工程

第三部分 高级软件工程
第15章 软件复用
第16章 基于构件的软件工具
第17章 分布式软件工程
第18章 面向服务的软件工程
第19章 系统工程
第20章 系统之系统
第21章 实时软件工程

第四部分 软件管理
第22章 项目管理
第23章 项目计划
第24章 质量管理
第25章 配置管理
术语表

前言/序言

  软件工程在过去50年之中取得了令人瞩目的进展。我们的社会已经无法在缺少大型专业化软件系统的情况下正常运转了。国家的公用事业和基础设施(如能源、通信、交通)全都依赖于复杂且可靠的计算机系统。软件使得我们可以探索空间,创造万维网这一人类历史上最重要的信息系统。智能手机和平板电脑无处不在,而为这些设备开发软件的整个“应用开发产业”已经在过去几年中悄然形成。
  人类现在正面临着一系列迫切的挑战——气候变化和极端天气、自然资源的减少、需要为更多的人口提供食物和住房、国际恐怖主义的威胁,以及为老年人提供令人满意的生活。我们需要新技术来帮助我们应对这些挑战,可以肯定的是软件将在这些技术中扮演核心角色。因此,软件工程对于我们在这个星球上的未来极其重要。我们必须继续培养软件工程师并推动软件工程学科的持续发展,从而满足开发更多的软件系统以及创造我们所需要的越来越复杂的未来系统的需要。
  当然,软件项目还存在很多问题。系统仍然有时会延迟交付并且成本超支。我们正在创造越来越复杂的软件系统之系统(software systems of systems),在这条道路上遇到各种困难也是不足为奇的。然而,我们不应该让这些问题掩盖软件工程领域已经取得的巨大成就,以及所形成的各种令人印象深刻的软件工程方法和技术。
  本书的不同版本已经有超过30年的历史,而这一版同样遵循了本书第1版中所建立的基本原则:
  1.按照工业界实践介绍软件工程,不对任何特定的方法(例如敏捷开发、形式化方法)持倾向性态度。在现实中,工业界往往将各种技术(例如敏捷以及基于计划的开发)混合在一起使用,这一点也在本书中有所反映。
  2.根据我所知道的以及所理解的知识介绍软件工程。很多人建议我增加并详细介绍其他相关话题,例如开源软件开发、UML的使用以及移动软件工程等,但是我对这些领域的了解并不多,我个人的工作主要是在系统可靠性和系统工程方面,这一点在我为本书所选择的高级专题中有所反映。
  我认为现代软件工程的关键问题是管理复杂性,将敏捷和其他方法结合起来,并确保我们的系统安全以及有韧性。这些问题是我在这一版中修改和新增内容的主要因素。
《现代软件开发实践指南》 本书是一部面向软件从业者的综合性指南,旨在帮助读者掌握当前最前沿的软件开发理念、方法和技术。我们将深入探讨软件生命周期的各个阶段,从需求分析到部署与维护,为读者提供一套系统性的解决方案,以应对日益复杂的软件开发挑战。 核心内容概览: 1. 需求工程与分析: 用户故事与场景驱动开发: 学习如何从用户视角出发,编写清晰、可执行的用户故事,并通过场景分析来深入理解用户需求,确保开发的软件能够真正解决用户痛点。 建模技术: 掌握用例图、活动图、状态图等UML建模工具,将抽象的需求转化为直观的视觉模型, facilitating clear communication between stakeholders and the development team. 原型化与验证: 探讨不同类型的原型(抛弃式、演化式)及其在需求验证中的作用,以及如何通过用户反馈迭代优化产品方向。 2. 软件设计与架构: 设计原则与模式: 深入剖析SOLID原则、KISS、DRY等核心设计原则,以及常见的设计模式(工厂模式、单例模式、观察者模式等)在实际项目中的应用,提升代码的可维护性、可扩展性和可重用性。 架构风格与模式: 介绍微服务架构、事件驱动架构、分层架构等主流架构风格,分析其优缺点及适用场景,帮助读者构建健壮、可伸缩的系统。 领域驱动设计(DDD): 学习如何围绕业务领域来组织软件设计,建立统一的领域语言,实现业务与技术的深度融合,应对复杂业务逻辑。 API设计与管理: 掌握RESTful API、GraphQL等现代API设计原则,以及API版本控制、文档生成等实践,确保系统间高效、安全的交互。 3. 敏捷开发方法论: Scrum与Kanban: 全面解读Scrum的框架、角色、事件与工件,以及Kanban的流程与实践,指导读者如何在实际项目中落地敏捷开发,实现快速迭代与持续交付。 DevOps文化与实践: 强调开发与运维的协作,探讨持续集成(CI)、持续交付(CD)、自动化测试、基础设施即代码(IaC)等关键实践,构建高效、可靠的软件交付流水线。 精益思想在软件开发中的应用: 学习如何消除开发过程中的浪费,持续优化价值流,以最小的成本创造最大的用户价值。 4. 软件实现与测试: 现代编程范式: 探讨函数式编程、面向对象编程、声明式编程等不同编程范式的特点,引导读者根据项目需求选择最适合的范式。 单元测试、集成测试与端到端测试: 详细介绍各种测试方法的目的、策略与实现,强调自动化测试在保障软件质量中的核心地位。 代码审查与静态分析: 阐述代码审查的流程与最佳实践,以及利用静态代码分析工具(如SonarQube)来发现潜在的代码缺陷与安全漏洞。 重构技术: 学习如何安全有效地对现有代码进行改进,提升代码质量,而不改变其外部行为。 5. 软件质量保障与部署: 性能测试与调优: 学习如何识别性能瓶颈,进行负载测试、压力测试,并掌握相应的调优策略。 安全开发实践: 强调安全是软件开发生命周期中不可或缺的一部分,介绍常见的安全威胁(如OWASP Top 10)及其防护措施,以及安全编码指南。 容器化与云原生: 介绍Docker、Kubernetes等容器化技术,以及微服务在云环境中的部署与管理,实现应用的弹性伸缩与高可用。 监控与日志: 学习如何建立有效的系统监控与日志收集机制,及时发现并定位生产环境中的问题。 6. 项目管理与团队协作: 风险管理: 识别、评估和应对软件开发过程中的潜在风险,确保项目按时、按质完成。 沟通与协作: 强调团队成员之间以及与客户之间的有效沟通,构建协作共赢的工作环境。 度量与改进: 学习如何收集和分析项目度量指标,用于评估项目进展、识别改进机会,并持续优化开发流程。 本书特色: 实践导向: 强调理论与实践的结合,通过丰富的案例分析和代码示例,帮助读者将所学知识转化为实际技能。 前沿性: 涵盖当前软件开发领域最热门的技术和方法,如微服务、DevOps、容器化等。 系统性: 提供一个完整的软件开发知识体系,从宏观到微观,层层深入。 可读性强: 语言清晰易懂,结构逻辑严谨,适合不同背景的软件从业者阅读。 无论您是初入软件开发的工程师,还是经验丰富的架构师,亦或是项目经理,本书都将是您提升专业技能、拥抱软件工程新范式的宝贵参考。通过本书的学习,您将能够更自信地应对复杂项目,构建高质量、可维护、可扩展的软件系统,并在快速变化的行业中保持竞争力。

用户评价

评分

这本书给我最大的感受是,软件工程并非一门刻板的理论学科,而是一门充满实践智慧的工程艺术。它不仅仅是关于代码如何编写,更是关于如何有效地组织团队、管理流程、应对变化。书中对需求工程的详尽阐述,让我明白,准确理解用户需求是成功的基础。而对软件设计的深入剖析,则为我们提供了构建高质量系统的工具箱。我尤其喜欢书中关于“软件质量”的多维度定义,它不仅仅是功能的正确性,更包含了性能、安全性、易用性、可维护性等方方面面。通过阅读这本书,我对软件开发的认识,从简单的“写代码”提升到了“构建成功的软件产品”的层面,这是一种非常宝贵的认知升级。

评分

这本《软件工程(原书第10版)》不仅仅是一本教科书,更像是一份宝贵的经验集锦。它将复杂的软件工程理论,通过生动的案例和清晰的逻辑,展现在读者面前。我特别喜欢书中对“软件危机”的探讨,以及如何通过科学的工程方法来应对。从需求工程的严谨性,到设计模式的巧妙运用,再到测试策略的多样性,每一个环节都充满了智慧。书中对敏捷开发和DevOps的深入分析,也让我看到了软件开发未来的趋势。它不仅仅是技术的更新,更是一种协作和沟通的文化。我还会经常回顾书中关于“软件演进”和“维护”的部分,这部分内容对于延长软件的生命周期,降低维护成本,具有极其重要的指导意义。它让我明白,软件工程不仅仅是“如何开始”,更是“如何持续”。

评分

我一直认为,真正好的技术书籍,应该能够激发读者的思考,而不是仅仅传授知识。这本《软件工程(原书第10版)》恰恰做到了这一点。书中大量的案例研究,并非生搬硬套,而是通过对真实世界问题的剖析,引导读者去思考“为什么”和“如何做”。例如,在讨论不同架构风格的优劣时,它没有简单地列出它们的特点,而是通过比较不同场景下采用不同架构所带来的后果,让你深刻理解架构选择的权衡和取舍。我也非常喜欢书中关于度量和指标的部分,它教会我们如何量化软件开发的各个方面,从而更好地识别问题、改进流程。尤其是在谈到软件质量时,书中不仅仅是强调了代码层面的检查,更延伸到了用户体验、系统可靠性和安全性等方面,展现了一个 holistic 的质量观。对于一些模糊的概念,比如“可维护性”,书中也给出了具体的衡量标准和实现途径,这对于实际工作中如何落地执行非常有指导意义。我还会经常翻阅书中的一些流程图和表格,它们简洁明了地梳理了复杂的概念,帮助我快速回顾和理解。这绝对是一本值得反复阅读、从中汲取智慧的经典之作。

评分

不得不说,这本书的内容之丰富,足以让任何一个软件工程师受益匪浅。它涵盖了从软件开发的宏观概念到微观技术的方方面面。在需求工程方面,书中介绍了多种需求获取和建模技术,并结合实际案例说明了它们的应用。在软件设计方面,它深入探讨了各种设计原则、设计模式和架构风格,并提供了如何选择和应用这些技术的指导。我特别欣赏的是,书中对软件测试和质量保证的论述,它详细介绍了单元测试、集成测试、系统测试、验收测试等不同层级的测试方法,以及如何进行缺陷管理和过程度量。此外,书中还涵盖了软件项目管理、团队协作、配置管理、软件维护等重要主题,为读者提供了一个全面的软件工程知识体系。这本书的案例分析也非常精彩,通过对真实项目中的成功与失败经验的总结,让读者能够更深刻地理解软件工程的实践意义。

评分

从我个人的角度来看,这本书在结构上的编排堪称一绝。它遵循了一条清晰且逻辑严密的脉络,从软件开发的基础概念,逐步深入到更复杂的实践和理论。开篇部分对于软件开发的基本原则和模型进行了扎实的介绍,为后续的学习打下了坚实的基础。随后,它详细阐述了需求工程、系统设计、编码实践、测试与质量保证等各个阶段的关键活动和技术。我尤其赞赏的是,书中没有将各个阶段割裂开来,而是强调了它们之间的相互联系和迭代关系。例如,在讲解需求分析时,它会提及设计阶段如何验证需求的完整性和可行性,而在讨论编码时,也会回顾需求和设计的要求。这种全局观的视角,对于理解软件开发的系统性至关重要。书中还加入了许多关于软件过程改进、项目管理和团队协作的内容,这使得这本书的内容远不止于技术本身,更包含了软件工程作为一门学科所必须关注的组织和人本因素。这本书的语言风格也十分严谨,既不失学术的深度,也不缺乏实践的可操作性。

评分

这本书简直是软件工程领域的百科全书,即便我已经从业多年,初次翻阅依然被其内容的深度和广度所震撼。它不像某些技术书籍那样,只停留在概念的介绍,而是深入到每一个环节的细节。从需求分析的各种模型和方法,到设计模式的精妙运用,再到测试策略的多样性,书中都给予了详尽的阐述。我尤其欣赏的是它对敏捷开发和DevOps的讨论,这不仅仅是理论上的介绍,还包含了很多实际的案例分析,让我能清晰地看到这些现代开发模式如何在实际项目中落地生根,解决痛点。书中关于项目管理的部分,也并非简单的甘特图和WBS罗列,而是深入探讨了风险管理、沟通协调、团队建设等软技能的重要性,这对于很多初入职场的开发者来说,是至关重要的补充。甚至在软件维护和演进方面,也给出了前瞻性的指导,强调了代码质量、可维护性和可扩展性的长期价值。总而言之,这本书提供了一个系统而全面的视角,帮助读者理解软件工程的整个生命周期,以及在这个过程中可能遇到的各种挑战和解决方案。它就像一位经验丰富的导师,循循善诱,让你对软件工程这门艺术与科学有了更深刻的认识。

评分

在我看来,这本书最大的价值在于它提供了一个系统性的框架,帮助读者理解软件开发的整个过程。它不仅仅是技术的堆砌,更是一种思维方式的引导。从项目启动到软件交付,再到后期的维护,每一个环节都得到了详尽的阐述。书中对于不同开发模型的介绍,比如瀑布模型、迭代模型、敏捷模型等,都进行了深入的分析,并阐述了它们各自的优缺点和适用场景。这让我能够根据不同的项目需求,选择最合适的开发模型。我尤其喜欢书中关于软件度量和过程改进的内容,它强调了通过数据来驱动决策,从而不断优化开发过程。例如,书中对代码复杂度、缺陷密度、开发效率等指标的讨论,为我们提供了量化软件开发质量和效率的工具。这本书的语言风格也非常易于理解,即使是对于初学者,也能在阅读过程中逐步建立起对软件工程的全面认识。

评分

这本书就像一位经验丰富的建筑师,为软件开发这栋宏伟的建筑,提供了最坚实的设计蓝图和施工指南。它不仅仅关注软件的“构建”,更深入到“设计”和“规划”的层面。在需求的理解和定义上,它强调了清晰、完整、可验证的重要性。在软件架构的设计上,它提供了多种原则和模式,引导我们如何构建灵活、可扩展、可维护的系统。我尤其赞赏书中关于“权衡”的讨论,无论是技术选择、资源分配,还是风险应对,都充满了工程学的智慧,教会我们在复杂环境中做出明智的决策。书中对软件测试的深入讲解,也让我认识到,测试并非是开发完成后的附加项,而是贯穿整个开发生命周期的关键环节。它不仅是找出 Bug,更是验证需求、提升质量的有力保障。这本书的价值在于,它能够帮助开发者从“编码匠”升级为“系统工程师”,从“解决眼前问题”提升到“构建可持续的软件资产”。

评分

这本书给我最大的启发,在于它让我重新审视了“工程”这个词在软件开发中的真正含义。很多时候,我们可能会把编程看作是一种创造性的活动,但这本书清晰地展现了软件开发作为一门工程学科的严谨性和系统性。它详细讲解了软件开发的生命周期,以及在每个阶段需要遵循的规范和流程。从需求获取的艺术,到架构设计的哲学,再到编码实现的精度,以及测试验证的严苛,每一个环节都被赋予了工程学的严谨性。书中对于风险管理的论述,让我深刻认识到,在软件开发过程中,预见和规避风险是多么重要。它不仅仅是技术问题,更是管理和策略问题。我特别喜欢书中对软件质量的定义,它不仅仅是代码的 Bug 数量,更包含了系统的性能、安全性、可维护性等多个维度。读完这本书,我感觉自己对软件开发的理解,从“写出能跑的代码”提升到了“构建健壮、可维护、可扩展的软件系统”的层面。这是一种质的飞跃。

评分

对我而言,这本书最吸引我的地方在于它对软件开发中的“系统性”的强调。它不像一些零散的技术文章,这本书从软件的产生、发展到消亡,提供了一个完整的生命周期视图。从最初的“为什么要做”的需求分析,到“如何做”的设计和编码,再到“做的好不好”的测试和质量保证,以及最后的“如何让它活得更久”的维护和演进,环环相扣,逻辑严密。我特别欣赏书中关于“度量”和“改进”的章节,它教我们如何用数据说话,如何识别瓶颈,如何持续优化开发流程。这让我意识到,软件工程是一门不断学习和进化的科学。书中对不同规模和类型的项目,都给出了相应的工程方法论指导,这使得它具有很强的普适性。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有