《软件工程理论与实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:吕云翔编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111571438
  • 页数:354 页
图书介绍:本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。全书共14章,主要内容包括:软件工程与软件过程、软件需求分析、软件设计、软件编程与软件测试,以及软件维护与软件工程管理,如软件规模估算、进度计划、人员组织、软件开发风险管理等内容。书可以作为普通高校计算机相关专业“软件工程”课程的教材,也可以供学习软件工程的读者单独使用(包括参加计算机等级考试或相关专业自学考试)参考。

第1章 软件工程概述 1

1.1 软件 1

1.1.1 软件的概念及特点 1

1.1.2 软件的分类 2

1.2 软件危机 3

2.1 软件危机的表现与原因 3

1.2.2 软件危机的启示 4

1.3 软件工程 5

1.3.1 软件工程的概念 5

1.3.2 软件工程研究的内容 6

1.3.3 软件工程的目标和原则 6

1.3.4 软件工程知识体系 7

1.3.5 软件工程的发展 8

1.4 软件开发方法 9

1.5 软件工程工具 10

1.6 “‘墨韵’读书会书籍共享平台”案例介绍 11

习题 12

第2章 软件过程 13

2.1 软件过程概述 13

2.2 软件生命周期 13

2.2.1 软件生命周期的概念 13

2.2.2 传统软件生命周期的各个阶段 14

2.3 软件过程模型 15

2.3.1 瀑布模型 15

2.3.2 快速原型模型 16

2.3.3 增量模型 16

2.3.4 螺旋模型 17

2.3.5 喷泉模型 18

2.3.6 基于组件的开发模型 18

2.3.7 统一软件开发过程模型 19

2.3.8 敏捷过程与极限编程 20

2.3.9 几种模型之间的关系 22

2.3.10 选择软件过程模型 23

2.4 软件过程模型实例 23

习题 26

第3章 可行性研究及需求分析 27

3.1 可行性研究 27

3.1.1 项目立项概述 27

3.1.2 可行性研究的内容 28

3.1.3 可行性研究的步骤 28

3.2 需求分析 29

3.2.1 需求分析的任务 29

3.2.2 需求分析的步骤 31

3.2.3 需求管理 32

3.2.4 需求分析的常用方法 33

3.3 软件开发计划书编写指南 34

3.4 需求规格说明书编写指南 38

3.5 可行性研究实例 43

习题 49

第4章 结构化分析 51

4.1 结构化分析概述 51

4.2 结构化分析方法 52

4.2.1 功能建模 52

4.2.2 数据建模 55

4.2.3 行为建模 56

4.2.4 数据字典 58

4.2.5 加工规格说明 59

4.3 结构化分析图形工具 61

4.3.1 层次方框图 61

4.3.2 Warnier图 61

4.3.3 IPO图 62

4.4 结构化分析实例 62

4.5 实验:使用Visio绘制“‘墨韵’读书会书籍共享平台”的数据流图 65

习题 70

第5章 面向对象方法与UML 72

5.1 面向对象的软件工程方法 72

5.1.1 面向对象的基本概念 72

5.1.2 面向对象的软件工程方法的特征与优势 73

5.1.3 面向对象的实施步骤 74

5.2 统一建模语言UML 75

5.2.1 UML简述 75

5.2.2 UML的特点 76

5.2.3 UML的应用范围 76

5.2.4 UML的图 76

5.2.5 UML“4+1”视图 77

5.3 静态建模机制 78

5.3.1 用例图 78

5.3.2 类图和对象图 80

5.3.3 包图 83

5.4 动态建模机制 85

5.4.1 顺序图 85

5.4.2 协作图 86

5.4.3 状态图 87

5.4.4 活动图 87

5.5 描述物理架构的机制 89

5.5.1 构件图 89

5.5.2 部署图 89

习题 90

第6章 面向对象分析 93

6.1 面向对象分析方法 93

6.1.1 面向对象分析过程 93

6.1.2 面向对象分析原则 95

6.2 面向对象建模 95

6.2.1 建立对象模型 96

6.2.2 建立动态模型 100

6.2.3 建立功能模型 102

6.2.4 3种模型之间的关系 103

6.3 面向对象分析实例 104

6.4 实验 115

