《软件工程初级教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:陶华亭编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302221487
  • 页数:278 页
图书介绍:本书汇总了作者多本教材的精华,融入了多年的教学经验,吸收了软件工程学科较新内容编写而成。在内容和体系结构上都有了新的调整和补充。软件工程内容分为工程管理和软件工程技术两大部分。

第1章 软件工程的基本概念与原理 1

1.1 软件工程学科的诞生 1

1.1.1 软件及其特点 1

1.1.2 软件生产的发展 2

1.1.3 软件危机 3

1.1.4 软件工程的诞生 5

1.2 软件工程的基本概念和原理 6

1.2.1 软件工程的定义 6

1.2.2 软件工程面临的主要问题 6

1.2.3 软件工程的目标 6

1.2.4 软件生存周期 7

1.2.5 软件工程的基本原理 9

1.3 软件工程研究的主要内容 10

1.3.1 软件开发过程 10

1.3.2 软件工程技术 10

1.3.3 软件项目管理 11

1.3.4 计算机辅助软件工程 11

本章小结 11

习题 12

第2章 软件开发过程 13

2.1 软件过程 13

2.1.1 软件过程概念及理论基础 13

2.1.2 软件过程讨论的主要内容 13

2.2 常见的软件过程模型 14

2.2.1 边改边做模型 14

2.2.2 瀑布模型 14

2.2.3 演化模型 16

2.2.4 增量迭代模型 19

2.2.5 喷泉模型 20

2.3 软件过程的新发展 21

2.3.1 敏捷过程与极限编程 21

2.3.2 统一过程模型RUP 24

2.3.3 软件过程改进与CMM 27

本章小结 32

习题 33

第3章 软件项目管理 34

3.1 软件项目管理概述 34

3.1.1 软件生产的特殊性 34

3.1.2 软件项目管理的重要性 34

3.1.3 软件项目管理的主要内容 35

3.2 软件规模估算 35

3.2.1 代码行技术 35

3.2.2 功能点技术 36

3.2.3 估算方法 37

3.3 软件项目工作量估算 38

3.3.1 静态单变量模型 38

3.3.2 动态多变量模型&. 39

3.3.3 COCOMO2模型 39

3.4 软件项目进度控制 41

3.4.1 估算开发时间 41

3.4.2 Gantt图 41

3.4.3 工程网络 42

3.4.4 工程进度估算 43

3.4.5 关键路径 44

3.4.6 机动时间 44

3.5 软件项目人员组织 45

3.5.1 民主制程序员组 45

3.5.2 主程序员组 46

3.5.3 现代程序员组 47

3.6 软件质量保证 49

3.6.1 软件质量 49

3.6.2 软件质量保证措施 49

3.7 软件配置管理 51

3.7.1 软件配置 51

3.7.2 软件配置管理过程 52

本章小结 53

思考题 54

第4章 软件项目可行性分析与初步计划 55

4.1 可行性分析的任务 55

4.2 可行性分析的步骤 56

4.2.1 审查系统规模和目标 56

4.2.2 调查目前正在使用的系统 56

4.2.3 导出新系统的高层逻辑模型 57

4.2.4 导出和评价供选择的方案 57

4.2.5 推荐行动方针 57

4.2.6 草拟项目计划 58

4.2.7 编写文档提交审查 58

4.3 系统流程图 58

4.3.1 基本符号 59

4.3.2 绘制方法 60

4.4 数据流图 60

4.4.1 基本符号 61

4.4.2 绘制方法 61

4.4.3 数据流图的用途 62

4.5 成本/效益分析 63

4.5.1 成本估算 63

4.5.2 成本/效益分析的方法 64

4.6 可行性分析报告 66

4.6.1 主要内容 66

4.6.2 参考格式 66

本章小结 67

思考题 68

综合题 68

第5章 需求分析 69

5.1 需求分析概述 69

5.1.1 需求分析的任务 69

5.1.2 人员组织 70

5.1.3 分析师的角色 70

5.1.4 需求分析的活动和原则 70

5.2 结构化分析方法 72

5.2.1 结构化分析的概念 72

5.2.2 细化数据流图 73

5.2.3 实例 75

5.3 数据流程图的绘制 76

5.3.1 数据流图的布局 76

5.3.2 符号的组合应用 76

5.3.3 避免线条交叉 77

