当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Software Configuration Engineering in Practice: Interviews, Survey, and Systematic Literature Review
IEEE Transactions on Software Engineering ( IF 7.4 ) Pub Date : 2020-06-01 , DOI: 10.1109/tse.2018.2867847
Mohammed Sayagh , Noureddine Kerzazi , Bram Adams , Fabio Petrillo

Modern software applications are adapted to different situations (e.g., memory limits, enabling/disabling features, database credentials) by changing the values of configuration options, without any source code modifications. According to several studies, this flexibility is expensive as configuration failures represent one of the most common types of software failures. They are also hard to debug and resolve as they require a lot of effort to detect which options are misconfigured among a large number of configuration options and values, while comprehension of the code also is hampered by sprinkling conditional checks of the values of configuration options. Although researchers have proposed various approaches to help debug or prevent configuration failures, especially from the end users’ perspective, this paper takes a step back to understand the process required by practitioners to engineer the run-time configuration options in their source code, the challenges they experience as well as best practices that they have or could adopt. By interviewing 14 software engineering experts, followed by a large survey on 229 Java software engineers, we identified 9 major activities related to configuration engineering, 22 challenges faced by developers, and 24 expert recommendations to improve software configuration quality. We complemented this study by a systematic literature review to enrich the experts’ recommendations, and to identify possible solutions discussed and evaluated by the research community for the developers’ problems and challenges. We find that developers face a variety of challenges for all nine configuration engineering activities, starting from the creation of options, which generally is not planned beforehand and increases the complexity of a software system, to the non-trivial comprehension and debugging of configurations, and ending with the risky maintenance of configuration options, since developers avoid touching and changing configuration options in a mature system. We also find that researchers thus far focus primarily on testing and debugging configuration failures, leaving a large range of opportunities for future work.

中文翻译:

实践中的软件配置工程:访谈、调查和系统文献回顾

现代软件应用程序通过更改配置选项的值来适应不同的情况(例如,内存限制、启用/禁用功能、数据库凭据),无需修改任何源代码。根据多项研究,这种灵活性代价高昂,因为配置故障是最常见的软件故障类型之一。它们也很难调试和解决,因为它们需要大量的努力来检测在大量配置选项和值中哪些选项配置错误,同时对代码的理解也因对配置选项的值进行条件检查而受到阻碍。尽管研究人员提出了各种方法来帮助调试或防止配置失败,尤其是从最终用户的角度来看,本文回过头来了解从业者在源代码中设计运行时配置选项所需的过程、他们遇到的挑战以及他们已经或可能采用的最佳实践。通过采访 14 位软件工程专家,随后对 229 位 Java 软件工程师进行大规模调查,我们确定了与配置工程相关的 9 项主要活动、开发人员面临的 22 项挑战以及 24 条提高软件配置质量的专家建议。我们通过系统的文献综述补充了这项研究,以丰富专家的建议,并确定研究社区针对开发人员的问题和挑战讨论和评估的可能解决方案。我们发现开发人员在所有九项配置工程活动中都面临着各种各样的挑战,从创建选项开始,这通常不是事先计划的,会增加软件系统的复杂性,到配置的非平凡理解和调试,并以配置选项的风险维护结束,因为开发人员避免接触和更改配置成熟系统中的选项。我们还发现,迄今为止,研究人员主要专注于测试和调试配置故障,为未来的工作留下了大量机会。
更新日期:2020-06-01
down
wechat
bug