6.4.1 利用Rose创建“‘墨韵’读书会书籍共享平台”的用例模型 115

6.4.2 利用Rose绘制“‘墨韵’读书会书籍共享平台”的类图 119

6.4.3 利用Rose绘制“‘墨韵’读书会书籍共享平台”的对象图 122

6.4.4 利用Rose绘制“‘墨韵’读书会书籍共享平台”的包图 123

6.4.5 利用Rose绘制“‘墨韵’读书会书籍共享平台”的状态图 125

6.4.6 利用Rose绘制“‘墨韵’读书会书籍共享平台”的顺序图 126

习题 128

第7章 软件设计 131

7.1 软件设计的基本概念 131

7.1.1 软件设计的意义和目标 131

7.1.2 软件设计的原则 131

7.1.3 软件设计的分类 135

7.2 数据库结构设计 136

7.3 用户界面设计 137

7.3.1 设计驱动开发 138

7.3.2 目标用户群体 138

7.3.3 简洁与清晰 138

7.3.4 实现模型与心智模型 139

7.3.5 设计的规范性 139

7.3.6 设计的可用性和易用性 139

7.3.7 设计的一致性 140

7.3.8 设计的容错性 140

7.4 软件设计说明书编写指南 140

习题 144

第8章 软件体系结构与设计模式 145

8.1 软件体系结构的概念 145

8.1.1 什么是软件体系结构 145

8.1.2 软件体系结构建模 146

8.1.3 软件体系结构的分层模型 147

8.1.4 软件体系结构的作用 147

8.2 典型的软件体系结构风格 148

8.2.1 数据流风格 149

8.2.2 调用/返回风格 149

8.2.3 独立构件风格 149

8.2.4 虚拟机风格 149

8.2.5 仓库风格 150

8.3 软件质量属性 150

8.4 分布式系统结构 151

8.4.1 多处理器体系结构 151

8.4.2 客户端/服务器体系结构 151

8.4.3 分布式对象体系结构 154

8.4.4 对等端体系结构 154

8.4.5 代理 155

8.5 体系结构框架 155

8.5.1 模型-视图-控制器 155

8.5.2 模型-视图-表示器 156

8.5.3 J2EE体系结构框架 157

8.5.4 PCMEF框架 157

8.5.5 PCBMER框架 158

8.6 软件系统的设计模式 159

8.6.1 工厂模式 159

8.6.2 桥接模式 161

8.6.3 策略模式 161

8.6.4 其他模式 162

习题 163

第9章 结构化设计 164

9.1 结构化软件设计概述 164

9.2 结构化设计与结构化分析的关系 164

9.3 体系结构设计 165

9.3.1 表示软件结构的图形工具 165

9.3.2 面向数据流的设计方法 166

9.3.3 面向数据结构的设计方法 169

9.4 接口设计 174

9.4.1 接口设计概述 174

9.4.2 界面设计 174

9.5 数据设计 175

9.6 过程设计 178

9.6.1 程序流程图 178

9.6.2 N-S图 179

9.6.3 PAD图 179

9.6.4 结构化语言 181

9.7 结构化设计实例 181

9.8 实验:利用Visio绘制“‘墨韵’读书会书籍共享平台”的结构图 184

习题 186

第10章 面向对象设计 188

10.1 面向对象设计与结构化设计 188

10.2 面向对象设计与面向对象分析的关系 188

10.3 面向对象设计的过程与原则 189

10.3.1 面向对象设计的过程 189

10.3.2 面向对象设计的原则 190

10.4 面向对象设计的启发规则 191

10.5 系统设计 191

10.5.1 系统分解 192

10.5.2 问题域子系统的设计 192

10.5.3 人机交互子系统的设计 195

10.5.4 任务管理子系统的设计 197

10.5.5 数据管理子系统的设计 199

10.6 对象设计 201

10.6.1 设计类中的服务 202

10.6.2 设计类的关联 203

10.6.3 对象设计优化 204

10.7 面向对象设计实例 207

10.8 实验 226

10.8.1 利用Rose绘制“‘墨韵’读书会书籍共享平台”的活动图 226

10.8.2 利用Rose绘制“‘墨韵’读书会书籍共享平台”的协作图 228

10.8.3 利用Rose绘制“‘墨韵’读书会书籍共享平台系统”的构件图 230

