内容简介
《航天型号高可靠软件系统调试原理与技术》针对复杂航天型号对软件系统的高可靠性要求,在深入分析软件故障特征的基础上,阐述了当前软件调试手段与工具的技术分类体系,介绍了一批最新的、具有代表性的软件调试技术,包括程序规则分析、用户行为分析、虚拟化调试支持、故障重现与逆向调试、统计调试、不变式调试等内容,以提高软件故障诊断与分析的自动化、智能化程度,提高软件调试效率,缩短软件交付周期,提高航天型号软件系统的可靠性。
《航天型号高可靠软件系统调试原理与技术》主要读者对象是航天型号软件系统的设计人员、开发人员、测试人员及管理人员,也可作为其他科技人员了解和掌握高可靠软件系统质量保证与调试技术的参考书。
目录
第1章 软件调试技术概述
1.1 软件系统的“双刃剑效应”
1.2 软件质量体系中的短板——调试技术
1.3 传统软件调试技术的局限性
1.4 软件调试技术的发展概况
1.5 本书的组织
第2章 型号软件中的bug分析
2.1 概述
2.2 国外型号软件中的bug
2.2.1 金星探测器水手1号
2.2.2 阿里安5
2.2.3 火星气候轨道器MCO
2.2.4 火星极地着陆器
2.2.5 Titan/Centaur/Milstar军事卫星
2.3 国内型号软件中的bug
2.3.1 优先级运算问题
2.3.2 程序结构不合理问题
2.3.3 初始化不完备问题
2.3.4 原子性破坏问题
第3章 软件bug分类及分布规律
3.1 软件bug概述
3.1.1 关于bug的起源
3.1.2 软件bug的定义
3.2 典型软件bug分类体系简介
3.2.1 BorisBeizer分类体系
3.2.2 IEEE10441994分类体系
3.2.3 QJ3026-1998分类体系
3.3 c语言软件bug分类体系
3.3.1 内存相关错误
3.3.2 初始化错误
3.3.3 计算错误
3.3.4 输入输出错误
3.3.5 控制流错误
3.3.6 数据处理解释错误
3.3.7 竞争类错误
3.3.8 平台相关错误
3.3.9 其他错误
3.4 当前软件bug分布规律分析
3.5 软件bug分布发展趋势
3.6 对软件调试技术的需求
第4章 内存类bug调试
4.1 内存类bug产生原因
4.1.1 内存类bug现状
4.1.2 动态内存管理
4.2 内存类错误调试支持工具
4.2.1 Insure++
4.2.2 Purify
4.2.3 Valgrind
第5章 静态分析调试
5.1 静态分析概述
5.2 典型静态分析技术
5.2.1 基于规则的检查
5.2.2 符号执行
5.2.3 定理证明
5.2.4 类型推导
5.2.5 抽象解释
5.2.6 模型检测
5.3 静态分析工具
5.3.1 Testbed简介
5.3.2 其他静态分析工具简介
5.4 静态分析局限性
第6章 动态分片调试
6.1 什么是程序分片
6.1.1 程序分片的发展历史
6.1.2 程序分片的分类
6.1.3 程序分片的应用
6.2 静态分片
6.2.1 静态分片
6.2.2 Weiser的算法
6.2.3 Ottenstein的算法
6.2.4 基于系统依赖图的算法
6.2.5 静态分片和动态分片
6.3 动态分片
6.3.1 分片标准
6.3.2 def-use动态分片算法
6.3.3 Agrawal和Horgan的算法
6.4 分片调试实例
6.4.1 采用可信度剪枝的动态程序分片
6.4.2 Delta调试和动态分片相结合的软件调试方法
6.5 商品化的分片工具
第7章 Delta调试
7.1 Delta调试概述
7.2 Delta调试分类
7.2.1 简化
7.2.2 分离
7.3 Delta调试基本原理
7.3.1 简化算法
7.3.2 层次化Delta调试
7.3.3 分离故障起因
7.3.4 分离因果链
7.4 Delta调试工具举例
7.4.1 ASKIGOR
7.4.2 DDchange和DDstate
7.5 问题和局限性
第8章 统计调试
8.1 统计调试概述
8.1.1 统计调试的定义
8.1.2 统计调试的特点
8.1.3 统计调试的发展历史
8.2 统计原理
8.2.1 常用分布
8.2.2 常用定理及统计推断
8.3 统计调试分类
8.3.1 在线和离线统计调试
……
第9章 不变式调试
第10章 难以重现类bug调试
第11章 体系结构扩展调试
第12章 基于数据挖掘的调试方法
第13章 软件调试技术评价
参考文献
精彩书摘
第1章 软件调试技术概述
1.1 软件系统的“双刃剑效应”
软件系统作为计算机系统的神经中枢,已经延伸到现代武器型号设备、装置中的各个角落,为了能够适应各种复杂的空间环境和完成繁杂的空间任务,软件系统的应用规模、复杂度以及重要性程度,近年来均呈急剧上升趋势。例如:
·一个国际太空站需要上百万行的软件系统,控制各种导航、通信及实验设备;
·美国航空航天局(NASA)的太空飞船项目中,其船载软件代码量大于50万行,地面控制和处理软件代码量约350万行;
·我国神舟五号载人飞船中,船载软件模块共60余个,软件指令达70万条,地面支持系统的软件规模则大于140万条指令;在神舟六号飞船的7大系统、13个分系统中,软件模块规模进一步扩大到82个。
在型号设备的功能分布中,由软件系统承担的功能比重不断加大。例如,在美国第二代歼击机F-111中,由软件部分所实现的功能约占20%,到了第四代机F-22,这个比例已上升为80%。与此相类似,在我国新研的军用飞机中,其飞控系统、火控系统及弹射救生系统等,均采用软件系统逐步替代原有的机械、光学设备,实现其控制,某些机种的机载代码量已超过了百万行量级。
由于软件错误直接造成系统失效的比例持续递增,据1986年的统计数据表明,系统失效事件中诱因是软件错误的比例约占25%,而到2000年,该比率已超过40%。软件错误所导致的经济损失也触目惊心,根据美国国家标准技术研究所2002年6月公布的调查表明,由于软件错误导致美国的经济损失每年高达595亿美元,约战GDP的0.6%。
……
前言/序言
随着航天型号功能的日趋复杂,软件在型号中的应用越来越多,其规模和复杂度也日趋上升。从近年来对型号问题的统计数据来看,由于软件所导致的问题已占据一定比例。软件已经成为航天型号产品质量和可靠性的关键因素之一。
调试和故障诊断是软件研制过程中的重要环节,其主要的工作是针对故障现象完成故障的分析和定位,是保障和提高软件质量和可靠性的重要手段。目前,在型号软件研制过程中,软件调试工作绝大部分都依靠人工完成,尚未形成理论化、系统化、精确化、自动化的调试手段。
本书作者结合他们在开发高可靠复杂软件方面的实际经验和研究成果,在深入分析软件故障特征的基础上,阐述当前软件调试手段与工具的技术分类体系,并系统地介绍了当前国内外最新的、具有代表性的相关研究成果和技术。通过这些手段的应用,可以提高软件故障诊断与分析的自动化和智能化,快速、准确地定位故障,极大地提高软件调试效率。希望本书的出版能对推动航天型号软件可靠性工作起到积极作用。
航天型号高可靠软件系统调试原理与技术 电子书 下载 mobi epub pdf txt