《软件工程方法与实践 第3版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:窦万峰主编;李亚楠,潘媛媛,林燕平参编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111549482
  • 页数:314 页
图书介绍:本书分别从传统的结构化软件开发方法学和面向对象软件开发方法学两个方面介绍软件工程的理论和方法,并将其融入实践,通过丰富的案例介绍软件分析与设计方法及其模型,深入讲解软件开发各个阶段的技术、方法和管理过程,主要内容包括:软件工程基础,结构化分析、设计与测试,面向对象分析、设计与测试,软件维护与项目管理。本书适合作为高等院校软件工程课程的教材,也可作为软件开发从业人员的参考书。

第一部分 软件工程基础 2

第1章 软件工程概述 2

1.1 引言 2

1.2 什么是软件 2

1.2.1 软件的定义与特性 2

1.2.2 软件技术的演化 3

1.3 什么是软件工程 4

1.3.1 软件危机 4

1.3.2 解决软件危机的途径 5

1.3.3 软件工程的定义 5

1.4 软件工程的基本原理与基本原则 7

1.4.1 基本原理 7

1.4.2 基本原则 8

1.5 软件工程开发方法学 8

1.5.1 结构化开发方法学 9

1.5.2 面向对象开发方法学 9

1.5.3 重型软件工程与轻型软件工程 10

1.6 小结 10

习题 11

第2章 软件过程 12

2.1 引言 12

2.2 什么是软件过程 12

2.2.1 软件过程的定义 12

2.2.2 软件过程框架 13

2.3 软件产品与过程 15

2.4 软件生存周期 17

2.5 软件工程活动 18

2.6 小结 20

习题 21

第3章 软件过程模型 22

3.1 引言 22

3.2 什么是软件过程模型 22

3.3 传统的软件过程模型 22

3.3.1 瀑布模型 22

3.3.2 增量模型 24

3.3.3 螺旋模型 25

3.4 面向对象模型 26

3.4.1 构件集成模型 26

3.4.2 统一过程模型 27

3.5 小结 29

习题 29

第4章 敏捷软件开发方法 30

4.1 引言 30

4.2 敏捷软件开发过程 30

4.2.1 敏捷过程 30

4.2.2 敏捷开发原则 31

4.3 Scrum开发过程 31

4.3.1 Scrum的特点 31

4.3.2 Scrum模型与过程 32

4.4 极限编程 33

4.4.1 什么是极限编程 33

4.4.2 极限编程的要素 34

4.5 结对编程 35

4.5.1 什么是结对编程 36

4.5.2 结对编程的优势分析 37

4.5.3 结对编程的分类 39

4.5.4 结对编程的方式 39

4.6 小结 41

习题 41

第二部分 结构化分析、设计与测试 44

第5章 软件需求分析 44

5.1 引言 44

5.2 什么是软件需求 44

5.3 需求分析过程 45

5.4 会谈技术 49

5.4.1 非正式会谈 49

5.4.2 正式会谈 49

5.5 调查技术 50

5.5.1 确定调查内容 50

5.5.2 可靠可信分析 51

5.6 场景分析技术 51

5.7 小结 52

习题 52

第6章 结构化分析 53

6.1 引言 53

6.2 结构化分析模型 53

6.3 面向数据流的建模方法 54

6.3.1 数据流建模方法 54

6.3.2 实例分析 57

6.4 面向数据的建模方法 58

6.4.1 数据建模方法 58

6.4.2 实例分析 59

6.5 面向状态的建模方法 60

6.5.1 状态建模方法 60

6.5.2 实例分析 61

6.6 规格说明书编写示例 62

6.7 小结 70

习题 70

第7章 结构化设计 71

7.1 引言 71

7.2 软件设计过程 71

7.3 软件模块化设计 75

7.4 软件结构 78

7.5 结构化概要设计 79

7.5.1 数据流模型 79

7.5.2 数据流设计方法 80

7.5.3 实例分析 81

7.6 概要设计文档编写示例 83

7.7 详细设计 90

7.8 结构化详细设计 91

7.9 详细设计文档编写示例 98

7.10 编码实现 101

7.10.1 编码语言 101

7.10.2 编码风格 102

7.11 小结 103

习题 103

第8章 结构化软件测试 106

8.1 引言 106

8.2 软件测试的目的和原则 106

8.3 软件测试的基本过程 108

8.3.1 单元测试 108

8.3.2 集成测试 110

8.3.3 确认测试 110

8.3.4 系统测试 111

8.4 测试用例设计 111

8.5 黑盒测试技术 112

8.5.1 等价类划分 112

8.5.2 边界值分析 113

8.5.3 错误推测 114

8.5.4 因果图 114

8.6 白盒测试技术 117

8.6.1 逻辑覆盖 117

8.6.2 路径覆盖 120

8.6.3 循环路径测试策略 122

8.7 集成测试技术 123

8.7.1 集成策略 123

