航天型号高可靠软件系统调试原理与技术
2008-8
蔡铭、程胜、 王瑞 中国宇航出版社 (2008-08出版)
蔡铭,程胜,王瑞 著
372
无
随着航天型号功能的日趋复杂,软件在型号中的应用越来越多,其规模和复杂度也日趋上升。从近年来对型号问题的统计数据来看,由于软件所导致的问题已占据一定比例。软件已经成为航天型号产品质量和可靠性的关键因素之一。调试和故障诊断是软件研制过程中的重要环节,其主要的工作是针对故障现象完成故障的分析和定位,是保障和提高软件质量和可靠性的重要手段。目前,在型号软件研制过程中,软件调试工作绝大部分都依靠人工完成,尚未形成理论化、系统化、精确化、自动化的调试手段。本书作者结合他们在开发高可靠复杂软件方面的实际经验和研究成果,在深入分析软件故障特征的基础上,阐述当前软件调试手段与工具的技术分类体系,并系统地介绍了当前国内外最新的、具有代表性的相关研究成果和技术。通过这些手段的应用,可以提高软件故障诊断与分析的自动化和智能化,快速、准确地定位故障,极大地提高软件调试效率。希望本书的出版能对推动航天型号软件可靠性工作起到积极作用。
《航天型号高可靠软件系统调试原理与技术》针对复杂航天型号对软件系统的高可靠性要求,在深入分析软件故障特征的基础上,阐述了当前软件调试手段与工具的技术分类体系,介绍了一批最新的、具有代表性的软件调试技术,包括程序规则分析、用户行为分析、虚拟化调试支持、故障重现与逆向调试、统计调试、不变式调试等内容,以提高软件故障诊断与分析的自动化、智能化程度,提高软件调试效率,缩短软件交付周期,提高航天型号软件系统的可靠性。 《航天型号高可靠软件系统调试原理与技术》主要读者对象是航天型号软件系统的设计人员、开发人员、测试人员及管理人员,也可作为其他科技人员了解和掌握高可靠软件系统质量保证与调试技术的参考书。
第1章 软件调试技术概述1.1 软件系统的“双刃剑效应”1.2 软件质量体系中的短板——调试技术1.3 传统软件调试技术的局限性1.4 软件调试技术的发展概况1.5 本书的组织第2章 型号软件中的bug分析2.1 概述2.2 国外型号软件中的bug2.2.1 金星探测器水手1号2.2.2 阿里安52.2.3 火星气候轨道器MCO2.2.4 火星极地着陆器2.2.5 Titan/Centaur/Milstar军事卫星2.3 国内型号软件中的bug2.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 Purify4.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 ASKIGOR7.4.2 DDchange和DDstate7.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%。
《航天型号高可靠软件系统调试原理与技术》主要读者对象是航天型号软件系统的设计人员、开发人员、测试人员及管理人员,也可作为其他科技人员了解和掌握高可靠软件系统质量保证与调试技术的参考书。
无