《软件可靠性工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:徐仁佐编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:7302142939
  • 页数:330 页
图书介绍:本书介绍了软件可靠性工程及其常见问题和应对方法与措施,书中讨论了大量的案例。

第1章 软件可靠性工程与软件工程 1

1.1 软件的问题 2

1.2 与软件质量有关的基本概念 2

1.3 软件质量的6个特性 3

1.4 软件可靠性工程的研究范围 4

1.5 软件可靠性的基本概念 4

1.6 软件寿命的指数分布规律 6

1.7 软件故障率的规律 7

1.8 风险函数λ(t)与R(t)的关系 8

1.9 软件与软件可靠性工程 9

1.9.1 软件及其研制过程的特点 9

1.9.2 软件可靠性工程 9

习题1 14

第2章 软件可靠性模型的理论基础 15

2.1 可靠性分析的数学基础 15

2.1.1 随机变量及其分布 15

2.1.2 非齐次泊松分布(常用随机过程) 16

2.1.3 常用参数估计方法 17

2.2 常用软件可靠性模型 18

2.2.1 非齐次泊松过程模型 18

2.2.2 Schneidewind(SM)模型 20

2.3 软件可靠性专家系统——SRES(2.0版)简介 23

2.3.1 系统简介 23

2.3.2 程序运行过程 24

2.3.3 系统的输入文件 33

2.3.4 系统的输出文件 36

2.3.5 其他输出文件 44

习题2 47

第3章 软件可靠性分配 48

3.1 软件可靠性快速分配方法 49

3.1.1 相似程序法 50

3.1.2 相似模块法 50

3.2 软件可靠性分配的一般方法 51

3.2.1 基于顺序执行的软件系统的等分法 51

3.2.2 基于并行执行的软件系统的等分法 52

3.2.3 基于功能概图的分配方法 52

3.2.4 基于危险性因子的分配方法 71

3.2.5 基于复杂性因子的分配方法 71

3.2.6 基于故障率的分配方法 72

3.3 软件可靠性分配方法小结 73

习题3 74

第4章 软件测试 75

4.1 静态分析 93

4.1.1 代码桌面检查——对程序执行情况做人工模拟 93

4.1.2 预演 95

4.1.3 静态分析工具 95

4.1.4 静态分析的输出 96

4.2 动态测试 96

4.2.1 白盒测试 97

4.2.2 黑盒测试 101

4.3 软件测试策略 107

4.3.1 单元测试 107

4.3.2 集成测试 108

习题4 109

第5章 面向对象软件的测试方法 110

5.1 软件测试技术的发展 110

5.2 面向对象软件工程技术的发展 111

5.2.1 雏形阶段 111

5.2.2 完善阶段 112

5.2.3 繁荣阶段 112

5.3 面向对象程序的特点 112

5.3.1 信息隐蔽对测试的影响 114

5.3.2 封装和继承对测试的影响 114

5.3.3 多态性与动态绑定对测试的影响 115

5.4 集成测试 115

5.5 面向对象软件测试技术 116

5.5.1 类的功能性测试和结构性测试 116

5.5.2 基于对象——状态转移图的面向对象软件测试 117

5.5.3 类的数据流测试 118

5.5.4 数据流分析和测试 119

5.6 类及类测试 120

5.6.1 数据流测试 122

5.6.2 计算类的数据流信息 123

5.7 面向对象程序的集成测试 125

5.7.1 原子系统功能方法 126

5.7.2 基于测试树的集成测试方法 127

5.8 面向对象软件测试用例生成技术 132

5.8.1 软件测试用例生成技术 132

5.8.2 用遗传算法生成结构测试用例 133

习题5 139

第6章 面向路径的测试用例自动生成技术 141

6.1 软件测试的问题 142

6.1.1 软件测试模型 142

6.1.2 软件测试的方法 143

6.2 测试数据生成系统的基本框架 147

6.2.1 静态法 148

6.2.2 动态法 149

6.2.3 其他方法 151

6.3 遗传算法概述 153

6.3.1 遗传算法的起源 153

6.3.2 遗传算法常用形式 154

6.3.3 遗传算法中的技术要点 155

6.3.4 遗传算法的研究及发展 157

6.4 遗传算法在软件测试数据自动生成中的应用 158

6.4.1 问题的转化 159

6.4.2 程序插装 161

6.5 遗传算法的应用 163

6.5.1 适应度函数 163

6.5.2 程序控制 165

6.5.3 复合谓词的处理方法 165

6.5.4 复杂数据结构的处理 166

6.5.5 实例 166

6.6 实验结果及分析 170

6.6.1 权值的影响 170

6.6.2 适应度函数对比 171

6.6.3 参数个数的影响 172

6.6.4 与随机法的比较 173

6.7 在软件测试中的应用 174

6.7.1 采用路径选择器的方法 174

6.7.2 随机法与面向路径数据生成方法的结合 175

6.7.3 应用于集成测试 175

习题6 178

第7章 软件可靠性增长测试和软件安全性测试 179

7.1 软件调试测试 181

7.1.1 软件调试测试的过程 181

7.1.2 软件调试测试方法 182

