论文部分内容阅读
系统软件的开发有着调试困难、测试方法有限、开发周期长、对系统稳定性和性能影响大等特点,因此除了良好的调试手段、开发过程和编码风格之外,研究和开发保证系统软件可靠性的工具成为一种必然。
本文系统地调研了保证软件可靠性的方法,从代码覆盖率、对人力的需求、适用场景等角度讨论了它们的异同。并且,本文通过研究Linux2.2内核约10万行的补丁文件以及有关C语言编码错误分类的文献,讨论了Linux内核等系统软件中容易出现的错误,并作了分类。基于以上两方面的调研和讨论,本文从软件可靠性方法中选取了一种适应于系统软件特点的方法—基于编译的静态方法,并在lcc编译器的宏预处理器、语法分析部分,Ctree和Ctool前端以及贝尔实验室的UNO静态工具的基础上设计、实现了一个静态代码检查工具:PKUnityCC。PKUnityCC工具能够分层次地在宏预处理、语法分析、类型检查以及问题域相关的语义分析等层面上检查系统软件的源代码,从中找出落入本文分类的可能的编码错误。从设计可以看出,PKUnityCC同样可以适用于应用软件。
根据北大众志网络计算机软件系统的特点,PKUnityCC工具对UNIQBIOS,Linux内核以及Rdesktop软件进行了检查,并且发现了其中的编码错误。实验证明,PKUnityCC工具能够较有效地检查系统软件源代码的可能错误。