《软件工程 第2版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:闫菲主编;向郑涛,吴年志副主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2005
  • ISBN:7508430328
  • 页数:223 页
图书介绍:本书是在第一版的基础上,依据教育部《高职高专教育基础课程教学的基本要求》和《高职高专教育专业人才培养目标与规格》经过全面修订而成的。在修订中强调内容的实用性,以问题带知识点的方式来阐述,反映学科最新发展方向的新内容,加强了计算机网络、面向对象软件技术等实用技术的介绍,对统一建模语言(UML)和统一过程(RUP)作了深入浅出的介绍。本书共14章,内容主要包括:软件危机与软件工程,软件生命周期及软件开发模型、计算机系统工程、需求分析、总体设计、详细设计、编码与测试、软件维护、面向对象方法学引论、面向对象的分析、面向对象系统设计、快速原型技术、软件重用技术。本书内容精练,重点突出,概念清楚,强调专业知识与工程实践相结合,注重专业技术与技能的训练,引入典型工程案例。书中含有丰富的例题与习题,便于教学与自学。

序 1

第二版前言 1

第一版前言 1

第1章 软件危机与软件工程 1

1.1 软件危机 1

1.1.1 软件的代价 1

目录 1

1.1.2 软件开发和维护中的严重问题 2

1.1.3 产生软件危机的原因 3

1.1.4 克服危机的途径 3

1.2 软件工程 4

1.2.1 软件工程的定义与基本原理 4

1.2.2 软件工程的目标 5

1.2.3 软件工程框架及原则 6

习题1 7

本章小结 7

第2章 软件生命周期及软件开发模型 8

2.1 软件生命周期 8

2.2 软件生命周期过程和活动 9

2.2.1 瀑布模型 10

2.2.2 演化模型 11

2.2.3 原型模型 12

2.2.4 螺旋模型 13

2.2.5 喷泉模型 14

本章小结 15

习题2 15

第3章 计算机系统工程 16

3.1 基于计算机的系统 16

3.1.1 计算机系统工程 17

3.1.2 硬件工程 20

3.1.3 软件工程 22

3.1.4 人机工程 26

3.1.5 数据库工程 27

3.2 可行性研究 28

3.2.1 可行性研究的任务 28

3.2.2 市场可行性 29

3.2.3 经济可行性 29

3.2.4 技术可行性 31

3.2.5 方案选择 32

3.3 系统开发过程的新体系结构——快速原型与面向对象 33

本章小结 34

习题3 35

第4章 需求分析 36

4.1 需求分析基础 36

4.1.1 分析的任务与原则 36

4.1.2 初步需求获取技术 38

4.1.3 需求建模 39

4.1.4 开发原型系统 40

4.2 结构化分析方法 41

4.2.1 结构化分析的策略 41

4.2.2 数据流图 42

4.2.3 数据字典 46

4.2.4 小说明 48

4.2.5 结构化分析实施步骤 48

4.3 其他分析方法与图形工具 49

4.4 实体——关系图 52

4.4.1 数据对象、属性与关系 53

4.4.2 E-R方法和实体模型 54

4.4.3 数据结构的规范化 55

4.5 需求规格说明与评审 57

4.5.1 需求规格说明书的目标与内容 57

4.5.2 需求评审 59

本章小结 60

习题4 61

第5章 总体设计 62

5.1 总体设计的过程 62

5.1.1 设计供选择的方案 62

5.1.2 推荐最佳实现方案 63

5.1.3 功能解剖和设计软件结构 63

5.1.4 数据库设计 64

5.1.5 制定测试计划 65

5.1.6 文档的编写 65

5.1.7 进行审查和复查 65

5.2 软件设计基本原理 65

5.2.1 模块化 65

5.2.2 抽象 68

5.2.3 信息隐蔽 68

5.2.4 模块独立性 69

5.3 设计准则 72

5.4 总体设计的图形描述工具 74

5.4.1 层次图 74

5.4.2 HIPO图 75

5.4.3 结构图 76

5.5 结构化设计方法 77

5.5.1 数据流图的类型 77

5.5.2 设计步骤 79

5.5.3 变换设计 79

5.5.4 事务设计 85

5.5.5 设计的后处理 86

本章小结 87

习题5 87

第6章 详细设计 88

6.1 结构化程序设计 88

6.2.1 程序流程图 90

6.2 详细设计工具 90

6.2.2 盒图(N-S图) 91

6.2.3 PAD图 92

6.2.4 过程设计语言(PDL) 94

6.2.5 判定表 94

6.2.6 判定树 95

6.3 Jackson程序设计方法 96

6.3.1 Jackson方法 96

6.3.2 Jackson图 97

6.3.3 Jackson程序设计方法 98

6.4 Warnier程序设计方法简介 102

6.4.1 Warnier图 102

6.4.2 Warnier程序设计方法的步骤 102

本章小结 102

习题6 103

7.1.1 程序设计语言的概述 105

第7章 编码 105

7.1 程序设计语言 105

7.1.2 程序设计语言的分类 106

7.1.3 程序设计语言的特点 110

7.1.4 程序设计语言的选择 112