7.2 操作概图测试 186

7.2.1 操作概图测试的概念 186

7.2.2 操作概图测试的过程 186

7.2.3 确定软件操作概图 188

7.2.4 测试选择 193

7.2.5 操作概图测试举例 195

7.3 软件可靠性度量 197

7.3.1 软件可靠性度量的过程 197

7.3.2 收集软件故障数据 198

7.4 选择软件可靠性增长模型 199

7.4.1 常见的软件可靠性增长模型 199

7.4.2 选择软件可靠性增长模型 199

7.4.3 模型的参数估计及可靠性度量 199

7.4.4 软件可靠性度量举例 200

7.5 对软件可靠性度量方法的改进 202

7.5.1 基于时间/结构的软件可靠性度量 203

7.5.2 使用基于测试覆盖的NHPP模型进行可靠性度量 204

7.5.3 其他方法 204

7.6 应用软件可靠性专家系统 205

7.7 软件安全性 206

7.7.1 软件安全性的概念 206

7.7.2 软件故障树分析 207

7.7.3 软件安全性测试 209

习题7 211

第8章 软件系统故障树分析法 212

8.1 故障树建模 213

8.1.1 割集的产生 213

8.1.2 故障树分析 214

8.1.3 故障树用于软件系统的辅助设计 216

8.2 软件可靠性指标分配的故障树分析法 217

8.2.1 传统的可靠性指标分配技术 217

8.2.2 软件可靠性指标分配的故障树快速分配模型 218

8.2.3 模块重要度的确定 219

8.3 基于软件实用性和总体开发费用的可靠性分配模型 220

8.3.1 解约束最优化问题的遗传算法 220

8.3.2 可靠性分配中的约束优化问题 221

8.4 软件可靠性稳定增长与安全性测试的故障树分析法 224

8.5 容错软件与故障树分析 227

8.5.1 恢复块系统的故障树模型 228

8.5.2 N版本程序设计系统的故障树模型 229

8.5.3 N自检程序设计系统的故障树模型 231

8.6 包括硬件和软件的综合系统的系统级分析 233

习题8 236

第9章 基于冗余的软件容错技术 237

9.1 容错技术中的基本概念 238

9.1.1 容错技术 239

9.1.2 基于结构冗余的软件容错技术 240

9.1.3 一种基于静态冗余的软件容错新方法 242

9.2 容错技术 242

9.2.1 容错相关技术 242

9.2.2 以冗余为基础的容错技术 246

9.3 基于结构冗余的软件容错技术 249

9.3.1 多版本编程结构 249

9.3.2 恢复块结构 254

9.4 一种基于静态冗余的软件容错新技术 257

9.4.1 NVPP结构的描述 257

9.4.2 NVPP结构应用示例 258

9.4.3 NVPP结构的设计方法 259

9.4.4 NVPP结构的执行 263

9.5 可靠性分析和时间资源效率分析 264

9.5.1 单一版本故障和共模故障 264

9.5.2 VPP结构的可靠性分析 265

9.5.3 NVPP结构的时间资源效率分析 267

习题9 267

第10章 Web测试技术 268

10.1 Web测试的特点 269

10.1.1 Web测试与传统测试的比较 270

10.1.2 Web测试的特点 271

10.2 Web技术对Web测试的影响 271

10.2.1 Web体系的架构 272

10.2.2 客户端技术 273

10.2.3 服务器端技术 274

10.2.4 通信协议HTTP 275

10.2.5 Web技术对测试的影响 275

10.3 数据流测试 276

10.3.1 结构化程序中的数据流测试 276

10.3.2 类中的数据流测试 279

10.4 现有的测试技术 282

10.4.1 测试工具介绍 282

10.4.2 测试工具的优点 283

10.4.3 测试工具的不足 284

10.5 Web应用系统的功能测试 285

10.5.1 Web系统的链接测试 285

10.5.2 Web系统的数据流测试 289

10.5.3 数据流在异常检测中的应用 294

习题10 295

第11章 基于知识的软件测试 296

11.1 软件工程中的人因问题研究 296

11.1.1 人因分析及其方法 296

11.1.2 软件工程中的人因问题 297

11.1.3 软件工程中的人因分析 298

11.2 现有测试技术无法对软件做到充分的测试 300

11.3 操作概图测试与排错测试的不足 301

11.4 基于知识的软件测试 303

11.4.1 软件本身是知识的集合体 303

11.4.2 软件开发过程充满知识 303

11.4.3 基于知识的软件测试 308

11.4.4 重视软件测试的软件开发V-模型 313

11.5 基于知识的软件测试的具体实施 315

11.5.1 项目管理人员应该了解组成项目组的所有各类人员的知识结构 315

11.5.2 有必要对现行的标准进行适当的修改 315

11.5.3 基于知识进行软件测试用例的设计原则 316

习题11 316

第12章 软件工程中的复杂网络问题 317

12.1 软件的“内忧”与“外患” 317

12.1.1 软件应用的“外患”问题 318

12.1.2 软件应用的“内忧”问题 318

12.2 “小世界现象”与无尺度网络 320

12.3 软件工程管理的新观点 324

参考文献 326

跋 330