5.3.4 抽象数据流的应用 77

5.3.5 编号规则 78

5.3.6 命名规则 78

5.3.7 父图与子图的平衡 78

5.4 编制数据字典 79

5.4.1 定义数据的方法 79

5.4.2 数据字典的内容及格式 80

5.5 加工逻辑的分析与表达 81

5.5.1 结构式语言 81

5.5.2 策略表 82

5.5.3 策略树 83

5.5.4 层次方框图 83

5.5.5 Warnier图 84

5.5.6 IPO图 85

5.6 软件需求验证与评审 85

5.6.1 从哪些方面验证软件需求 85

5.6.2 验证软件需求的方法 86

5.6.3 软件需求评审 86

本章小结 86

思考题 87

第6章 总体设计 88

6.1 总体设计的过程 88

6.1.1 方案设计 89

6.1.2 软件结构设计 91

6.1.3 数据库设计 93

6.1.4 制定测试计划 93

6.1.5 书写文档 93

6.1.6 审查和复审 94

6.2 设计原理 94

6.2.1 模块化 94

6.2.2 抽象 95

6.2.3 逐步求精 95

6.2.4 信息隐藏和局部化 95

6.2.5 模块独立性 96

6.3 启发性设计原则 100

6.3.1 改进软件结构,提高模块独立性 100

6.3.2 模块规模应该适中 100

6.3.3 深度、宽度、扇出和扇入都应适当 100

6.3.4 模块的作用域应该在控制域之内 101

6.3.5 力争降低模块接口的复杂程度 102

6.3.6 设计单入口单出口的模块 102

6.3.7 模块功能应该可以预测 102

6.4 描绘软件结构的图形工具 102

6.4.1 层次图和HIPO图 102

6.4.2 结构图 103

6.5 面向数据流的设计方法 104

6.5.1 面向数据流的设计原理 104

6.5.2 变换分析 105

6.5.3 事务分析 106

6.5.4 结构优化 107

6.5.5 设计过程 107

6.6 实例 107

6.6.1 确定变换中心 107

6.6.2 确定主控制模块,产生第一张结构图 108

6.6.3 分解与优化 109

6.6.4 一个抽象的例子 110

本章小结 112

思考题 112

第7章 详细设计 113

7.1 代码设计 113

7.2 数据库设计 115

7.2.1 数据库设计的相关概念 115

7.2.2 数据库设计的任务 116

7.2.3 概念模型 116

7.2.4 概念模型到数据模型的转换策略 118

7.3 规范化理论 119

7.3.1 规范化的概念 119

7.3.2 非规范化形式 119

7.3.3 第一范式 120

7.3.4 第二范式 121

7.3.5 第三范式 121

7.3.6 实例 121

7.4 数据库设计实例 123

7.4.1 数据库设计的步骤 123

7.4.2 实例 123

7.5 系统平台设计 125

7.5.1 计算机处理方式 125

7.5.2 软硬件选择 125

7.5.3 网络设计 125

7.5.4 系统环境的配置 125

7.6 对话设计 126

7.6.1 对话设计的原则 126

7.6.2 对话设计的基本类型 126

7.7 输入/输出设计 126

7.7.1 输出设计 126

7.7.2 输入设计 127

7.8 处理过程设计 128

7.8.1 盒图(N-S图) 128

7.8.2 问题分析图(PAD图) 129

7.9 编写系统设计说明书 129

本章小结 129

思考题 130

第8章 软件实现 131

8.1 软件实现综述 131

8.1.1 软件开发环境 131

8.1.2 软件开发工具 131

8.1.3 关于编程与测试 132

8.2 编程 132

8.2.1 编程语言 132

8.2.2 编码风格 133

8.3 软件测试基础 136

8.3.1 软件测试的目标 136

8.3.2 软件测试准则 136

8.3.3 测试方法 138

8.3.4 测试步骤 140

8.3.5 测试阶段的信息流 141

8.4 单元测试 142

8.4.1 测试重点 142

8.4.2 代码审查 143

8.4.3 计算机测试 144

8.5 集成测试 145

8.5.1 自顶向下集成 146

8.5.2 自底向上集成 147

8.5.3 不同集成测试策略的比较 147

8.5.4 回归测试 148

8.6 确认测试 148

8.6.1 确认测试概述 149

8.6.2 软件配置复查 149

8.6.3 Alpha和Beta测试 149

