产品特色
编辑推荐
《软件工程》的八篇内容重构为四个部分,使教师讲授软件工程课程更加容易。每一章都有30%~40%的更新,增加了敏捷软件开发和嵌入式系统等新章,补充了模型驱动工程、开源开发、测试驱动开发、可依赖系统体系结构、静态分析和模型检查、COTS复用、服务作为软件以及敏
捷规划等新内容。着重讨论了开发可靠的分布式系统的相关主题以及敏捷方法和软件复用。反映敏捷方法先进性的同时,不忘强调传统的计划驱动软件工程的作用,阐述了两者结合构建优秀软件系统的重要性。以一个新的病人记录系统案例研究贯穿始终,系统、完整地讲解软件工程的各个方面。《软件工程》设计为“印刷/Web”相结合的方式,核心信息采用印刷版本,教辅材料及先前版本中的一些章节放在Web上,为读者提供丰富翔实的信息。
内容简介
《软件工程》是系统介绍软件工程理论的经典教材,自1982年初版以来,随着软件工程学科的不断发展,不断更新版本,影响了一代又一代软件工程人才,对学科本身也产生了重大影响。本版保留了上一版中的软件工程的基本材料,但对各章都进行了修改和更新,并增加了很多有关其他主题的新材料。
《软件工程》包含四个部分:第1部分是对软件工程的一般性介绍,包括软件工程过程和敏捷开发,以及面向对象的设计和设计模式的使用;第2部分介绍可依赖性和信息安全性问题;第3部分介绍高级软件工程;第四部分介绍软件管理,重点介绍技术管理问题。
作者简介
萨默维尔(Ian Sommerville),英国著名软件工程专家。曾任教于兰卡斯特大学,现为圣安德鲁斯大学软件工程学教授。他在软件工程的教学和科研方面有20多年的经验。他是IEEECS组织编撰“软件工程知识体系”(SWEBOK)的专家委员会成员之一。他的研究领域包括计算机系统工程、需求工程、系统可靠性以及软件进货。
精彩书评
在计算机科学的同一领域往往都有比肩齐声的佳作。软件工程类综述性的巨著也有两本:一本就是Roger Pressman所著的《软件工程:实践者的研究方法》,另一本就是lan Sommerville所著的本书。这两本名著都有多年历史(初版可追溯到20世纪80年代早期)。对于软件工程学科的形成和发展起到了重要作用。尤其是在教育界和学术界影响极大。相比Pressman的书,Sommerville的这本教材将全部内容划分为四个部分,每个部分可以单独使用或者是结合其他部分作为软件工程课程的基本内容,更加适合不同类型软件工程课程的教学需求,叙述也更趋清晰和简明。
——摘自业界专业人士的推荐
这本软件工程的经典教材不仅展现了软件工程的广阔视野。还着重阐述了在开发大型系统中一些广泛采用的技术。并辅以大量的例子和图解。作者将所有的话题控制在适度的篇幅,用简练到位的文字把重要的内容呈现给读者,并提供进一步阅读资料,供有兴趣的读者深入学习,使得本书更符合国内软件工程课程的教学需求。书中没有学院派布道式的说教,作者认为并不存在解决软件工程问题的灵丹妙药,而是强调读者需要学习和掌握更广泛的技术和工具以解决软件工程问题。从内容选材上,本书不落俗套,大胆舍弃了传统的软件工程内容和一些繁琐的软件工程理论。代之以简洁实用的软件工程新知识、新方法,增加了教材的实用性和可读性;从专题安排上,本书避虚就实,没有对软件工程技术泛泛而谈,而是针对那些大型系统开发技术进行分析,避免对个别产品中的技术进行过多阐述。
——刘艺,《计算机英语》作者
目录
出版者的话译者序前言第一部分 软件工程导论第1章 概述1.1 专业化软件开发1.1.1 软件工程1.1.2 软件工程的多样性1.1.3 软件工程和Web1.2 软件工程人员的职业道德1.3 案例研究1.3.1 胰岛素泵控制系统1.3.2 用于心理健康治疗的患者信息系统1.3.3 野外气象站要点进一步阅读材料练习参考书目第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.3.3 Boehm的螺旋模型2.4 Rational统一过程要点进一步阅读材料练习参考书目第3章 敏捷软件开发3.1 敏捷方法3.2 计划驱动开发和敏捷开发3.3 极限编程3.3.1 极限编程中的测试3.3.2 结对编程3.4 敏捷项目管理3.5 扩展的敏捷方法要点进一步阅读材料练习参考书目第4章 需求工程4.1 功能需求和非功能需求4.1.1 功能需求4.1.2 非功能需求4.2 软件需求文档4.3 需求描述4.3.1 自然语言描述4.3.2 结构化描述4.4 需求工程过程4.5 需求导出和分析4.5.1 需求发现4.5.2 采访4.5.3 脚本4.5.4 用例4.5.5 深入实际4.6 需求有效性验证4.7 需求管理4.7.1 需求管理规划4.7.2 需求变更管理要点进一步阅读材料练习参考书目第5章 系统建模5.1 上下文模型5.2 交互模型5.2.1 用例建模5.2.2 时序图5.3 结构模型5.3.1 类图5.3.2 泛化5.3.3 聚合5.4 行为模型5.4.1 数据驱动的建模5.4.2 事件驱动模型5.5 模型驱动工程5.5.1 模型驱动体系结构5.5.2 可执行UML要点进一步阅读材料练习参考书目第6章 体系结构设计6.1 体系结构设计决策6.2 体系结构视图6.3 体系结构模式6.3.1 分层体系结构6.3.2 容器体系结构6.3.3 客户机一服务器体系结构6.3.4 管道和过滤器体系结构6.4 应用体系结构6.4.1 事务处理系统6.4.2 信息系统6.4.3 语言处理系统要点进一步阅读材料练习参考书目第7章 设计与实现7.1 利用UML进行面向对象设计7.1.1 系统上下文与交互7.1.2 体系结构的设计7.1.3 对象类识别7.1.4 设计模型7.1.5 接口描述7.2 设计模式7.3 实现问题7.3.1 复用7.3.2 配置管理7.3.3 宿主机一目标机开发7.4 开源开发要点进一步阅读材料练习参考书目第8章 软件测试8.1 开发测试8.1.1 单元测试8.1.2 选择单元测试案例8.1.3 组件测试8.1.4 系统测试8.2 测试驱动开发8.3 发布测试8.3.1 基于需求的测试8.3.2 情景测试8.3.3 性能测试8.4 用户测试要点进一步阅读材料练习参考书目第9章 软件进化9.1 进化过程9.2 程序进化的动态特性9.3 软件维护9.3.1 维护预测9.3.2 软件再工程9.3.3 通过重构进行预防性维护9.4 遗留系统管理要点进一步阅读材料练习参考书目第二部分 可依赖性和信息安全性第三部分 高级软件工程第四部分 软件管理
精彩书摘
现代社会离不开软件。国家基础设施和公共建设都是由基于计算机的系统控制,大多数的电子产品都有计算机和控制软件。工业制造和分销已经完全计算机化了,金融系统也是这样。娱乐业,包括音乐产业、计算机游戏产业、电影和电视产业,也是一个软件密集型的产业。因此,软件工程对于一个国家和整个国际社会的运转都是必不可少的。 软件是抽象的、不可触摸的,它不受物质材料的限制,也不受物理定律或加工过程的制约,这一方面使软件工程得以简化,因为软件的潜能不受物理因素的限制;另一方面,由于缺乏自然约束,软件系统也就很容易变得极为复杂,理解它会很困难、改变它价格高昂。 从简单的嵌入式系统到复杂的全球信息系统,有很多不同类型的软件系统。正是由于不同的软件系统需要不同的技术,所以试图为软件工程寻求通用的符号系统、方法和技术是毫无意义的。开发一个机构信息系统和开发一个科学仪器的控制器是完全不同的。而这些系统都跟图形密集型的计算机游戏没有太多的共同点。所有这些应用都需要软件工程,但不是都需要相同的软件工程技术。 现在仍有许多有关软件项目出问题和“软件失败”的报道。软件工程因不能充分支持现代软件的开发而遭非议。然而,在我看来,这些所谓的软件失败源于以下两方面的原因: 1.不断增长的需求由于新的软件工程技术可以帮助我们构建更大更复杂的系统,用户的需要因而在发生改变。系统必须更快速地构建并交付;需要更大更复杂的系统;系统必须具备在以前看来不可能实现的功能。现有的软件工程方法已经不能应对新形势,而新的软件工程技术还有待于进一步发展。 ……
前言/序言
软件工程(原书第9版) epub pdf mobi txt 电子书 下载 2024
软件工程(原书第9版) 下载 epub mobi pdf txt 电子书 2024