描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111548973丛书名: 计算机科学丛书
内容简介
本书自第1版出版至今,30多年来在软件工程界产生了巨大而深远的影响。第8版不仅加入了移动应用软件项目等与时俱进的内容,而且调整了篇章结构,更利于教师针对不同课程进行选择。同时,第8版全面继承了之前版本的风格与优势,全面且系统地讲解软件过程、建模、质量管理、项目管理等基础知识,涵盖相关概念、原则、方法和工具,并且提供丰富的辅助阅读资源和网络资源,指导有兴趣的读者进行更深入的学习和研究。本书适合作为软件工程相关专业高年级本科生和研究生教材,也可供软件专业技术人员和管理人员阅读参考。
目 录
目 录Software Engineering: A Practitioner’s Approach, Eighth Edition出版者的话译者序前言作者简介第1章 软件的本质 11.1 软件的本质 31.1.1 定义软件 31.1.2 软件应用领域 41.1.3 遗留软件 51.2 软件的变更本质 61.2.1 WebApp 61.2.2 移动 App 71.2.3 云计算 71.2.4 产品线软件 81.3 小结 8习题与思考题 8扩展阅读与信息资源 9第2章 软件工程 102.1 定义软件工程学科 112.2 软件过程 112.2.1 过程框架 122.2.2 普适性活动 122.2.3 过程的适应性调整 132.3 软件工程实践 132.3.1 实践的精髓 142.3.2 通用原则 142.4 软件开发神话 162.5 这一切是如何开始的 182.6 小结 19习题与思考题 19扩展阅读与信息资源 19部分 软件过程第3章 软件过程结构 223.1 通用过程模型 233.2 定义框架活动 243.3 明确任务集 243.4 过程模式 253.5 过程评估与改进 273.6 小结 28习题与思考题 28扩展阅读与信息资源 28第4章 过程模型 294.1 惯用过程模型 304.1.1 瀑布模型 304.1.2 增量过程模型 324.1.3 演化过程模型 324.1.4 并发模型 364.1.5 演化过程的终评述 374.2 专用过程模型 384.2.1 基于构件的开发 384.2.2 形式化方法模型 394.2.3 面向方面的软件开发 394.3 统一过程 404.3.1 统一过程的简史 414.3.2 统一过程的阶段 414.4 个人过程模型和团队过程模型 424.4.1 个人软件过程 424.4.2 团队软件过程 434.5 过程技术 444.6 产品和过程 454.7 小结 46习题与思考题 46扩展阅读与信息资源 47第5章 敏捷开发 485.1 什么是敏捷 495.2 敏捷及变更成本 505.3 什么是敏捷过程 505.3.1 敏捷原则 515.3.2 敏捷开发战略 525.4 极限编程 525.4.1 极限编程过程 525.4.2 工业极限编程 545.5 其他敏捷过程模型 565.5.1 Scrum 565.5.2 动态系统开发方法 575.5.3 敏捷建模 585.5.4 敏捷统一过程 595.6 敏捷过程工具集 605.7 小结 61习题与思考题 61扩展阅读与信息资源 62第6章 软件工程的人员方面 646.1 软件工程师的特质 646.2 软件工程心理学 656.3 软件团队 666.4 团队结构 676.5 敏捷团队 686.5.1 通用敏捷团队 686.5.2 XP团队 696.6 社交媒体的影响 706.7 软件工程中云的应用 716.8 协作工具 716.9 全球化团队 726.10 小结 73习题与思考题 73扩展阅读与信息资源 74第二部分 建模第7章 指导实践的原则 767.1 软件工程知识 777.2 核心原则 777.2.1 指导过程的原则 787.2.2 指导实践的原则 787.3 指导每个框架活动的原则 807.3.1 沟通原则 807.3.2 策划原则 817.3.3 建模原则 837.3.4 构建原则 877.3.5 部署原则 897.4 工作实践 907.5 小结 91习题与思考题 92扩展阅读与信息资源 92第8章 理解需求 948.1 需求工程 958.2 建立根基 1008.2.1 确认利益相关者 1008.2.2 识别多重观点 1008.2.3 协同合作 1018.2.4 首次提问 1018.2.5 非功能需求 1028.2.6 可追溯性 1028.3 获取需求 1038.3.1 协作收集需求 1038.3.2 质量功能部署 1058.3.3 使用场景 1068.3.4 获取工作产品 1068.3.5 敏捷需求获取 1078.3.6 面向服务的方法 1078.4 开发用例 1078.5 构建分析模型 1118.5.1 分析模型的元素 1128.5.2 分析模式 1148.5.3 敏捷需求工程 1148.5.4 自适应系统的需求 1148.6 协商需求 1158.7 需求监控 1168.8 确认需求 1178.9 避免常见错误 1178.10 小结 118习题与思考题 118扩展阅读与信息资源 119第9章 需求建模:基于场景的方法 1219.1 需求分析 1229.1.1 总体目标和原理 1229.1.2 分析的经验原则 1239.1.3 域分析 1239.1.4 需求建模的方法 1259.2 基于场景建模 1269.2.1 创建初始用例 1269.2.2 细化初始用例 1289.2.3 编写正式用例 1299.3 补充用例的UML模型 1319.3.1 开发活动图 1319.3.2 泳道图 1329.4 小结 133习题与思考题 133扩展阅读与信息资源 133第10章 需求建模:基于类的方法 13510.1 识别分析类 13510.2 描述属性 13810.3 定义操作 13810.4 类–职责–协作者建模 14010.5 关联和依赖 14510.6 分析包 14
前 言
前 言Software Engineering: A Practitioner’s Approach, Eighth Edition如果有这样一款计算机软件,它能满足用户的需求,能在相当长的时间内无故障地运行,修改起来轻松便捷,使用起来更是得心应手,那么,这款软件必定是成功的,它切实改善了我们的生活。但是,如果有这样一款软件,它令用户失望,错误频出,修改起来困难重重,使用起来更是举步维艰,那么,这必定是一款失败的软件,它使我们的生活一团糟。谁都希望开发出优秀的软件,为我们的生活带来便利,而不是把自己陷入失败的深渊。要想使软件获得成功,在设计和构建软件时就需要有规范,需要采用工程化的方法。 自本书第1版问世以来的近35年中,软件工程已经从少数倡导者提出的一些朦胧概念发展成为一门正规的工程学科,已被公认为是一个值得深入研究、认真学习和热烈讨论的课题。在整个行业中,软件工程师已经代替程序员成为人们优先选择的工作岗位,软件过程模型、软件工程方法和软件工具都已在全行业的所有环节成功采用。 尽管管理人员和一线专业人员都承认需要有更为规范的软件方法,但他们却始终在争论应该采用什么样的规范。有许多个人和公司至今仍在杂乱无章地开发着自己的软件,甚至即使他们正在开发的系统要服务于当今为先进的技术,状况也仍是如此。许多专业人员和学生并不了解现代方法,这导致他们所开发的软件质量很差,因而造成了严重的后果。此外,有关软件工程方法真实本质的争论一直持续进行着。软件工程的地位问题已成为一门对比研究课题。人们对软件工程的态度已经有所改善,研究工作已取得了进展,不过要成为一门完全成熟的学科,我们还有大量的工作要做。 我们希望本书能够成为引导读者进入正在走向成熟的软件工程学科的入门读物,和以前的7个版本一样,第8版对学生和专业人员同样具有很强的吸引力。它既是软件专业人员的工作指南,也是高年级本科生和一年级研究生的综合性参考书。 第8版中包含了许多新的内容,它绝不只是前一版的简单更新。这一版不仅对内容做了适当的修改,而且调整了全书的结构,以改进教学顺序;同时更加强调一些新的和重要的软件工程过程和软件工程实践知识。此外,本书进一步加强了“支持系统”,为学生、教师和专业人员提供了更为丰富的知识资源。读者可访问专门为本书建立的网站(www.mhhe.com/pressman)查阅这些信息。 篇章结构本书共39章,分为五个部分。这种划分有利于那些无法在一个学期内讲完全书内容的教师灵活安排教学。 部分“软件过程”给出了有关软件过程的各种不同观点,讨论了所有重要的过程模型,还涉及惯用过程和敏捷过程在指导思想上的分歧。第二部分“建模”给出了分析方法和设计方法,重点讲解面向对象方法和UML建模,同时也介绍了基于模式的设计以及基于WebApp和移动App的设计。第三部分“质量管理”介绍了有关质量管理的概念、规程、技术和方法,使得软件团队能够很好地评估软件质量,评审软件工程工作产品,实施软件质量保证规程,并正确地运用有效的测试策略和战术。此外,这一部分还讨论了形式化建模和验证方法。第四部分“管理软件项目”介绍了与计划、管理和控制软件开发项目的人员有关的问题。第五部分“软件工程高级课题”讨论了软件过程改进和软件工程的发展趋势。 第8版沿用了前面几个版本的做法,在各章中都提供了大量的辅助阅读信息,包括一个虚拟软件团队在工作中遇到困难时展开的对话,还包括对各章相关知识给出的补充方法和工具。 第8版中五个部分的划分有利于教师根据学时和教学要求安排课堂内容。在一个学期内可以安排一个部分的内容,也可以安排多个部分的内容。软件工程概论课程可以从五个部分中选择若干章作为教材。侧重分析和设计的软件工程课程可以从部分和第二部分中选取素材。面向测试的软件工程课程则可以从部分和第三部分中选取素材,还应加上第二部分中的一些内容。侧重管理的课程应突出部分和第四部分的内容。我们用上述方式组织第8版的内容,意在给教师提供多种教学安排的选择。但无论如何选择这些内容,都可以从“支持系统”中获得补充资源。 相关资源学生资源本书为学生提供的各种学习资料包括:在线学习中心提供的各章学习指南,实践测验,题解以及多种在线资源(软件工程检查单、一套正在演化的微型工具、综合案例研究和工作产品模板等)。此外,1000多种网络参考文献可供学生更深入地探究软件工程问题,还有500多篇可下载的参考文献,这些都为读者提供了关于高级软件工程课题的更为详尽的信息。 教师资源本书为教师提供的各种教学资料包括:在线(也可下载)教师指南,由700多个PPT组成的教辅资源和试题库。当然,学生资源(如微型工具、网络参考文献及可下载参考文献)和专业人员资源也可供教师使用。 在本书的教师指南中,我们为各种类型的软件工程课程提出了建议,介绍了与课程配合开展的软件项目、部分问题的题解和许多有用的教学辅助工具。 专业人员资源本书为产业界专业人员(也包括在校学生)提供的各种资料包括:软件工程文档和其他工作产品的
评论
还没有评论。