8.7 白盒测试技术 150

8.7.1 概述 150

8.7.2 逻辑覆盖 150

8.7.3 控制结构覆盖 154

8.8 黑盒测试技术 158

8.8.1 概述 158

8.8.2 等价类划分 158

8.8.3 边界值分析 160

8.8.4 错误推测 161

8.9 调试 161

8.9.1 调试过程 161

8.9.2 调试途径 162

8.10 软件可靠性 164

8.10.1 基本概念 164

8.10.2 估算平均无故障时间的方法 165

本章小结 166

思考题 167

第9章 软件维护 168

9.1 软件维护的内容 168

9.2 软件维护的特点 169

9.2.1 非结构化维护和结构化维护 169

9.2.2 软件维护的困难性 169

9.2.3 软件维护的费用 170

9.3 软件维护的实施 170

9.3.1 维护的组织 171

9.3.2 维护的流程 171

9.3.3 维护技术 174

9.3.4 维护的副作用 174

9.4 软件的可维护性 175

9.4.1 可维护性定义 176

9.4.2 可维护性的度量 176

9.4.3 提高可维护性的方法 176

本章小结 179

思考题 179

第10章 从结构化到面向对象 180

10.1 方法论的形成与发展 180

10.1.1 软件工程追求的目标和要解决的主要问题 180

10.1.2 软件工程方法论的形成 180

10.1.3 什么是方法论 181

10.1.4 为什么要研究方法论 182

10.1.5 有哪些方法论 182

10.2 结构化方法的缺陷与面向对象的优势 184

10.2.1 传统的和结构化的方法存在的问题 184

10.2.2 面向对象的优势 185

10.3 面向对象的基本概念 188

10.3.1 对象与类 188

10.3.2 消息与责任 190

10.3.3 操作与方法 191

10.3.4 继承与多态 191

10.3.5 封装与接口 192

10.4 UML 192

10.4.1 概述 193

10.4.2 UML模型的基本内容 193

10.4.3 UML的语义扩展 194

10.4.4 模型的组织结构 195

10.5 UML提供的常用图 196

10.5.1 Use Case图 196

10.5.2 类图 196

10.5.3 序列图 201

10.5.4 协作图 202

10.5.5 状态图 202

10.5.6 活动图 203

10.6 面向对象的建模过程 204

10.6.1 过程框架与迭代策略 204

10.6.2 模型演进 204

本章小结 208

思考题 209

第11章 面向对象的需求获取 210

11.1 用例图 210

11.1.1 用例 210

11.1.2 角色 211

11.1.3 关系 211

11.2 活动图 212

11.3 状态图 213

11.4 获取需求活动 214

11.4.1 建立描述用户业务的用例模型 214

11.4.2 演化出目标系统用例模型 216

11.4.3 构造用户界面原型 216

11.5 实例 217

11.5.1 实例描述 217

11.5.2 描述局部功能需求的Use Case报告 218

本章小结 220

思考题 221

第12章 面向对象的分析与设计 222

12.1 全局分析 222

12.1.1 选用构架模式 223

12.1.2 识别关键抽象 223

12.1.3 标识“分析机制” 224

12.1.4 选定分析局部 225

12.2 局部分析 227

12.2.1 提取分析类 227

12.2.2 转述需求场景 230

12.2.3 整理分析类 236

12.3 全局设计 239

12.3.1 确定核心元素 240

12.3.2 引入外围元素 242

12.3.3 优化(模型)组织结构 249

12.4 局部设计 250

12.4.1 实现需求场景 250

12.4.2 实现子系统接口 254

12.5 细节设计 255

12.5.1 精化属性与操作 255

12.5.2 明确类之间的关系 257

本章小结 259

思考题 259

第13章 面向对象的测试 260

13.1 面向对象测试的特点 260

13.2 面向对象的测试策略 261

13.3 测试阶段性成果 262

13.4 测试人员职责分工 263

13.5 测试步骤 264

13.5.1 制定测试计划 264

13.5.2 设计测试用例 264

13.5.3 测试构件的实现 265

13.5.4 执行集成测试 265

13.5.5 执行系统测试 266

13.5.6 评估测试 266

本章小结 266

思考题 267

附录A 软件工程职业道德规范和实践要求 268

附录B 参考教学计划 274

附录C 试题样卷 277

参考文献 278