《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王水著
  • 出 版 社:郑州:河南科学技术出版社
  • 出版年份:2008
  • ISBN:7534938171
  • 页数:263 页
图书介绍:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。本教材通过对软件工程的基本概念、过程、管理以及新趋势等方面进行了系统、全面的阐述,试图向读者深入介绍软件工程的概念意义和方法学。全书共分13章,分别从以上四个方面进行介绍,每章均配有习题。本教材内容丰富,通俗易懂,语言简练,适用于大专院校《软件工程》课程的教学用书,也可作为计算机软件从业人员的参考书。

第1章 软件工程概述 1

1.1 软件的概念 1

1.1.1 软件的定义 1

1.1.2 软件的发展 2

1.1.3 软件的种类 3

1.1.4 软件产品的特征 4

1.2 软件危机 5

1.2.1 软件危机的含义 5

1.2.2 软件危机的表现 6

1.2.3 产生软件危机的根源 7

1.2.4 解决软件危机的途径 8

1.3 软件工程 10

1.3.1 软件工程的含义 10

1.3.2 软件工程的发展 13

1.3.3 软件工程的原则 15

1.3.4 软件工程的主要目标和环节 16

1.4 软件开发方法学 17

1.4.1 软件开发方法的发展 17

1.4.2 结构化分析与设计方法 18

1.4.3 面向对象分析与设计方法 20

1.5 软件工具与软件工程环境 22

1.5.1 软件工程辅助工具简介 22

1.5.2 软件工程环境 23

第2章 软件过程 26

2.1 软件过程概述 26

2.1.1 什么是软件过程 26

2.1.2 为什么我们需要一个软件过程 27

2.1.3 成熟度等级 27

2.1.4 关键过程领域(KPA) 29

2.2 软件生存周期 33

2.2.1 软件生命周期(SDLC)的六个阶段 34

2.2.2 软件生命周期模型 34

2.3 具体生命周期模型 35

2.3.1 瀑布模型 35

2.3.2 原型模型 36

2.3.3 增量模型 37

2.3.4 螺旋模型 39

2.3.5 构件集成模型 41

2.3.6 并发开发模型 42

2.3.7 第四代技术 43

第3章 软件需求分析 46

3.1 需求分析概述 46

3.1.1 需求分析的任务 46

3.1.2 需求分析的步骤 47

3.1.3 需求获取的常用方法 49

3.2 结构化分析方法 52

3.2.1 结构化分析概述 52

3.2.2 数据流图 52

3.2.3 数据词典 56

3.3 软件需求文档 58

第4章 软件设计概述 61

4.1 软件设计的任务 61

4.2 软件设计的基本概念 62

4.2.1 模块与构件 62

4.2.2 抽象与细化 62

4.2.3 信息隐藏与局部化 62

4.3 模块化设计 63

4.3.1 模块化设计产生的效果 63

4.3.2 模块分割方法 63

4.3.3 模块的独立性 64

4.3.4 模块设计规则 69

4.4 概要设计文档与评审 71

4.5 详细设计 71

4.5.1 详细设计概述 71

4.5.2 详细设计的方法 72

4.5.3 详细设计复审 74

第5章 面向对象的分析 76

5.1 面向对象的分析概述 76

5.1.1 面向对象分析的主要原则 77

5.1.2 面向对象分析产生三种分析模型 78

5.1.3 面向对象分析的主要优点 78

5.1.4 面向对象分析方法的基本步骤 78

5.2 功能模型(用例模型) 78

5.2.1 用例图 79

5.2.2 用例图元素之间的相互关系 81

5.2.3 寻找用例的方法 83

5.3 用例分析 83

5.3.1 用例分析概述 84

5.3.2 用例分析的步骤 84

第6章 面向对象的设计 89

6.1 面向对象的设计概述 89

6.1.1 面向对象的设计模式概念 90

6.1.2 面向对象设计的主要原则 90

6.1.3 设计模式分类 93

6.1.4 怎样才能设计“好的面向对象” 96

6.2 子系统设计 96

6.2.1 子系统设计概述 96

6.2.2 子系统设计的目的 97

6.2.3 子系统设计的步骤 97

6.3 类设计 98

6.3.1 类设计概述 98

6.3.2 类设计的目的 99

6.3.3 类设计的步骤 99

6.4 数据库设计 103

6.4.1 数据库设计概述 103

6.4.2 数据库设计的目的 105

6.4.3 数据库设计的步骤 105

第7章 编码与实现 107

7.1 程序设计语言 107

7.1.1 程序设计语言的发展 108

7.1.2 程序设计语言的分类及特点 112

7.1.3 程序设计语言选择 114

7.2 编码的目标和指导原则 115

7.3 编码的风格 116

7.3.1 程序版式 117

7.3.2 数据说明 118

7.3.3 语句结构 119

7.3.4 输入/输出 120

7.4 编程效率 121

7.5 编程的安全性 122

7.6 面向对象编程技术 123

7.6.1 面向对象编程概述 123

7.6.2 面向对象语言 124

7.6.3 面向对象程序设计风格 126

7.6.4 面向对象实现基本准则 127

7.6.5 面向对象实现工作流程 128

第8章 软件测试 130

8.1 软件测试概述 130

8.1.1 什么是软件测试 131

