Journal Article10.1109/TSE.2018.2867847
Software Configuration Engineering in Practice Interviews, Survey, and Systematic Literature Review
64
TL;DR: It is found 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.
read more
Abstract: 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
A survey of research hotspots and frontier trends of recommendation systems from the perspective of knowledge graph
TL;DR: This paper takes the literature data related to the recommendation system theme from 2009 to 2018 and included in the core collection of Web of Science database as the research object, and utilizes bibliometric methods to analyze the theme of recommendation system.
115
Learning Software Configuration Spaces: A Systematic Literature Review
Juliana Alves Pereira,Hugo Martin,Mathieu Acher,Jean-Marc Jézéquel,Goetz Botterweck,Anthony Ventresque +5 more
TL;DR: The findings from this systematic review show that the potential application objective is important; there are a vast number of case studies reported in the literature from the basis of several domains and software systems and calls to further investigate the synergies between artificial intelligence and software engineering.
78
Promote-pl: a round-trip engineering process model for adopting and evolving product lines
Jacob Krüger,Wardah Mahmood,Thorsten Berger +2 more
- 19 Oct 2020
TL;DR: An updated process model for engineering software product lines, based on recent literature as well as experiences with industrial partners, is presented, which offers contemporary guidance for product-line engineers developing and evolving platforms, and inspires researchers to build novel methods and tools aligned with current practice.
45
Understanding and discovering software configuration dependencies in cloud and datacenter systems
Qingrong Chen,Teng Wang,Owolabi Legunsen,Shanshan Li,Tianyin Xu +4 more
- 08 Nov 2020
TL;DR: The results show that configuration dependencies are more prevalent and diverse than previously reported and should henceforth be considered a first-class issue in software configuration engineering.
A Survey of Software Log Instrumentation
Boyuan Chen,Zhen Ming Jiang +1 more
TL;DR: There are two phases in software logging: log instrumentation and log messages, which are used widely in many software systems during software development and field operation.
40
References
Performing systematic literature reviews in software engineering
David Budgen,Pearl Brereton +1 more
- 28 May 2006
TL;DR: This tutorial is designed to provide an introduction to the role, form and processes involved in performing Systematic Literature Reviews, and to gain the knowledge needed to conduct systematic reviews of their own.
5.8K
•Book
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
Jez Humble,David Farley +1 more
- 27 Jul 2010
TL;DR: This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users, and introduces state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization.
1.1K
The GHTorent dataset and tool suite
Georgios Gousios
- 18 May 2013
TL;DR: The GHTorent project has been collecting data for all public projects available on Github for more than a year, and the dataset details and construction process are presented.
620
Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints: A Greedy Approach
TL;DR: A family of greedy CIT sample generation algorithms that exploit calculations made by modern Boolean satisfiability (SAT) solvers to prune the search space of the CIT problem are developed.
361
The sorting techniques: a tutorial paper on card sorts, picture sorts and item sorts
Gordon Rugg,Peter McGeorge +1 more
TL;DR: The main sorting techniques are described, a detailed tutorial on one variety (repeated single‐criterion sorts) is provided, and guidelines for choice and sequencing of techniques are given.
296