图书介绍

软件工程师可信计算基础2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

软件工程师可信计算基础
  • (美)莱特著 著
  • 出版社: 北京:国防工业出版社
  • ISBN:9787118100068
  • 出版时间:2014
  • 标注页数:330页
  • 文件大小:71MB
  • 文件页数:356页
  • 主题词:电子计算机-安全技术

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件工程师可信计算基础PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一章 概述1

1.1 可信性的元素1

1.1.1 一个警示性的故事1

1.1.2 为什么要研究可信性3

1.2 软件工程师的角色4

1.3 对于计算机的依赖6

1.4 一些遗憾的失效7

1.4.1 “阿丽亚娜”V火箭7

1.4.2 大韩航空801航班8

1.4.3 火星气候轨道飞行器8

1.4.4 火星极地登陆器9

1.4.5 其他重要的事故9

1.4.6 如何考虑失效10

1.5 失效的后果10

1.5.1 不明显的失效后果11

1.5.2 失效带来的意外成本11

1.5.3 后果的种类12

1.5.4 确定失效后果13

1.6 对于可信性的需求13

1.7 系统和它们的可信性需求14

1.7.1 关键系统14

1.7.2 帮助构建系统的系统16

1.7.3 与其他系统交互的系统17

1.8 我们要去往何方?17

1.9 本书的组织结构18

习题19

第二章 可信性需求21

2.1 为什么需要可信性需求21

2.2 可信性概念的演变过程21

2.3 术语的作用23

2.4 什么是系统?24

2.5 需求和规格说明26

2.6 失效27

2.6.1 服务失效的概念27

2.6.2 服务失效的来源28

2.6.3 需求和规格说明的实践观点30

2.6.4 服务失效的视角30

2.6.5 告知用户失效31

2.7 可信性及其属性32

2.7.1 可靠性34

2.7.2 可用性34

2.7.3 每次请求失效37

2.7.4 安全性37

2.7.5 机密性39

2.7.6 完整性40

2.7.7 维修性41

2.7.8 有关保密安全性的词汇41

2.7.9 信任的概念41

2.8 系统、软件和可信性42

2.8.1 计算机既非不安全也非不保密安全42

2.8.2 为什么要考虑应用系统的可信性?43

2.8.3 应用系统可信性和计算机43

2.9 定义可信性需求45

2.9.1 第一个例子:汽车巡航控制器46

2.9.2 第二个例子:起搏器47

2.10 低至合理可行ALARP49

2.10.1 对于ALARP的需求49

2.10.2 ALARP概念50

2.10.3 ALARP胡萝卜图51

习题52

第三章 错误、故障和危险56

3.1 错误56

3.2 错误状态的复杂性57

3.3 故障和可信性58

3.3.1 故障的定义58

3.3.2 识别故障59

3.3.3 故障类型60

3.3.4 实现可信性60

3.4 故障的表现60

3.5 退化故障61

3.5.1 退化故障概率——浴盆曲线62

3.5.2 退化故障的例子——硬盘62

3.6 设计故障64

3.7 拜占庭故障65

3.7.1 概念65

3.7.2 拜占庭故障的例子66

3.7.3 拜占庭故障的微妙之处67

3.8 组件失效语义68

3.8.3 磁盘驱动器的例子68

3.8.2 实现可预测的失效语义68

3.8.3 软件失效语义69

3.9 可信性的基本原理69

3.9.1 故障避免70

3.9.2 故障排除71

3.9.3 容错71

3.9.4 故障预测71

3.10 预期故障71

3.11 危险72

3.11.1 危险的概念72

3.11.2 危险识别73

3.11.3 危险和故障74

3.12 构造可信系统74

习题76

第四章 可信性分析78

4.1 预期故障78

4.2 泛化危险的概念79

4.3 故障树分析79

4.3.1 故障树的基本概念80

4.3.2 基本事件和中间事件80

4.3.3 故障树的检查82

4.3.4 故障树的概率分析82

