软件工程(原书第10版)计算机科学丛书

软件工程(原书第10版)计算机科学丛书 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • 软件工程
  • 计算机科学
  • 编程
  • 软件开发
  • 软件设计
  • 软件测试
  • 需求分析
  • 系统设计
  • 算法
  • 数据结构
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 点点动力图书专营店
出版社: 机械工业出版社
ISBN:9787111589105
商品编码:25527683902
丛书名: 软件工程 原书第10版
出版时间:2018-02-01

具体描述

  商品基本信息
商品名称:   软件工程(原书第10版)
作者:   [英] 伊恩·萨默维尔
市场价:   89.00
ISBN号:   9787111589105
版次:   1-1
出版日期:   2018-01
页数:   532
字数:   400
出版社:   机械工业出版社
  目录
目 录
Software Engineering, Tenth Edition
出版者的话
译者序
前言
部分 软件工程导论
第1章 概述 2
1.1 专业化软件开发 3
1.1.1 软件工程 5
1.1.2 软件工程的多样性 6
1.1.3 互联网软件工程 8
1.2 软件工程职业道德 9
1.3 案例研究 11
1.3.1 胰岛素泵控制系统 12
1.3.2 心理健康治疗病人信息系统 13
1.3.3 野外气象站 14
1.3.4 学校数字化学习环境 15
要点 16
阅读推荐 17
网站 17
练习 17
参考文献 18
第2章 软件过程 19
2.1 软件过程模型 20
2.1.1 瀑布模型 21
2.1.2 增量式开发 23
2.1.3 集成与配置 25
2.2 过程活动 26
2.2.1 软件规格说明 26
2.2.2 软件设计和实现 27
2.2.3 软件确认 29
2.2.4 软件演化 30
2.3 应对变化 31
2.3.1 原型 32
2.3.2 增量式交付 33
2.4 过程改进 34
要点 36
阅读推荐 36
网站 37
练习 37
参考文献 37
第3章 敏捷软件开发 39
3.1 敏捷方法 40
3.2 敏捷开发技术 42
3.2.1 用户故事 43
3.2.2 重构 44
3.2.3 测试先行的开发 45
3.2.4 结对编程 46
3.3 敏捷项目管理 47
3.4 敏捷方法的伸缩 50
3.4.1 敏捷方法的实践问题 51
3.4.2 敏捷和计划驱动的方法 52
3.4.3 面向大型系统的敏捷方法 54
3.4.4 面向整个组织的敏捷方法 56
要点 57
阅读推荐 57
网站 58
练习 58
参考文献 58
第4章 需求工程 60
4.1 功能性需求和非功能性需求 62
4.1.1 功能性需求 63
4.1.2 非功能性需求 64
4.2 需求工程过程 66
4.3 需求抽取 67
4.3.1 需求抽取技术 69
4.3.2 故事和场景 71
4.4 需求规格说明 73
4.4.1 自然语言规格说明 74
4.4.2 结构化规格说明 75
4.4.3 用况 76
4.4.4 软件需求文档 77
4.5 需求确认 79
4.6 需求变更 80
4.6.1 需求管理计划 81
4.6.2 需求变更管理 82
要点 83
阅读推荐 83
网站 84
练习 84
参考文献 85
第5章 系统建模 86
5.1 上下文模型 87
5.2 交互模型 89
5.2.1 用况建模 90
5.2.2 顺序图 91
5.3 结构模型 93
5.3.1 类图 93
5.3.2 泛化 95
5.3.3 聚集 95
5.4 行为模型 96
5.4.1 数据驱动的建模 96
5.4.2 事件驱动的建模 97
5.4.3 模型驱动的工程 99
5.5 模型驱动的体系结构 100
要点 102
阅读推荐 103
网站 103
练习 103
参考文献 104
第6章 体系结构设计 105
6.1 体系结构设计决策 107
6.2 体系结构视图 109
6.3 体系结构模式 110
6.3.1 分层体系结构 111
6.3.2 知识库体系结构 112
6.3.3 客户-服务器体系结构 113
6.3.4 管道和过滤器体系结构 115
6.4 应用体系结构 116
6.4.1 事务处理系统 117
6.4.2 信息系统 118
6.4.3 语言处理系统 119
要点 121
阅读推荐 122
网站 122
练习 122
参考文献 123
第7章 设计和实现 125
7.1 使用UML的面向对象设计 126
7.1.1 系统上下文和交互 126
7.1.2 体系结构设计 128
7.1.3 对象类识别 129
7.1.4 设计模型 130
7.1.5 接口规格说明 133
7.2 设计模式 134
7.3 实现问题 136
7.3.1 复用 137
7.3.2 配置管理 138
7.3.3 宿主机-目标机开发 139
7.4 开源开发 141
7.4.1 开源许可证 142
要点 143
阅读推荐 143
网站 144
练习 144
参考文献 145
第8章 软件测试 146
8.1 开发测试 149
8.1.1 单元测试 150
8.1.2 选择单元测试用例 151
8.1.3 构件测试 153
8.1.4 系统测试 155
8.2 测试驱动的开发 157
8.3 发布测试 159
8.3.1 基于需求的测试 159
8.3.2 场景测试 160
8.3.3 性能测试 161
8.4 用户测试 161
要点 163
阅读推荐 164
网站 164
练习 164
参考文献 165
第9章 软件演化 166
9.1 演化过程 168
9.2 遗留系统 170
9.2.1 遗留系统管理 173
9.3 软件维护 176
9.3.1 维护预测 178
9.3.2 软件再工程 179
9.3.3 软件重构 181
要点 182
阅读推荐 182
网站 183
练习 183
参考文献 183
第二部分 系统可依赖性和信息安全
第10章 可依赖系统 186
10.1 可依赖性属性 187
10.2 社会技术系统 189
10.2.1 规章与守约 191
10.3 冗余和多样性 192
10.4 可依赖的过程 193
10.5 形式化方法与可依赖性 195
要点 197
阅读推荐 198
网站 198
练习 198
参考文献 199
第11章 可靠性工程 200
11.1 可用性和可靠性 202
11.2 可靠性需求 203
11.2.1 可靠性度量 204
11.2.2 非功能性可靠性需求 205
11.2.3 功能性可靠性规格说明 207
11.3 容错体系结构 207
11.3.1 保护性系统 208
11.3.2 自监控系统体系结构 208
11.3.3 N版本编程 210
11.3.4 软件多样性 211
11.4 可靠性编程 212
11.5 可靠性度量 216
11.5.1 运行概况 218
要点 218
阅读推荐 219
网站 219
练习 219
参考文献 220
第12章 安全工程 221
12.1 安全关键系统 222
12.2 安全需求 224
12.2.1 危险识别 225
12.2.2 危险评估 226
12.2.3 危险分析 227
12.2.4 风险降低 229
12.3 安全工程过程 229
12.3.1 安全保证过程 230
12.3.2 形式化验证 232
12.3.3 模型检测 233
12.3.4 静态程序分析 234
12.4 安全案例 235
12.4.1 结构化论证 237
12.4.2 软件的安全论证 238
要点 240
阅读推荐 241
网站 241
练习 241
参考文献 242
第13章 信息安全工程 244
13.1 信息安全和可依赖性 245
13.2 信息安全和组织 248
13.2.1 信息安全风险评估 249
13.3 信息安全需求 249
13.3.1 滥用案例 252
13.4 信息安全系统设计 253
13.4.1 设计风险评估 254
13.4.2 体系结构设计 257
13.4.3 设计准则 259
13.4.4 信息安全系统编程 263
13.5 信息安全测试和保证 263
要点 265
阅读推荐 265
网站 265
练习 266
参考文献 266
第14章 韧性工程 268
14.1 网络安全 270
14.2 社会技术韧性 273
14.2.1 人为错误 275


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