8.1.2 软件测试的目的 131

8.1.3 软件测试的原则 131

8.1.4 软件测试的方法 132

8.1.5 软件测试的基本过程 133

8.1.6 软件测试的文档 134

8.1.7 软件测试与调试的区别 136

8.1.8 测试团队构成及角色划分 136

8.2 白盒测试 138

8.2.1 什么是白盒测试 139

8.2.2 六种覆盖方法 139

8.2.3 基本路径测试 143

8.2.4 白盒测试工具的选择 145

8.2.5 白盒测试的优缺点 145

8.3 黑盒测试 146

8.3.1 什么是黑盒测试 146

8.3.2 黑盒测试的测试用例设计方法 146

8.3.3 黑盒测试工具的选择 149

8.3.4 黑盒测试的优缺点 149

8.4 软件测试级别 150

8.4.1 单元测试 150

8.4.2 集成测试 154

8.4.3 系统测试 159

8.4.4 回归测试 161

8.4.5 验收测试 164

8.5 测试过程和管理 167

8.5.1 软件测试过程模型介绍 168

8.5.2 测试过程管理理念 170

第9章 软件项目管理 173

9.1 软件项目管理基础 173

9.1.1 软件项目管理的意义 173

9.1.2 软件项目管理的定义及职能 174

9.1.3 软件项目管理的特点 174

9.1.4 软件项目管理的内容 175

9.1.5 提高软件成功的途径 176

9.2 软件项目计划 176

9.2.1 软件项目计划概念 176

9.2.2 软件项目计划内容 177

9.2.3 成本估算 178

9.2.4 进度安排 179

9.2.5 项目报告 181

9.2.6 项目检验 181

9.3 质量管理 182

9.3.1 软件质量保证 182

9.3.2 项目管理评审 184

9.4 项目中的组织 185

9.4.1 项目组织模式 185

9.4.2 人员配备 185

9.5 配置管理 186

9.5.1 基线 187

9.5.2 软件配置项 187

9.5.3 版本控制 188

9.5.4 变更控制及访问控制和同步控制 188

9.5.5 配置审计和状态报告 188

9.6 风险和风险管理 189

9.7 软件工程标准化与软件文档 190

9.7.1 软件工程标准化 190

9.7.2 软件工程标准化的意义 191

9.7.3 软件工程标准的层次 191

9.7.4 文档的作用与分类 192

第10章 软件质量保证 195

10.1 质量的概念 195

10.1.1 什么是质量 196

10.1.2 质量的演变 196

10.1.3 软件质量 197

10.1.4 软件质量的特性 198

10.2 质量框架 200

10.3 软件质量保证 201

10.4 软件质量度量 206

10.4.1 McCall质量度量模型 206

10.4.2 ISO的软件质量评价模型 207

10.4.3 软件质量度量 207

10.5 软件复杂性 208

10.5.1 软件复杂性的基本概念 208

10.5.2 软件复杂性的度量方法 209

10.6 软件可靠性 210

10.6.1 软件可靠性的定义 210

10.6.2 软件可靠性的指标 211

10.6.3 软件可靠性的模型 211

10.7 软件评审 212

10.7.1 设计质量的评审内容 212

10.7.2 程序质量的评审内容 213

10.8 软件容错技术 214

10.8.1 容错技术定义 214

10.8.2 容错的一般方法 215

10.8.3 容错软件的设计过程 216

10.9 软件开发各阶段的软件质量保证目标 216

10.9.1 需求分析 216

10.9.2 设计 216

10.9.3 编码 217

10.9.4 测试 217

10.9.5 维护 217

10.9.6 软件规范文档 217

10.10 质量保证与质量控制的区别 218

10.11 全面质量管理 219

10.11.1 计划—执行—检查—行动(PDCA) 220

10.11.2 质量改进范例 221

10.11.3 软件工程协会(Software Engineering Institute,简称SEI) 221

10.12 案例研究 222

第11章 软件配置管理 224

11.1 软件配置管理 225

11.1.1 基线 225

11.1.2 软件配置项 226

11.2 SCM过程 229

11.3 软件配置中对象的标识 229

11.4 版本控制 231

11.5 变化控制 231

11.6 配置审计 232

11.7 状态报告 233

11.8 SCM标准 233

第12章 软件维护 235

12.1 软件维护概述 235

12.1.1 软件维护和分类 235

12.1.2 软件维护的特点 236

12.1.3 软件维护策略 238

12.2 软件的可维护性 238

12.3 软件维护过程和模型 239

12.3.1 软件维护活动 239

12.3.2 软件维护的副作用 243

12.3.3 软件维护过程模型 244

12.4 软件再工程 246

第13章 软件工程新方法简介 248

13.1 极限编程(Extreme Programming,简称XP)简介 248

13.1.1 极限编程的概念 249

13.1.2 XP的四条基本价值原则 250

13.1.3 XP的实践准则 250

13.1.4 XP的使用及学习 254

13.2 微软解决方案框架(Microsoft Solution Framework,简称MSF)简介 254

13.2.1 MSF的概念 255

13.2.2 MSF的八个基础原理 255

13.2.3 MSF模型 257

13.2.4 MSF准则 260

13.2.5 MSF的使用及学习 262

参考文献 263