● 摘要
C语言安全性分析工具的研究与实现项目是某公司的重点攻关项目之一。本论文主要根据国内外的一些标准,如MISRA、ISO 9899等,同时根据航天型号软件的特点,总结在测试和走查过程中的经验、归零报告、典型案例、型号质量保证大纲和国军标等,编写适用于航天型号软件的C语言安全性编制规范,实现根据规范对型号软件进行静态分析和规则检查的工具软件。本论文结合航天型号软件的自身特点,介绍了C安全性规则的研究和制定,以及分析工具软件的设计和完成。本文的主要工作如下:1. 结合相关标准,通过对运载火箭和弹道导弹共5个型号系列,14个型号,36个批次,5种类型(如飞行控制软件、利用系统软件、程配器软件、安控器软件、点火软件)共60多个嵌入式软件(源代码的总和超过30多万行)进行的代码走查和动态功能确认测试,对建议和评价部分进行分析和总结,定义符合航天型号软件自身特点的C语言安全性编制规范,根据规范的执行方式分为强制类和推荐类。2.结合编译原理的理论,基于gcc的技术,完成C安全性分析工具的设计与实现,主要完成C语言软件的静态分析和规则检查功能。3.主要采用的技术手段包括:采用状态机原理对源程序进行扫描,通过词法和语法分析生成多个供安全性分析时所使用的符号表,最终完成规范检查。实现代码约1万行。本软件各部分经过测试,并在部分型号软件中得到应用,运行稳定可靠,完成了设计要求。