《精通软件开发:原理、实践与演进》 内容概述: 本书是一部旨在为读者提供全面、深入且与时俱进的软件工程知识体系的著作。我们抛弃了对单一版本号的执着,而是专注于软件工程领域的核心原理、普适性实践以及驱动行业发展的演进趋势。本书将引导您穿越软件开发的复杂世界,从基础概念的扎根,到高级技法的精炼,再到面向未来的创新思维,让您构建坚实的理论基础,掌握高效的实践技能,并培养应对挑战的敏锐洞察力。 第一部分:软件工程的基石 本部分将带您深入理解软件工程这门学科的本质,探究其为何重要,以及它如何在日新月异的科技浪潮中扮演着不可或缺的角色。 什么是软件工程? 我们将从最根本的角度定义软件工程,阐述其区别于简单编程的独特之处。您将了解到,软件工程不仅仅是编写代码,更是一门关于如何系统化、规模化、高质量地构建和维护复杂软件系统的科学与艺术。我们将探讨软件工程的目标,包括提高开发效率、保证软件质量、降低开发成本、缩短开发周期以及提升软件的可维护性和可靠性。 软件生命周期模型: 您将认识到,软件开发并非一蹴而就,而是遵循一系列阶段性的过程。本书将详细介绍各种经典的软件生命周期模型,如瀑布模型、迭代模型、螺旋模型、敏捷模型等。我们将深入分析每种模型的优势、劣势、适用场景以及演进过程,帮助您理解不同模型如何应对不同的项目需求和约束。您将学会如何根据项目特点选择最合适的模型,并理解敏捷开发方法论在现代软件工程中的核心地位及其对整个开发流程的影响。 需求工程: 软件的成功与否,很大程度上取决于对用户需求的准确理解和表达。本部分将为您揭示需求工程的奥秘,从需求获取的各种技术(如访谈、问卷、原型法、用户故事等),到需求分析的方法(如用例建模、数据流图、ER图等),再到需求规格说明的编写原则和文档化。您将学习如何识别、记录、验证和管理软件需求,确保开发出的软件真正满足用户期望。 软件设计: 优秀的软件设计是软件质量的基石。我们将从宏观架构设计到微观模块设计,系统地介绍软件设计的原则和模式。您将学习到面向对象设计的核心概念(如封装、继承、多态),设计模式的分类与应用(如创建型、结构型、行为型模式),以及如何进行系统分解、模块化设计、接口设计和数据库设计。本书将强调“清晰、简洁、可维护”的设计理念,帮助您构建易于理解、扩展和重用的软件系统。 软件实现与编码: 尽管本书侧重于工程层面,但良好的实现是概念落地的关键。我们将探讨高质量编码的原则,包括代码风格、命名规范、注释的重要性、以及编写可读性强、易于维护的代码的技巧。虽然不深入具体编程语言的语法,但我们将强调如何在编码过程中体现软件工程的思想,例如通过单元测试、代码审查等方式来保证代码质量。 第二部分:软件工程的实践 本部分将聚焦于软件开发过程中至关重要的实践活动,涵盖了从项目管理到质量保障的各个环节,旨在帮助您掌握可行的技术和方法。 软件项目管理: 任何成功的软件项目都离不开有效的管理。我们将探讨软件项目管理的各个方面,包括项目启动、计划、执行、监控和收尾。您将学习到项目范围管理、时间管理(如关键路径法、挣值管理)、成本管理、风险管理、质量管理、沟通管理和团队管理等核心知识。我们将介绍敏捷项目管理框架,如Scrum和Kanban,以及它们如何在实践中促进团队协作和快速交付。 软件测试与质量保证: 软件质量是软件工程的生命线。本部分将深入探讨软件测试的理论与实践。您将了解不同层次的测试,如单元测试、集成测试、系统测试和验收测试,以及各种测试方法,如黑盒测试、白盒测试、灰盒测试。我们将重点介绍测试策略的制定、测试用例的设计、自动化测试的优势与实现,以及如何建立全面的质量保证体系,确保软件的可靠性、性能、安全性和可用性。 软件维护与演进: 软件开发并非止于发布,维护和演进是软件生命周期中漫长而关键的阶段。我们将探讨软件维护的挑战,包括纠错性维护、适应性维护、完善性维护和预防性维护。您将学习到如何评估和管理技术债务,如何进行代码重构以提升软件的可读性和可维护性,以及如何有效地进行软件升级和版本管理,以应对不断变化的用户需求和技术环境。 软件配置管理: 在多人协作的复杂软件项目中,对代码、文档以及其他开发资源的有效管理至关重要。本部分将介绍软件配置管理(SCM)的核心概念和技术,包括版本控制系统(如Git)、基线管理、变更控制以及构建和发布管理。您将理解SCM如何确保软件开发过程的有序性、可追溯性和可重复性。 软件开发工具与环境: 现代软件开发离不开各种先进的工具和集成开发环境(IDE)。我们将介绍各种类别的软件开发工具,如需求管理工具、设计工具、开发工具、测试工具、项目管理工具以及持续集成/持续部署(CI/CD)工具。您将了解这些工具如何自动化繁琐的任务,提高开发效率,并促进团队协作。 第三部分:软件工程的演进与前沿 技术不断进步,软件工程也在持续演化。本部分将带领您审视软件工程的最新发展趋势和未来方向,激发您的创新思维。 敏捷与DevOps的深入实践: 我们将进一步深化对敏捷开发理念的理解,并探讨DevOps文化与实践如何将开发与运维紧密结合,实现更快速、更可靠的软件交付。您将了解持续集成、持续交付、自动化部署、基础设施即代码(IaC)等DevOps的核心实践,以及它们如何重塑现代软件工程的工作流程。 微服务架构与云原生: 随着企业对弹性、可伸缩性和敏捷性的需求不断增长,微服务架构和云原生技术已成为主流。本书将介绍微服务的设计原则、优势与挑战,以及如何构建健壮的分布式系统。您将了解容器化技术(如Docker)和容器编排平台(如Kubernetes)在云原生应用中的关键作用。 软件安全工程: 在日益严峻的网络安全威胁下,将安全思维融入软件开发的每一个环节已成为共识。我们将探讨软件安全工程的理念,包括安全编码实践、安全测试、威胁建模以及安全开发生命周期(SDL)。您将了解如何构建具备抵御常见安全漏洞能力的软件。 人工智能与软件工程: 人工智能(AI)正在深刻地影响着软件工程的方方面面。我们将探讨AI在需求分析、代码生成、测试优化、缺陷检测以及项目预测等方面的应用潜力。您将了解AI驱动的开发工具和平台如何赋能开发者,提升软件开发的智能化水平。 软件工程的未来展望: 我们将对软件工程的未来进行展望,探讨新兴技术(如Web3、量子计算等)可能为软件工程带来的机遇与挑战,以及可持续发展、绿色计算等理念在软件工程中的重要性。 目标读者: 本书适合于所有希望深入理解软件开发过程、提升软件工程能力的人员。这包括: 计算机科学和软件工程专业的学生: 为您打下坚实的理论基础,为未来的学习和职业生涯做好准备。 初级和中级软件工程师: 帮助您从“写代码”转向“构建高质量软件”,系统化地提升技术能力和工程素养。 项目经理和技术领导者: 为您提供管理软件项目、规划技术路线和领导团队的必备知识。 对软件开发感兴趣的任何人士: 帮助您全面了解软件是如何被创造、改进和维护的。 本书的特色: 全面性与深度并存: 涵盖了软件工程的各个核心领域,并深入探讨了其中的关键原理和实践。 与时俱进的视角: 紧跟技术发展的步伐,重点关注现代软件工程的最新趋势和前沿技术。 理论与实践相结合: 不仅讲解概念,更注重实际应用,为您提供可行的指导。 清晰易懂的表述: 采用逻辑清晰的结构和通俗易懂的语言,让复杂的概念易于理解。 启发性与前瞻性: 引导读者思考软件工程的本质和未来发展,激发创新能力。 通过阅读《精通软件开发:原理、实践与演进》,您将不再仅仅是代码的编写者,而是能够成为一名更优秀的软件构建者,能够自信地应对复杂项目,创造出高质量、高价值的软件产品。

