Write a Blog >>
Tue 10 Nov 2020 17:09 - 17:10 at Virtual room 1 - Configuration

A large percentage of real-world software configuration issues, such as misconfigurations, involve multiple interdependent configuration parameters. However, existing techniques and tools either do not consider dependencies among configuration parameters— termed configuration dependencies—or rely on one or two dependency types and code patterns as input. Without rigorous understanding of configuration dependencies, it is hard to deal with many resulting configuration issues.

This paper presents our study of software configuration dependencies in 16 widely-used cloud and datacenter systems, including dependencies within and across software components. To understand types of configuration dependencies, we conduct an exhaustive search of descriptions in structured configuration metadata and unstructured user manuals. We find and manually analyze 521 configuration dependencies. We define five types of configuration dependencies and identify their common code patterns. We report on consequences of not satisfying these dependencies and current software engineering practices for handling the consequences.

We mechanize the knowledge gained from our study in a tool, cDep, which detects configuration dependencies. cDep automatically discovers five types of configuration dependencies from bytecode using static program analysis. We apply cDep to the eight Java and Scala software systems in our study. cDep finds 87.9% (275/313) of the related subset of dependencies from our study. cDep also finds 448 previously undocumented dependencies, with a 6.0% average false positive rate. Overall, our 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.

Tue 10 Nov
Times are displayed in time zone: (UTC) Coordinated Universal Time change

17:00 - 17:02
Talk
Configuration Smells in Continuous Delivery Pipelines: A Linter and a Six-Month Study on GitLab
Research Papers
Carmine VassalloUniversity of Zurich, Switzerland, Sebastian ProkschDelft University of Technology, Netherlands, Anna JancsoUniversity of Zurich, Switzerland, Harald GallUniversity of Zurich, Switzerland, Massimiliano Di PentaUniversity of Sannio, Italy
DOI Pre-print
17:03 - 17:04
Talk
Dimensions of Software Configuration: On the Configuration Context in Modern Software Development
Research Papers
Norbert SiegmundLeipzig University, Nicolai RuckelBauhaus-University Weimar, Janet SiegmundTU Chemnitz, Germany
DOI
17:05 - 17:06
Talk
Global Cost/Quality Management across Multiple Applications
Research Papers
Liu LiuRutgers University, USA, Sibren IsaacmanLoyola University Maryland, USA, Uli KremerRutgers University, USA
DOI
17:07 - 17:08
Talk
Inferring and Securing Software Configurations using Automated Reasoning
Visions and Reflections
Paul GazzilloUniversity of Central Florida
DOI
17:09 - 17:10
Talk
Understanding and Discovering Software Configuration Dependencies in Cloud and Datacenter Systems
Research Papers
Qingrong ChenUniversity of Illinois at Urbana-Champaign, USA, Teng WangNational University of Defense Technology, China, Owolabi LegunsenCornell University, Shanshan LiNational University of Defense Technology, China, Tianyin XuUniversity of Illinois at Urbana-Champaign, USA
DOI
17:11 - 17:30
Talk
Conversations on Configuration
Paper Presentations
Carmine VassalloUniversity of Zurich, Switzerland, Liu LiuRutgers University, Nicolai RuckelBauhaus-University Weimar, Paul GazzilloUniversity of Central Florida, Qingrong ChenUniversity of Illinois at Urbana-Champaign, USA, M: Sarah NadiUniversity of Alberta