×
软件工程——理论与实践(附微课视频 第3版)

软件工程——理论与实践(附微课视频 第3版)

1星价 ¥49.6 (7.1折)
2星价¥49.6 定价¥69.8
暂无评论
图文详情
  • ISBN:9787115624208
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:306
  • 出版时间:2024-02-01
  • 条形码:9787115624208 ; 978-7-115-62420-8

本书特色

【内容特点】

本教材是软件工程课程教学中的一本难得的好教材,便于教师的教和学生的学。此次改版的优化内容如下。

(1)组织结构优化升级。此次改版将书的组织结构进行了全面的再优化,分为软件工程概述、敏捷软件开发、可行性研究与项目开发计划、需求分析、软件设计、软件实现、软件测试、软件维护、面向对象方法与UML、面向对象分析、面向对象设计、面向对象实现、面向对象测试、软件工程管理,共14章。

(2)内容增新去繁,引入软件工程新技术。此次改版对部分内容进行了精简,将原第1、2章的内容,合并为第1章,增加了开源软件开发方法、群体化软件开发方法、软件工程人员的职业道德等内容;增加了“第2章 敏捷软件开发”“第12章 面向对象实现”“第13章 面向对象测试”等;第6章增加了代码重用、分析和评价代码的质量等内容;第7章增加了自动化测试方面的内容;第8章增加了软件部署与软件交付、自动化运维等内容 。

(3)使用全新工具进行案例实现。本书将案例“小型网上书店系统“用*新的开发工具进行了重新开发。限于篇幅,本书采用数字化的手段对内容进行补充,读者可用扫描二维码的形式,获取案例的电子文档和源代码。

(4)常用工具拓展介绍。附录中提供常用工具(如Visio、Rose、Visual Studio Code、Project)的介绍。

(5)多维方法进行实操能力培养。附录中提供与正文中所用的开发技术(基于Django框架)不同的、基于SpingBoot框架开发的“小型网上书店系统“,以及使用开源工具StarUML对“小型网上书店系统“进行的实验操作。
【内容特点】

本教材是软件工程课程教学中的一本难得的好教材,便于教师的教和学生的学。此次改版的优化内容如下。

(1)组织结构优化升级。此次改版将书的组织结构进行了全面的再优化,分为软件工程概述、敏捷软件开发、可行性研究与项目开发计划、需求分析、软件设计、软件实现、软件测试、软件维护、面向对象方法与UML、面向对象分析、面向对象设计、面向对象实现、面向对象测试、软件工程管理,共14章。

(2)内容增新去繁,引入软件工程新技术。此次改版对部分内容进行了精简,将原第1、2章的内容,合并为第1章,增加了开源软件开发方法、群体化软件开发方法、软件工程人员的职业道德等内容;增加了“第2章 敏捷软件开发”“第12章 面向对象实现”“第13章 面向对象测试”等;第6章增加了代码重用、分析和评价代码的质量等内容;第7章增加了自动化测试方面的内容;第8章增加了软件部署与软件交付、自动化运维等内容 。

(3)使用全新工具进行案例实现。本书将案例“小型网上书店系统“用*新的开发工具进行了重新开发。限于篇幅,本书采用数字化的手段对内容进行补充,读者可用扫描二维码的形式,获取案例的电子文档和源代码。

(4)常用工具拓展介绍。附录中提供常用工具(如Visio、Rose、Visual Studio Code、Project)的介绍。

(5)多维方法进行实操能力培养。附录中提供与正文中所用的开发技术(基于Django框架)不同的、基于SpingBoot框架开发的“小型网上书店系统“,以及使用开源工具StarUML对“小型网上书店系统“进行的实验操作。

【资源特点】本教材配套教学资源丰富,除了配有教学大纲、教案、教学PPT、习题答案、开发文档、源代码之外,还配有500分钟左右的微课视频,使得有意深入了解相关内容的读者能够拓宽视野,深入理解软件工程理论与实践,这在同类教材中并不多见。

【服务特点】作者可以提供直播以及微信服务群等支持。

内容简介

本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共分为14章,内容涉及软件工程概述、敏捷软件开发、可行性研究与项目开发计划、需求分析、软件设计、软件实现、软件测试、软件维护、面向对象方法与UML、面向对象分析、面向对象设计、面向对象实现、面向对象测试、软件工程管理。本书理论与实践相结合,内容翔实,可操作性强。 本书可作为高等院校计算机科学与技术、软件工程及相关专业“软件工程”课程的教材,也可供软件工程相关领域从业人员参考使用。

