As widely deployed in many aspects of our daily life, the reliability and security of the open-source software play a vital role in many key areas of the national economy and defense construction. However, the open-source software is hard to diagnose and to recover by analyzing log information and thus results in failure due to its misconfiguration. Based on the theory of code quality, code analysis and verification of software, we initiate this proposal to investigate the methodology of improving the open-source software code quality and the tool of diagnosing software failure. Our work focuses on tackling several fundamental issues in regarding of (1) how to quantitively analyze the log messages and to summarize their characteristic; (2) how to automatically identify locations of appending extra logging messages as well as to enhance contents of existing logs; (3) how to identify characteristics of misconfigurations; (4) how to automatically detect and rectify misconfigurations in real-time. According to the investigation of the coding specification and quality of the open-source software as well as the implementation of prototype tool which provide the highly automatic improvement of coding quality, we can assure the code quality of the open-source software and improve the stability, reliability and security of the running system.
开源软件的使用呈爆炸式增长,其可靠性和安全性对于国民经济和国防现代化建设中的许多关键领域起到重要作用。然而利用现有的日志信息进行软件故障重现和诊断难度大、效率低;其配置错误也成为导致软件故障的一个重要因素。本课题探索以软件代码质量管理和软件分析、验证方法为理论指导,研究提高开源软件代码质量的方法和故障诊断工具。具体包括:(1)研究日志定量分析方法,总结日志编写特征;(2)研究日志添加点定位和内容增强自动化方法;(3)研究错误配置特征分析方法;(4)研究错误配置实时检测和纠正方法。通过探索开源软件的代码编程规范和质量管控,建立自动化程度较高的代码质量提升工具原型,从而为开源软件代码质量保证提供有效手段,提高系统运行的稳定性,可靠性和安全性。
本课题根据软件代码质量管理和软件分析、验证方法为理论指导,研究提高开源软件代码质量的方法和故障诊断工具。项目已经完成原定计划,成果主要包括:(1)从日志特征分析、基于日志的故障诊断、日志的增强三方面综述了日志研究的现状。通过对几种常用的大规模开源软件的日志进行调研,发现了一些日志相关的特征和规律,以及现有工具难以解决的问题。论文还对未来的研究工作进行展望,并分析了可能面对的挑战。(2)提出了一个通过挖掘大规模软件的日志数据来判断日志质量的量化方法。同时实现了一个日志自动分类级别工具LogGrad,能够对系统日志的质量进行分类。实验结果表明在8个开源项目上,真实世界的日志编写实践和LogGrad的结果相似度达到0.7。(3)提出了一个不需要理解源代码中复杂的上下文语意而利用配置内容来提取自动化映射的方法ConfMapper,并通过深度理解八个流行的开源软件挖掘共有的特性。该方法可以实现接近100%的配置映射准确率的同时,提取91.5%的潜在配置选项。(4)提出一个利用总结典型开源软件配置共性,从而可以自动生成提取语法和语意约束错误配置 ConfTest来检测软件对配置错误的反应能力。通过对4个开源软件深入分析,结果显示可以覆盖总共的1582种选项的96%。生成的错误约束更加细粒度和精确,比以往的工具在错误反应上有3倍的提升。(5)对业界流行的5个开源软件利用手工进行详尽的分析并总结配置约束的相关规律。其中发现了统计学上的配置约束规律,特定配置特点和提取配置困难共性。基于这些发现,提出了一系列用于自动化约束特征提取的建议。(6)提出一个用于定位错误处理代码的自动化方法IdentEH,该方法利用静态程序分析和机器学习算法,实验结果表明在识别错误处理代码的准确度上能达到0.85。项目总共发表论文 8 篇,其中包括顶级期刊 软件学报等,以及 IEEE BIGDATACPS,IEEE EASE,IEEE SEKE等重要国际会议。全部成果进入 SCI 检索共1 篇,进入 EI 检索 7 篇。
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
拥堵路网交通流均衡分配模型
安全关键软件的故障诊断、隔离与恢复技术研究
基于SaaS软件运行日志分析的软件性能问题的在线识别和诊断方法
基于群体记忆的开源软件缺陷预测、诊断和定位研究
代码大数据驱动的大规模软件故障诊断技术研究