4.3.5 软件和故障树82

4.3.6 故障树示例84

4.3.7 深度防御86

4.3.8 故障树的其他应用88

4.4 失效模式、影响和严酷度分析88

4.4.1 FMECA的概念88

4.5 危险和可操作性分析90

4.5.1 HazOp的概念90

4.5.2 基本的HazOp过程91

4.5.3 HazOp和计算机系统91

习题92

第五章 故障处理94

5.1 故障及其处理94

5.2 故障避免95

5.2.1 退化故障95

5.2.2 设计故障95

5.3 故障消除96

5.3.1 退化故障96

5.3.2 设计故障96

5.4 容错97

5.4.1 熟悉容错97

5.4.2 定义97

5.4.3 容错的语义99

5.4.4 容错的阶段99

5.4.5 容错系统的一个例子100

5.5 故障预测102

5.5.1 故障预测过程102

5.5.2 运行环境102

5.5.3 退化故障103

5.5.4 设计故障103

5.6 四种故障处理方法的应用104

5.7 拜占庭故障处理105

5.7.1 拜占庭将军105

5.7.2 拜占庭将军和计算机106

5.7.3 不可能性结果108

5.7.4 拜占庭将军问题的解决方案109

习题110

第六章 退化故障和软件112

6.1 对于软件的影响112

6.2 冗余113

6.2.1 冗余和备份113

6.2.2 大规模部件冗余和小规模部件冗余115

6.2.3 静态冗余和动态冗余116

6.3 冗余结构117

6.3.1 双冗余118

6.3.2 可切换双冗余120

6.3.3 N-模块冗余125

6.3.4 混合冗余126

6.4 量化冗余的效益128

6.4.1 统计独立性128

6.4.2 双冗余结构129

6.5 分布式系统和失效停止计算机129

6.5.1 分布式系统129

6.5.2 计算机的失效语义130

6.5.3 分布式系统的开发131

6.5.4 失效停止概念131

6.5.5 失效停止计算机的实现132

6.5.6 失效停止计算机的软件编程133

习题135

第七章 软件可信性137

7.1 故障和软件生命周期137

7.1.1 软件及其脆弱性138

7.1.2 软件故障处理139

7.1.3 软件生命周期139

7.1.4 验证与确认140

7.2 形式化技术141

7.2.1 软件工程中的分析141

7.2.2 形式化需求规格说明143

7.2.3 形式化验证144

7.2.4 “正确性”这一术语的使用144

7.3 通过模型检验进行验证144

7.3.1 模型检验的作用144

7.3.2 分析模型145

7.3.3 使用模型检测器146

7.4 通过构造获得正确性147

7.5 通过构造获得正确性的方法147

7.6 通过构造获得正确性——综合149

7.6.1 从形式化需求规格说明生成代码149

7.6.2 基于模型开发的优点150

7.6.3 基于模型开发的系统实例151

7.6.4 Mathworks Simulink?152

7.7 通过构造获得正确性——精化153

7.8 软件故障避免154

7.8.1 严格的开发过程154

7.8.2 恰当的符号156

7.8.3 适用所有产品的综合标准156

7.8.4 支持工具157

7.8.5 受到适当培训的员工157

7.8.6 形式化技术157

7.9 软件故障消除158

7.9.1 静态分析158

7.9.2 动态分析159

7.9.3 消除故障——根源分析160

7.10 管理软件故障避免和故障消除161

7.10.1 故障免除的属性161

7.11 有关软件可信性的误解163

习题165

第八章 软件需求规格说明中的故障避免167

8.1 需求规格说明的作用167

8.2 自然语言的问题168

8.3 需求规格说明的问题169

8.3.1 需求规格说明的缺陷169

8.3.2 需求规格说明的演化169

8.4 形式化语言171

8.4.1 形式化句法和语义171

8.4.2 形式化语言的好处172

8.4.3 形式化语言的格式174

8.4.4 形式化语言的类型175

8.4.5 离散数学和形式化需求规格说明175

