航天型号高可靠软件系统调试原理与技术 内容简介
本书针对复杂航天型号对软件系统的高可靠性要求,在深入分析软件故障特征的基础上,阐述了当前软件调试手段与工具的技术分类体系,介绍了一批*新的、具有代表性的软件调试技术,包括程序规则分析、用户行为分析、虚拟化调试支持、故障重现与逆向调试、统计调试、不变式调试等内容,以提高软件故障诊断与分析的自动化、智能化程度,提高软件调试效率,缩短软件交付周期,提高航天型号软件系统的可靠性。
本书主要读者对象是航天型号软件系统的设计人员、开发人员、测试人员及管理人员,也可作为其他科技人员了解和掌握高可靠软件系统质量保证与调试技术的参考书。
航天型号高可靠软件系统调试原理与技术 目录
第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 阿里安
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 Boris Beizer分类体系
3.2.2 IEEE 1044—1994分类体系
3.2.3 QJ 3026—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章 静态分析调试
第6章 动态分片调试
第7章 Delta调试
第8章 统计调试
第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%。
……