《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:朱作付主编;张雪松,王鸿磊,孟德欣编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2005
  • ISBN:7030146522
  • 页数:258 页
图书介绍:本书介绍了软件工程的概念、技术和方法。主要内容包括:软件开发模型介绍、可行性分析、需求分析、软件设计、编码、测试、维护和软件项目管理等。

第1章 软件工程概述 1

1.1 软件的概念 1

1.2 软件的发展与软件危机 2

1.2.1 计算机软件的发展 2

1.2.2 软件危机 4

1.3 软件工程 6

1.3.1 软件工程概述 6

1.3.2 软件生存周期 7

1.3.3 软件生存期模型 8

1.4 软件的开发方法、工具和环境 12

1.4.1 软件开发方法 12

1.4.2 软件的开发工具 14

1.4.3 软件的开发环境 15

1.5 小结 15

1.6 思考与练习 16

第2章 软件可行性研究 18

2.1 可行性研究的任务 18

2.2 可行性研究的过程 18

2.3 可行性研究的工具 20

2.3.1 系统流程图 20

2.3.2 数据流图 22

2.4 成本/效益分析 24

2.4.1 成本估算技术 24

2.4.2 成本/效益分析的方法 25

2.5 小结 27

2.6 思考与练习 27

第3章 软件需求分析 29

3.1 需求分析的任务 29

3.2 需求分析的过程 31

3.3 需求分析的原则 33

3.4 需求分析的方法概述 34

3.5 结构化分析方法 35

3.5.1 结构化分析的过程 35

3.5.2 数据流图的分层 37

3.5.3 数据词典 42

3.5.4 小说明 45

3.5.5 验证软件需求正确性 48

3.6 结构化数据系统开发方法(DSSD) 49

3.6.1 Warnier图 50

3.6.2 DSSD的分析方法 50

3.7 快速原型化分析方法 54

3.7.1 支持原型法的基本事实 54

3.7.2 实现原型的一般途径 55

3.7.3 基于知识的途径 56

3.7.4 快速建造原型法的工具——超高级语言 57

3.7.5 快速原型开发模型 58

3.8 数据库的需求分析 60

3.8.1 ER模型 61

3.8.2 范式 62

3.9 系统动态分析 62

状态迁移图 63

3.10 需求分析的工具 64

3.10.1 层次方框图 64

3.10.2 IPO图 65

3.11 小结 66

3.12 思考与练习 66

第4章 软件概要设计 70

4.1 概要设计的任务和过程 70

4.2 概要设计的基本原理 72

4.2.1 模块与模块独立性(module and module independence) 72

4.2.2 抽象、信息隐蔽与局部化 75

4.3 软件模块化的优化原则 76

4.4 概要设计的方法 80

4.5 小结 84

4.6 思考与练习 84

第5章 软件详细设计 85

5.1 详细设计的目的与任务 85

5.2 结构化程序设计方法 85

5.3 详细设计的工具 87

5.3.1 程序流程图 87

5.3.2 盒图(N-S图) 89

5.3.3 PAD图 91

5.3.4 过程设计语言(PDL) 92

5.3.5 判定表与判定树 94

5.4 Jackson系统设计方法 94

5.4.1 Jackson图 95

5.4.2 Jackson程序设计方法(JSP) 97

5.5 小结 100

5.6 思考与练习 101

第6章 软件编码 102

6.1 程序设计语言的选择 102

6.2 结构化程序设计 108

6.2.1 关于goto语句的讨论 108

6.2.2 结构化程序设计的原则 109

6.2.3 程序设计中的自顶向下和自底向上 111

6.3 程序设计的风格 113

6.4 程序设计效率 116

6.5 程序复杂性度量 116

6.5.1 代码行度量法 116

6.5.2 McCabe度量法 117

6.5.3 Halstead的软件科学 118

6.6 小结 120

6.7 思考与练习 120

 第7章 软件测试 123