目录

第1章 软件工程概述 1

1.1 软件的概念及特点 1

1.2 软件危机 2

1.2.1 软件危机的表现与产生原因 2

1.2.2 软件危机的启示 3

1.3 软件工程 4

1.3.1 软件工程的概念 4

1.3.2 软件工程的基本目标和原则 4

1.3.3 软件过程 5

1.4 软件过程模型 6

1.4.1 瀑布模型 6

1.4.2 快速原型模型 7

1.4.3 增量模型 7

1.4.4 螺旋模型 8

1.4.5 喷泉模型 9

1.4.6 基于组件的开发模型 9

1.4.7 统一软件开发过程模型 10

1.4.8 几种模型的对比 11

1.4.9 几种模型之间的关系 12

1.4.10 选择软件过程模型 12

1.4.11 软件过程模型实例 13

1.5 软件开发方法 13

1.5.1 基本的软件开发方法 14

1.5.2 开源软件开发方法 15

1.5.3 群体化软件开发方法 15

1.6 软件工程工具 16

1.7 软件工程人员的职业道德 18

1.7.1 ACM/IEEE道德准则 18

1.7.2 职业伦理 18

1.7.3 应该注意的一些道德问题 19

1.8 “小型网上书店系统”案例介绍 20

拓展阅读:青鸟工程—爱国与奉献精神 20

本章小结 21

习题 21

第2章 敏捷软件开发 24

2.1 敏捷方法 24

2.2 Scrum 26

2.2.1 概述 26

2.2.2 Sprint 28

2.2.3 每日站会 28

2.2.4 用户故事 28

2.2.5 Backlog 30

2.2.6 结对编程 30

2.3 看板 30

2.3.1 概述 31

2.3.2 看板与Scrum的区别 31

2.4 XP 33

2.4.1 XP的4个价值观 34

2.4.2 XP的12个核心实践 34

2.5 CI/CD 35

2.5.1 CI/CD概述 36

2.5.2 CI/CD的优势 37

2.6 DevOps 37

2.6.1 DevOps生命周期 38

2.6.2 敏捷软件开发、CI/CD和

DevOps 39

2.7 敏捷软件开发实例 40

拓展阅读:微信—创新精神 40

本章小结 41

习题 41

第3章 可行性研究与项目

开发计划 44

3.1 项目立项概述 44

3.2 可行性研究的任务 45

3.2.1 技术可行性 45

3.2.2 操作可行性 45

3.2.3 经济可行性 46

3.3 可行性研究的步骤 47

3.4 可行性研究实例 48

3.5 制定项目开发计划 49

3.6 案例:“小型网上书店系统”的

软件开发计划书 49

拓展阅读:钉钉软件—求实精神 50

本章小结 50

习题 50

第4章 需求分析与结构化分析 53

4.1 需求分析概述 53

4.1.1 需求分析的任务和原则 53

4.1.2 需求分析的步骤 54

4.1.3 需求管理 57

4.1.4 需求分析的常用方法 57

4.1.5 原型设计 58

4.2 结构化分析概述 58

4.3 结构化分析的方法 59

4.3.1 功能建模 59

4.3.2 数据建模 62

4.3.3 行为建模 63

4.3.4 数据字典 65

4.3.5 加工规格说明 66

4.4 结构化分析的图形工具 67

4.4.1 层次方框图 67

4.4.2 Warnier图 68

4.4.3 IPO图 68

4.5 结构化分析实例 69

拓展阅读:汉字激光照排系统—创新与

奉献精神 72

本章小结 72

习题 72

第5章 软件设计与结构化设计 75

5.1 软件设计概述 75

5.1.1 软件设计的意义和目标 75

5.1.2 软件设计的原则 76

5.1.3 软件设计的分类 79

5.2 软件体系结构 80

5.2.1 什么是软件体系结构 80

5.2.2 软件体系结构的作用 81

5.2.3 典型的软件体系结构风格 82

5.2.4 客户端/服务器模式的分布式

体系结构 83

5.2.5 MVC模型 85

5.3 结构化设计概述 87

5.4 结构化设计与结构化分析的关系 87

5.5 结构化设计方法 88

5.5.1 表示软件结构的图形工具 88

5.5.2 面向数据流的设计方法 89

5.5.3 面向数据结构的设计方法 92

5.6 接口设计 96

5.6.1 接口设计概述 97

