Configurability is an essential attribute of modern complex software systems to achieve flexible customization and rapid deployment. With the increasing scale and complexity of software, configuration errors are giving rise to more and more serious anomalies in software functionality and non-functional properties, and they have become one of the major causes for the failure of many systems, including large-scale web applications and cloud computing platforms, in recent years. Proactive detection of configuration errors is of great significance for detecting errors as early as possible, reducing and even preventing serious damage, and assuring application service quality and reputation. Meanwhile, it poses significant technical challenges as well. To efficiently detect a large number of configuration options, in this project, we propose an approach to proactive detection of configuration errors based on automatic code generation. By acquiring and analyzing configuration rules and other key configuration data, we generate and implant error-detection programs automatically. To address the implicit anomalies in non-functional properties of software systems, we build the prediction models using benchmark testing and machine learning. Based on the theory of Boolean functions, we determine the impact of configuration options and their complex interactions on non-functional properties. We further study the change impact analysis and the evolution patterns for frequent configuration updates, and we propose version probes to accomplish symbolic detection of value inconsistency during configuration online update. This project provides the key technology and tools for tackling configuration errors effectively from a new perspective of early and proactive detection, which improves the reliability and availability of complex software in the application scenarios of deployment, upgrade and migration.
可配置性是现代复杂软件系统实现灵活定制和快速部署的基本属性。随着软件的规模和复杂度日益增加,配置错误所导致的软件功能故障和非功能属性异常日益严重,已成为近年来大规模网络应用、云计算平台等系统失效的主要原因之一。主动检测配置错误对及早发现错误、降低甚至避免严重损害、保障应用服务质量和声誉具有重要意义,同时也带来了显著的技术挑战。为了高效地检测大量配置项,本项目提出基于代码自动生成的配置错误主动检测方法,通过获取和分析配置规则等关键数据,自动生成和植入错误检测程序;针对隐蔽的非功能属性异常,通过基准测试和机器学习建立预测模型,基于布尔函数理论推断配置项及其交互对非功能属性的影响;进而研究配置变更的影响分析方法和演化模式,提出版本探针用于符号化检测配置在线更新时取值的不一致。本项目从早期主动检测的新视角为有效处理配置错误提供技术和工具,提高复杂软件在部署、升级和迁移等应用场景中的可靠性和可用性。
随着软件的规模和复杂度日益增加,复杂软件系统中众多的配置项、复杂的配置规则、隐蔽的非功能属性异常以及频繁的配置变更为配置错误的主动检测带来了显著的技术挑战。如何设计软件配置错误的主动检测技术是具有挑战性的难题。本项目对错误检测的配置数据获取、高效的配置错误主动检测、面向非功能属性异常的错误检测和面向配置变更的错误检测四个方面进行了系统的研究。主要成果包括:(1)在面向错误检测的配置数据获取方面,提出分阶段的配置数据获取和管理方法,引入了一种渐进式软件配置数据采样方法和基于距离的采样方法,构建系统化的软件配置过程,以更小的代价获取更有代表性的数据,从而实现更高效的软件配置过程和数据获取。(2)在配置错误主动检测方面,通过布尔函数理论形式化表达配置项及其交互过程。设计了检查内存安全性并在Java程序运行时强制类型完整性检查的工具,提出开源软件的数据持久层代码错误检测方法,并给出提取AST结点语义表示的卷积神经网络和计算自适应权重以组合不同代码表示的代码生成方法。(3)在非功能属性异常的错误检测方面,提出了软件配置优化求解混合进化算法,包括局部搜索突变策略和精英保留策略,分析和理解配置错误所产生的影响,实现配置过程的多目标优化。借鉴了图像处理领域中的生成对抗网络来训练代码摘要模型,提出一种对抗训练框架,实现软件代码自动补全技术。(4)在面向配置变更的错误检测方面,融合基于规则和基于测试的检测方法,建立面向软件配置缺陷预测的方法,完善配置错误的静态和动态检测技术。围绕开发经验、情感特征和开发过程特征建构了一个机器学习模型以预测开发者是否受社区异味影响。利用深度学习技术生成代码深层次的程序语法语义特征,采用全局注意力机制提取出关键特征,建立软件缺陷的最优解选择策略和缺陷预测方法。基于所提出的方法系统地展开方法的实证研究,以能源大数据平台、大规模互联网应用、软件产品线、证券智能软件为典型案例,对Hadoop和Spark等云计算和大数据平台的配置项进行评估和应用验证。通过本项目研究,在国内外期刊和会议上发表学术论文45篇,其中5篇CCF A类和10篇CCF B类论文,SCI源刊27篇、申请发明专利和软著 9项。培养骨干教师3名,4名博士获得博士学位和9名硕士生获得硕士学位。
{{i.achievement_title}}
数据更新时间:2023-05-31
低轨卫星通信信道分配策略
F_q上一类周期为2p~2的四元广义分圆序列的线性复杂度
桂林岩溶石山青冈群落植物功能性状的种间和种内变异研究
基于全模式全聚焦方法的裂纹超声成像定量检测
基于图卷积网络的归纳式微博谣言检测新方法
传感网软件并发错误的动态检测与定位技术研究
基于模型检查的软件错误定位技术研究
面向软件自动修复的错误定位技术研究
情境感知自适应软件的失效分析与错误修复技术研究