8.4.6 操作前后的状态176

8.4.7 一个简单的需求规格说明176

8.5 基于模型的需求规格说明177

8.5.1 使用基于模型的需求规格说明178

8.6 声明性语言Z179

8.6.1 集合180

8.6.2 命题和谓词181

8.6.3 量词182

8.6.4 叉积183

8.6.5 关系、序列和函数183

8.6.6 模式184

8.6.7 模式演算185

8.7 一个简单的例子185

8.8 一个详细的例子187

8.8.1 例子版本1187

8.8.2 例子版本2188

8.8.3 简单例子版本3190

8.8.4 简单例子版本4191

8.9 形式化需求规格说明开发概述192

习题193

第九章 软件实现中的故障避免196

9.1 软件实现196

9.1.1 软件实现的工具支持196

9.1.2 开发一个软件实现197

9.1.3 软件哪里出错了?198

9.2 编程语言199

9.2.1 C语言200

9.3 Ada语言概述201

9.3.1 Ada语言的发明动机201

9.3.2 基本特性202

9.3.3 包205

9.3.4 并发和实时编程205

9.3.5 分离式编译205

9.3.6 异常206

9.4 编程标准206

9.4.1 编程标准和编程语言206

9.4.2 编程标准和故障避免207

9.5 通过构造获得正确性——SPARK209

9.5.1 SPARK开发的概念209

9.5.2 SPARK Ada子集211

9.5.3 SPARK标注212

9.5.4 核心标注213

9.5.5 证明性标注215

9.5.6 循环不变量217

9.5.7 SPARK工具220

习题221

第十章 软件故障消除224

10.1 为什么要故障消除224

10.2 审查225

10.2.1 人工产品和缺陷226

10.2.2 Fagan审查227

10.2.3 有效的评审229

10.2.4 阶段审查230

10.3 测试233

10.3.1 穷举测试233

10.3.2 测试的作用234

10.3.3 测试过程235

10.3.4 软件形式235

10.3.5 输出检查236

10.3.6 测试充分性237

10.3.7 修改条件判断覆盖239

10.3.8 测试自动化240

10.3.9 实时系统241

习题242

第十一章 软件容错245

11.1 遭受设计故障的部件245

11.2 容错设计的有关问题246

11.2.1 容错设计的难点246

11.2.2 自愈系统248

11.2.3 错误检测248

11.2.4 向前和向后错误恢复249

11.3 软件复制250

11.4 设计多样性251

11.4.1 N版本系统252

11.4.2 恢复块254

11.4.3 交流和对话255

11.4.4 度量设计多样性256

11.4.5 比较检查257

11.4.6 一致性比较问题258

11.5 数据多样性259

11.5.1 故障和数据259

11.5.2 数据多样性的一个特殊案例260

11.5.3 泛化的数据多样性261

11.5.4 数据再表达261

11.5.5 N-拷贝执行和表决262

11.6 定向容错263

11.6.1 安全内核264

11.6.2 应用隔离265

11.6.3 看门狗定时器267

11.6.4 异常267

11.6.5 执行时间检查268

习题270

第十二章 可信性评价272

12.1 评价方法272

12.2 定量评价273

12.2.1 基本方法273

12.2.2 寿命试验275

12.2.3 复合建模276

12.2.4 定量评价的难点276

12.3 法定标准277

12.3.1 法定标准的目标278

12.3.2 法定标准例子——RTCA/DO-178B279

12.3.3 法定标准的优点283

12.3.4 法定标准的缺点283

12.4 严格的论证284

12.4.1 论证的概念284

12.4.2 安全性举证285

12.4.3 基于安全性举证的条例286

12.4.4 构建安全性举证287

12.4.5 一个简单的例子288

12.4.6 目标构建符号GSN291

12.4.7 软件及其论证292

12.4.8 证据类型294

12.4.9 安全性举证模式295

12.5 论证的适用性296

习题297

参考文献299

索引307

热门推荐