5.6.2 界面设计 97

5.7 数据设计 98

5.8 过程设计 100

5.8.1 程序流程图 100

5.8.2 N-S图 102

5.8.3 PAD 102

5.8.4 PDL 103

5.9 软件设计评审 104

5.10 结构化实例 104

拓展阅读:高斯数据库—工匠精神 106

本章小结 106

习题 107

第6章 软件实现 110

6.1 编程语言 110

6.1.1 编程语言的发展与分类 110

6.1.2 选择编程语言需考虑的因素 114

6.2 编程风格与规范 114

6.3 代码复用 118

6.4 分析和评价代码质量 119

6.5 软件实现实例 120

拓展阅读:王江民—奋斗精神 122

本章小结 122

习题 122

第7章 软件测试 125

7.1 软件测试概述 125

7.1.1 软件测试的原则 126

7.1.2 软件测试模型 127

7.2 软件测试的分类 129

7.3 测试用例 129

7.3.1 测试用例编写 129

7.3.2 测试用例设计 129

7.3.3 测试用例场景 130

7.4 软件测试方法 130

7.5 黑盒测试 131

7.5.1 等价类划分法 131

7.5.2 边界值分析法 133

7.5.3 错误推测法 135

7.5.4 因果图法 135

7.5.5 决策表法 137

7.5.6 场景法 138

7.5.7 黑盒测试方法选择 140

7.6 白盒测试 140

7.6.1 代码检查法 140

7.6.2 静态结构分析法 141

7.6.3 程序插桩技术 141

7.6.4 逻辑覆盖法 141

7.6.5 基本路径法 143

7.6.6 白盒测试方法选择 145

7.6.7 白盒测试与黑盒测试比较 145

7.7 软件测试的一般步骤 146

7.8 单元测试 146

7.8.1 单元测试概述 146

7.8.2 单元测试内容 147

7.8.3 单元测试方法 147

7.9 集成测试 148

7.9.1 集成测试概述 148

7.9.2 集成测试策略 148

7.10 系统测试 151

7.10.1 系统测试概述 151

7.10.2 系统测试类型 151

7.11 验收测试 153

7.11.1 验收测试概述 153

7.11.2 验收测试内容 153

7.11.3 α测试和β测试 154

7.12 回归测试 154

7.13 自动化测试 155

7.14 软件调试 156

7.14.1 调试过程 156

7.14.2 调试途径 156

7.15 软件测试实例 156

拓展阅读:中国的工业软件—民族精神 162

本章小结 162

习题 163

第8章 软件维护 166

8.1 软件部署与软件交付 166

8.2 软件维护的过程 167

8.3 软件维护的分类 168

8.4 软件的可维护性 169

8.5 软件维护的副作用 170

8.6 软件运维 171

8.7 软件再工程—重构、正向工程、

逆向工程 172

8.8 软件维护实例 173

拓展阅读:12306—精益求精精神 174

本章小结 174

习题 175

第9章 面向对象方法与UML 177

9.1 面向对象的软件工程方法 177

9.1.1 面向对象的基本概念 177

9.1.2 面向对象的软件工程方法的

特征与优势 178

9.1.3 面向对象的实施步骤 179

9.2 UML 180

9.2.1 UML简述 180

9.2.2 UML的应用范围 180

9.2.3 UML的图 181

9.3 静态建模机制 181

9.3.1 用例图 181

9.3.2 类图与对象图 183

9.3.3 包图 188

9.4 动态建模机制 188

9.4.1 顺序图 189

9.4.2 协作图 190

9.4.3 状态图 191

9.4.4 活动图 191

9.5 描述物理架构的机制 193

9.5.1 组件图 193

9.5.2 部署图 194

9.6 面向对象方法与UML实例 194

拓展阅读:抖音—包容精神 199

本章小结 199

习题 200

第10章 面向对象分析 203

10.1 面向对象分析方法 203

10.1.1 面向对象分析过程 203

10.1.2 面向对象分析原则 205

10.2 面向对象建模 205

10.2.1 建立对象模型 206

10.2.2 建立动态模型 211

10.2.3 建立功能模型 213

10.2.4 3种模型之间的关系 213

10.3 面向对象分析实例 214

10.4 案例:“小型网上书店系统”的

需求规格说明书 217

拓展阅读:北斗卫星导航系统—

中国精神 217

本章小结 218

习题 218

第11章 面向对象设计 221

11.1 面向对象设计与结构化设计 221