用户评价

评分

我最近入手了一本《软件工程(原书第10版)计算机科学丛书》,说实话,在拿到这本书之前,我对软件工程的理解还停留在比较表面的概念,比如“写代码就是做软件工程”。这本书的到来,彻底刷新了我的认知。从拿到书的那一刻起,我就被它厚重的质感和严谨的排版所吸引,这绝对不是一本随便翻翻就能速成的教材,而是需要沉下心来,一点点啃的“硬骨头”。翻开第一页,我就被作者的开篇所吸引,他并没有直接进入技术细节,而是从软件工程的价值和重要性入手,用一种近乎哲学的高度,阐述了为何我们需要系统性的方法来构建软件,以及软件质量、成本、进度这些看似独立的因素之间如何相互牵制。我尤其喜欢他举的一些真实世界的案例,这些案例让我看到了软件工程在实际项目中的应用,以及那些不遵循工程化原则所带来的灾难性后果。这比那些干巴巴的理论要生动得多,也更能引起我的思考。这本书的语言风格非常学术化,但又不失严谨和逻辑性,很多地方我需要反复阅读才能真正理解其中的深意。虽然我还没有完全消化其中的内容,但可以预见,这将是一段充满挑战但也收获满满的学习旅程。

评分

我一直认为,软件工程是一门关于“如何做”的学问,而《软件工程(原书第10版)计算机科学丛书》这本书,则让我看到了“为什么这么做”的深刻道理。在我接触到这本书之前,我对于软件开发的很多实践,都是凭着感觉和经验来做的,很多时候不知道为什么这样做是对的,也不知道为什么那样做会出错。这本书的开篇就给了我一种“拨开迷雾”的感觉。它从软件的本质出发,分析了软件的复杂性,以及这种复杂性如何导致项目失败,并由此引出了对工程化方法的需求。书中对软件质量的定义和度量,也让我有了更清晰的认识,原来质量不仅仅是代码不出错,更包含了功能性、性能、安全性等多个维度。而且,作者对于软件维护的重视程度,也让我印象深刻,很多项目在上线后就草草收尾,却忽略了后期维护的巨大成本和挑战。这本书就像一个经验丰富的向导,它不仅指出了前进的方向,还详细讲解了沿途的风景和可能遇到的障碍,让我对软件工程这门学科有了更系统、更全面的理解。虽然书中的一些章节对我来说阅读起来有些吃力,但我能感受到,它正在引导我去思考更深层次的问题,并且培养我成为一个更成熟、更专业的软件工程师。