7.1 软件测试的概述 123

7.1.1 软件测试历史回顾 124

7.1.2 软件测试的目的 124

7.1.3 测试常用术语 126

7.1.4 测试的原则 127

7.1.5 测试环境 128

7.2 软件测试方法 128

7.2.1 白盒测试法 130

7.2.2 黑盒测试法 135

7.2.3 黑盒测试与白盒测试的比较 152

7.3 软件测试步骤 153

7.3.1 单元测试 154

7.3.2 集成测试 157

7.3.3 确认测试 160

7.3.4 系统测试 162

7.3.5 人工测试 163

7.4 软件可靠性 165

7.4.1 软件可靠性 165

7.4.2 估算平均无故障时间的方法 166

7.4.3 程序正确性证明 168

7.5 调试 168

7.5.1 调试技术 169

7.5.2 调试策略 170

7.6 测试文档 171

7.6.1 测试文档 172

7.6.2 制定测试计划时应考虑哪些因素 174

7.6.3 测试文档规范 174

7.6.4 软件生存周期各阶段的测试任务与可交付的文档 175

7.7 软件测试工具 177

7.7.1 白盒测试工具 177

7.7.2 黑盒测试工具 179

7.7.3 制定测试计划的工具 179

7.7.4 测试设计和开发工具 179

7.7.5 常用测试工具简介 180

7.8 小结 183

7.9 思考与练习 184

第8章 软件维护与复用 187

8.1 软件维护的概念 187

8.2 软件维护的特点 188

8.3 软件维护过程 190

8.4 程序的修改和程序修改的副作用 193

8.5 软件可维护性 195

8.6 软件的复用 197

8.7 小结 206

8.8 思考与练习 207

第9章 软件质量保证与项目管理 208

9.1 软件质量的概念 208

9.1.1 软件质量的定义 208

9.1.2 软件质量的特性 208

9.2 软件质量的度量 211

9.2.1 软件质量的度量 211

9.2.2 软件质量的评价 212

9.2.3 软件质量的管理 213

9.2.4 软件质量原则 214

9.3 软件质量的保证 215

9.3.1 软件质量保证 215

9.3.2 软件质量保证活动内容 215

9.3.3 软件质量保证评审 216

9.3.4 软件质量认证 217

9.4 软件的质量设计 217

9.5 软件项目管理 217

9.5.1 软件项目管理的定义 217

9.5.2 软件项目管理的组织模式 218

9.5.3 软件项目管理的基本内容 219

9.6 软件过程成熟度模型 220

9.6.1 软件过程 220

9.6.2 软件过程能力评估的CMM模型 220

9.6.3 关键过程域(Key Process Area) 222

9.6.4 CMM的应用 223

9.7 小结 223

9.8 思考与练习 224

第10章 面向对象的软件设计 225

10.1 面向对象的概念 225

10.1.1 面向对象的方法简介 225

10.1.2 对象 226

10.1.3 类和实例 227

10.1.4 继承 227

10.1.5 面向对象的编程语言特征 228

10.2 面向对象的分析过程 229

10.2.1 面向对象的分析 229

10.2.2 面向对象的分析的任务 229

10.2.3 对象模型技术(OMT,Object Model Technology) 229

10.2.4 面向对象分析的步骤 230

10.3 面向对象的设计(OOD,objected-oriented design) 233

10.3.1 高层设计 234

10.3.2 低层设计(类的设计) 235

10.4 面向对象程序设计的实现 235

10.4.1 类的实现 235

10.4.2 面向对象程序设计的实现 235

10.5 面向对象测试 236

10.5.1 面向对象测试模型(Object-Orient Test Model) 237

10.5.2 面向对象测试存在的主要问题 237

10.6 UML语言基础知识 238

10.6.1 UML语言概述 239

10.6.2 UML的特点分析 240

10.6.3 UML系统设计举例 240

10.7 小结 244

10.8 思考与练习 245