11.2 面向对象设计与面向对象分析的

关系 221

11.3 面向对象设计的过程与原则 222

11.3.1 面向对象设计的过程 222

11.3.2 面向对象设计的原则 223

11.4 面向对象设计的启发规则 226

11.5 系统设计 227

11.5.1 系统分解 227

11.5.2 问题域子系统的设计 228

11.5.3 人机交互子系统的设计 231

11.5.4 任务管理子系统的设计 233

11.5.5 数据管理子系统的设计 234

11.6 对象设计 236

11.6.1 设计类中的服务 236

11.6.2 设计类的关联 237

11.6.3 对象设计优化 239

11.7 软件设计模式 242

11.7.1 工厂模式 243

11.7.2 桥接模式 244

11.7.3 策略模式 245

11.7.4 其他模式 245

11.8 面向对象设计实例 246

11.9 案例:“小型网上书店系统”的

软件设计说明书 249

拓展阅读:银河麒麟—砥砺前行精神 249

本章小结 249

习题 249

第12章 面向对象实现 252

12.1 面向对象语言的选择 252

12.1.1 面向对象语言的优点 252

12.1.2 面向对象语言的技术特点 252

12.1.3 选择面向对象语言 252

12.2 面向对象程序设计风格 253

12.2.1 提高可复用性 253

12.2.2 提高可扩充性 253

12.2.3 提高稳健性 253

12.3 面向对象实现实例 254

12.4 案例:“小型网上书店系统”的

代码和部署文档 256

拓展阅读:PaddlePaddle—技术自强

精神 257

本章小结 257

习题 257

第13章 面向对象测试 259

13.1 面向对象测试与传统测试 259

13.2 面向对象测试策略 261

13.2.1 面向对象的单元测试 261

13.2.2 面向对象的集成测试 262

13.2.3 面向对象的系统测试 263

13.2.4 面向对象的回归测试 263

13.3 面向对象测试用例设计 264

13.3.1 面向对象测试用例设计的

基本概念 264

13.3.2 面向对象编程对测试的影响 264

13.3.3 基于故障的测试 265

13.3.4 基于场景的测试 265

13.3.5 表层结构和深层结构的测试 266

13.4 面向对象测试实例 266

13.5 案例:“小型网上书店系统”的测试

分析报告 267

拓展阅读:WPS Office—自主创新精神 267

本章小结 268

习题 268

第14章 软件工程管理 270

14.1 软件估算 270

14.1.1 软件估算的概念 270

14.1.2 软件估算的方法 271

14.1.3 软件估算的原则与技巧 273

14.2 软件开发进度计划 273

14.2.1 Gantt图 273

14.2.2 PERT图 274

14.3 软件开发人员组织 277

14.3.1 民主制程序员组 277

14.3.2 主程序员组 277

14.3.3 现代程序员组 278

14.4 软件开发风险管理 278

14.4.1 软件开发风险 278

14.4.2 软件开发风险管理 279

14.5 软件质量保证 280

14.5.1 软件质量的基本概念 281

14.5.2 软件质量保证的措施 282

14.6 软件配置管理 282

14.6.1 软件配置管理术语 282

14.6.2 配置管理过程 285

14.7 软件工程标准与软件文档 285

14.7.1 软件工程标准 286

14.7.2 软件文档 287

14.8 软件过程能力成熟度模型 288

14.9 软件项目管理 290

14.9.1 软件项目管理概述 290

14.9.2 软件项目管理与软件工程的

关系 291

14.10 软件工程管理实例 291

案例:“小型网上书店系统”的用户使用

说明书 292

拓展阅读:任正非—职业素养精神 292

本章小结 292

习题 293

附录A 软件工程常用工具及其

应用 295

附录B 基于“小型网上书店系统”的

实验 299

附录C 软件开发项目综合实践详解

(机票预订系统) 302

附录D 综合案例 303

D.1 案例1:技术分享类博客网站 303

D.2 案例2:图书影视交流平台 303

附录E 本书配套微课视频清单 304



展开全部

作者简介

吕云翔,北京航空航天大学软件学院副教授。长期从事“软件工程基础”课程的一线教学,曾多次获得北航校级教学成果奖。“软件工程基础”课程获评2021中国计算机教育大会计算机类教学资源建设优秀课程配套资源与优秀教学案例奖。具有多年的软件开发、项目管理、计算机教学经验,对IT行业具有较全面的认识,主编畅销教材多部。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航