7.2 程序设计风格 113

7.2.1 程序内部的文档 113

7.2.2 数据说明 114

7.2.3 语句构造 115

7.2.4 输入/输出 115

7.2.5 效率 116

7.3 编码的质量要求 117

7.4 编码工具 118

本章小结 118

习题7 119

8.1 软件测试的基本概念 120

8.1.1 软件测试的定义 120

第8章 软件测试 120

8.1.2 软件测试的基本原则 121

8.1.3 软件测试的步骤 122

8.1.4 软件测试信息流 122

8.1.5 测试人员组织 123

8.2 软件测试方法 124

8.2.1 黑盒测试 124

8.2.2 白盒测试 125

8.3 测试用例的设计 126

8.3.1 逻辑覆盖 126

8.3.2 等价类划分 129

8.3.3 边界值分析 130

8.3.4 因果图 130

8.4 软件测试的步骤 131

8.4.1 单元测试 131

8.3.5 错误推测法 131

8.4.2 集成测试 134

8.4.3 有效性测试 137

8.4.4 系统测试 138

8.5 调试 139

8.5.1 调试的步骤 139

8.5.2 调试的策略 139

8.6.2 软件正确性证明 142

8.6.1 软件可靠性的定义 142

8.6 软件可靠性 142

8.7 验收测试 143

8.7.1 验收测试的步骤 143

8.7.2 Alpha测试和Beta测试 144

8.8 测试工具 145

8.8.1 人工测试 145

8.8.2 自动测试工具 147

本章小结 147

习题8 148

9.1 软件维护的概念 149

9.1.1 软件维护的种类 149

第9章 软件维护 149

9.1.2 影响维护工作量的因素 150

9.1.3 软件维护的策略 151

9.2 软件维护的特点 152

9.2.1 软件工程与软件维护的关系 152

9.2.2 维护成本 153

9.2.3 维护的问题 154

9.3 软件维护过程 154

9.3.1 维护机构 154

9.3.2 维护申请报告 155

9.3.3 维护的工作流程 155

9.3.4 维护记录 157

9.3.5 维护评价 157

9.4.1 软件可维护性的度量 158

9.4 软件可维护性 158

9.4.2 提高软件可维护性的方法 159

9.5 软件维护的深化——再生工程 160

9.5.1 重构 160

9.5.2 逆向工程 161

9.5.3 前向工程 161

9.6 软件维护的副作用 161

本章小结 162

习题9 163

第10章 面向对象方法学引论 164

10.1 传统方法学与面向对象方法学比较 164

10.1.1 传统方法学 164

10.1.2 面向对象方法学 165

10.2 面向对象的基本任务 167

10.2.1 抽象 167

10.3.1 对象 169

10.2.2 封装 169

10.3 面向对象基础概念 169

10.3.2 其他概念 172

本章小结 175

习题10 176

第11章 面向对象的分析 177

11.1 面向对象建模 177

11.2 对象模型 178

11.2.1 表示类— —对象的图形符号 178

11.2.2 表示结构的图形符号 179

11.2.3 实例 181

11.3 动态模型 182

11.3.1 术语 182

11.3.2 表示方法 183

11.4 功能模型 184

11.5 UML概述 184

11.6 UML的图形 186

11.6.1 用例图(use case diagram) 187

11.6.2 类图(class diagram) 188

11.6.3 顺序图(Sequence diagram) 189

11.6.4 状态图(State chart diagram) 189

本章小结 190

习题11 191

第12章 面向对象系统设计 192

12.1 从面向对象分析到面向对象设计 193

12.2 问题域部分(PDC)设计之一——基础理论 194

12.2.1 为什么需要问题域部分设计 195

12.2.2 如何进行问题域部分设计 196

12.3 人机交互部分(HIC)设计 198

12.3.1 为什么需要人机交互部分 198

12.3.2 如何设计人机交互部分 199

12.4 任务管理部分(TMC)设计 200

12.4.2 怎样设计任务管理部分 201

12.4.1 为什么需要有任务管理部分 201

12.5 数据管理部件(DMC)的设计 202

本章小结 204

习题12 204

第13章 快速原型技术 205

13.1 快速原型方法 205

13.1.1 原型的定义和作用 205

13.1.2 原型的分类 206

13.1.3 原型开发的应用 207

13.1.4 快速原型的构造过程 207

13.2 基于快速原型技术的进化式软件开发(螺旋模型) 208

13.2.1 螺旋模型 208

13.2.2 螺旋模型的评价 210

13.3 快速原型开发技术 210

本章小结 210

习题13 211

第14章 软件重用技术 212

14.1 软件重用 212

14.1.1 软件重用的概念和意义 212

14.1.2 软件重用技术的理解 212

14.1.3 软件重用的过程 215

14.1.4 可重用软件的设计过程 215

14.2 软部件库的构造 216

14.2.1 基于域分析软部件选取 216

14.2.2 软部件的开发 217

14.2.3 软部件库的组织 219

14.2.4 软部件的检索与提取 220

14.3 面向对象的软件重用技术 220

本章小结 222

习题14 222

参考文献 223