评分

作为一名对软件架构设计充满好奇心的开发者,《软件工程(原书第10版)计算机科学丛书》这本书给我带来了全新的视角。在我的认知里,软件工程更多的是关于开发流程和项目管理,而这本书则将架构设计提升到了一个前所未有的高度。它不仅仅是讲如何划分模块,更深入地探讨了良好的架构应该具备的特性,比如可维护性、可扩展性、可靠性以及性能。书中分析了各种架构风格,如微服务架构、事件驱动架构等,并且详细阐述了它们在不同场景下的适用性,以及如何权衡其中的优缺点。我特别喜欢它关于“演化式架构”的讨论,这与我之前那种“一次性设计到位”的思维模式截然不同。作者强调,在快速变化的业务需求面前,架构本身也需要不断演进,而如何实现这种平滑的演进,书中提供了一些非常具有启发性的方法。虽然书中关于架构的理论性内容非常强,很多概念需要反复推敲,但我能够感受到,作者在用一种非常务实的态度来指导读者进行架构设计,而不是仅仅停留在抽象的理论层面。这本书让我更加深刻地理解了,好的软件不仅仅是能运行,更重要的是它能够适应未来的变化,并且长久地为业务创造价值。

评分

我是一个在互联网公司摸爬滚打多年的程序员,参与过不少项目,也经历过不少“踩坑”。《软件工程(原书第10版)计算机科学丛书》这本书,我其实是抱着一种“看看前辈们是怎么总结经验的”心态去翻阅的。没想到,它给我带来了很多惊喜。书中的内容,没有我之前想象的那么枯燥,反而在很多地方触及了我工作中的痛点。比如,关于项目管理的部分,作者详细阐述了风险管理、进度控制以及质量保证的策略,这让我联想到我之前参与过的一个项目,因为对潜在风险估计不足,导致后期返工量巨大,项目也因此延期了很久。这本书提供了很多实用的工具和技术,可以帮助我们提前识别和规避这些风险。另外,关于软件测试的章节,也让我受益匪浅。我一直觉得测试只是开发完成后的一项收尾工作,但书中强调了测试的各个阶段,从单元测试到集成测试、系统测试,以及各种测试方法,让我意识到,测试应该贯穿整个软件开发过程,而不是仅仅是事后诸葛亮。这本书的语言风格比较直接,不拐弯抹角,很多观点都很有见地,虽然有些内容我需要结合自己的实际经验去理解,但总体来说,它为我提供了一个系统性的框架,来审视和改进我现有的工作方式。