10.8.4 利用Rose绘制“‘墨韵’读书会书籍共享平台”的部署图 231

习题 232

第11章 软件编程 234

11.1 编程语言 234

11.1.1 编程语言的发展与分类 234

11.1.2 选择编程语言需要考虑的因素 238

11.2 编程风格 238

11.3 面向对象实现 243

11.4 软件编程实例 243

11.5 实验:利用Visual Studio实现“‘墨韵’读书会书籍共享平台”的用户登录模块 257

习题 265

第12章 软件测试概述 267

12.1 软件测试的基本概念 267

12.1.1 软件测试的原则 267

12.1.2 软件测试模型 269

12.2 软件测试的分类 270

12.3 测试用例 272

12.3.1 测试用例编写 272

12.3.2 测试用例设计 272

12.3.3 测试用例场景 272

12.4 测试分析报告编写指南 272

习题 275

第13章 软件测试方法与过程 276

13.1 软件测试方法 276

13.2 黑盒测试 276

13.2.1 等价类划分法 277

13.2.2 边界值分析法 279

13.2.3 错误推测法 280

13.2.4 因果图法 280

13.2.5 决策表法 282

13.2.6 场景法 283

13.2.7 黑盒测试方法选择 285

13.3 白盒测试 285

13.3.1 代码检查法 285

13.3.2 静态结构分析法 286

13.3.3 程序插桩技术 286

13.3.4 逻辑覆盖法 287

13.3.5 基本路径法 289

13.3.6 白盒测试方法选择 290

13.3.7 白盒测试与黑盒测试的比较 291

13.4 软件测试的一般步骤 291

13.5 单元测试 292

13.5.1 单元测试概述 292

13.5.2 单元测试内容 292

13.5.3 单元测试方法 293

13.6 集成测试 293

13.6.1 集成测试概述 293

13.6.2 集成测试分析 293

13.6.3 集成测试策略 294

13.7 系统测试 297

13.7.1 系统测试概述 297

13.7.2 系统测试类型 297

13.8 验收测试 299

13.8.1 验收测试概述 299

13.8.2 验收测试内容 300

13.8.3 α测试和β测试 300

13.9 回归测试 300

13.10 面向对象的软件测试 301

13.11 软件调试 304

13.11.1 调试过程 304

13.11.2 调试途径 304

13.12 软件测试实例 304

13.13 实验:利用Visual Studio对“‘墨韵’读书会书籍共享平台”的用户登录模块进行单元测试 310

习题 313

第14章 软件维护与软件工程管理 315

14.1 软件维护 315

14.1.1 软件维护的过程 316

14.1.2 软件维护的分类 317

14.1.3 软件的可维护性 318

14.1.4 软件维护的副作用 319

14.1.5 软件再工程技术 320

14.2 软件估算 321

14.2.1 软件估算的概念 321

14.2.2 软件估算的方法 322

14.2.3 软件估算的原则与技巧 323

14.3 软件开发进度计划 324

14.3.1 Gantt图 324

14.3.2 PERT图 324

14.4 软件开发人员组织 325

14.4.1 民主制程序员组 325

14.4.2 主程序员组 325

14.4.3 现代程序员组 326

14.5 软件开发风险及其管理 326

14.5.1 软件开发风险 326

14.5.2 软件开发风险管理 327

14.6 软件质量保证 328

14.6.1 软件质量的基本概念 328

14.6.2 软件质量保证的措施 330

14.7 软件配置管理概述 330

14.7.1 软件配置管理术语 330

14.7.2 配置管理的过程 333

14.7.3 配置管理的角色划分 333

14.8 软件工程标准与软件文档 334

14.8.1 软件工程标准 334

14.8.2 软件文档 336

14.9 软件过程能力成熟度模型 337

14.10 软件项目管理 339

14.10.1 软件项目管理概述 339

14.10.2 软件项目管理与软件工程的关系 340

14.11 软件复用 340

14.12 实验:利用Project管理“‘墨韵’读书会书籍共享平台”的开发过程 342

习题 345

附录 课程设计 347

附录A 课程设计指导 347

附录B 案例——“墨韵”读书会书籍共享平台(通过扫描二维码获取文档和代码) 351

参考文献 353