8.7.2 性能测试 125

8.7.3 实例分析 127

8.8 调试技术 133

8.8.1 调试过程 133

8.8.2 调试策略 134

8.9 软件测试文档 135

8.9.1 软件测试计划文档 135

8.9.2 集成测试文档 137

8.10 小结 139

习题 139

第9章 高要求系统的分析与设计 140

9.1 引言 140

9.2 什么是高要求系统 140

9.3 高要求系统的需求分析 142

9.3.1 风险需求描述 143

9.3.2 安全性描述 146

9.3.3 信息安全描述 146

9.3.4 软件可靠性描述 146

9.3.5 胰岛素输送系统完整的需求描述 147

9.4 形式化描述方法 149

9.4.1 软件过程中的形式化描述 149

9.4.2 接口描述方法 150

9.4.3 行为描述 153

9.5 高要求系统的设计 155

9.6 高要求系统的开发 156

9.7 系统验证 160

9.7.1 可靠性验证 160

9.7.2 安全性保证 161

9.7.3 信息安全评估 164

9.8 小结 165

习题 166

第三部分 面向对象分析、设计与测试 168

第10章 面向对象分析 168

10.1 引言 168

10.2 面向对象模型 168

10.3 UML 170

10.3.1 UML的组成 170

10.3.2 UML的视图 171

10.4 面向对象分析过程 172

10.5 用例驱动分析 173

10.5.1 用例建模分析 173

10.5.2 开发活动图 177

10.5.3 开发泳道图 178

10.6 领域与业务建模 179

10.6.1 识别业务类和领域类 179

10.6.2 业务类图 180

10.6.3 识别属性和操作 181

10.6.4 开发协作图 182

10.6.5 开发包图 182

10.6.6 逻辑架构 183

10.7 系统行为建模 185

10.7.1 系统顺序图 185

10.7.2 建立操作契约 186

10.7.3 建立顺序图 187

10.7.4 系统状态图 188

10.8 POS机系统案例分析 188

10.9 分布式结对编程系统分析 191

10.9.1 项目概述 191

10.9.2 功能描述 192

10.9.3 逻辑分析与建模 200

10.10 小结 204

习题 205

第11章 面向对象设计 206

11.1 引言 206

11.2 面向对象设计模型 206

11.3 构件设计 207

11.3.1 构件设计的步骤 207

11.3.2 构件设计的原则 208

11.4 并发性设计 209

11.5 设计模式 211

11.5.1 基于职责的设计 211

11.5.2 常见的设计模式 212

11.6 面向对象详细设计 215

11.6.1 模型精化 216

11.6.2 逻辑架构精化设计 219

11.6.3 分层设计 221

11.6.4 类操作设计 223

11.7 方法设计 229

11.8 精化设计 234

11.9 数据存储与持久性设计 238

11.10 部署设计与构件图 243

11.11 小结 244

习题 245

第12章 面向对象实现与测试 246

12.1 引言 246

12.2 面向对象实现 246

12.3 POS机系统实现 247

12.4 分布式结对编程系统实现 253

12.5 面向对象测试 256

12.6 面向对象测试策略 258

12.7 测试驱动开发 261

12.7.1 什么是测试驱动开发 261

12.7.2 测试驱动开发的步骤 264

12.7.3 编写测试程序 266

12.7.4 代码重构 270

12.8 小结 271

习题 271

第四部分 软件维护与项目管理 274

第13章 软件维护 274

13.1 引言 274

13.2 软件的可维护性 275

13.3 软件维护的类型 275

13.4 软件维护方法 277

13.5 提高软件的可维护性 279

13.5.1 结构化维护与非结构化维护 279

13.5.2 提高软件可维护性的技术途径 280

13.6 小结 281

习题 281

第14章 软件项目管理 283

14.1 引言 283

14.2 软件项目组织 285

14.3 软件过程管理 287

14.3.1 软件过程度量 287

14.3.2 软件过程改进 288

14.3.3 软件项目度量 289

14.4 软件项目风险管理 289

14.4.1 风险识别 289

14.4.2 风险预测 290

14.4.3 风险管理 290

14.5 软件配置管理 291

14.5.1 基本概念 291

14.5.2 软件配置管理过程 292

14.6 软件项目估算 293

14.6.1 软件项目资源 293

14.6.2 软件规模度量 294

14.6.3 估算管理 296

14.7 分解技术 296

14.7.1 基于问题分解的估算 296

14.7.2 基于过程分解的估算 298

14.8 经验估算技术 299

14.8.1 专家类比推断 299

14.8.2 中级COCOMO估算模型 300

14.9 软件质量管理 303

14.9.1 软件质量保证 303

14.9.2 软件质量度量 305

14.10 项目进度管理 308

14.10.1 项目进度管理计划 308

14.10.2 进度安排 309

14.10.3 进度跟踪管理 311

14.11 小结 311

习题 312

参考文献 314