评分

拿到《软件工程(原书第10版)计算机科学丛书》这本书,心情是既激动又带着一丝敬畏。我是一名在校的计算机科学专业的学生,一直以来,软件工程对我来说就像是一个模糊的概念,知道它的存在,却不太清楚它的具体内涵。这次抱着学习的目的,购入了这本被广泛推荐的经典著作。书的开篇就给了我一个下马威,它没有直接讲什么设计模式或者开发流程,而是深入探讨了软件生命周期的各个阶段,从需求分析到系统维护,每一个环节都被剖析得淋漓尽致。我印象最深的是关于需求获取的部分,作者详细介绍了各种访谈技巧、问卷设计以及原型开发方法,让我意识到,很多软件项目的失败,并非源于技术上的不足,而是因为在项目初期对用户需求的理解就存在偏差。这种“慢下来,想清楚”的理念,对于我们这些急于上手写代码的开发者来说,无疑是一剂良药。书中的图表和模型也相当丰富,清晰地展示了各种软件开发模型,如瀑布模型、敏捷模型等,并且对它们的优缺点进行了深入的比较分析,这让我能够更理性地选择适合不同项目的开发方法。尽管书中涉及的概念和理论非常多,我需要花费大量时间和精力去理解,但我坚信,这本书记载的知识将为我未来的软件开发生涯打下坚实的基础。

相关图书

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

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