This is a talk by a guest of the Software Languages Team.
Dr. Thorsten Berger (University of Waterloo, Canada)
Mining Configuration Constraints
Software Languages Team
7 May 2015 (Thursday)
Bio of speaker
Thorsten Berger is a Postdoctoral Fellow at the University of Waterloo, Canada. His research focuses on software engineering, in particular, model-driven software engineering, empirical software engineering, static program analysis, and mining software repositories. He develops methods and tools for engineering highly configurable software, primarily in the domain of embedded/cyber-physical systems. Thorsten Berger received the PhD degree in computer science from the University of Leipzig, Germany in 2013, supported by a PhD scholarship from the German National Academic Foundation. He participated in research projects funded by the European Union, the German Federal Ministry of Education and Research, Automotive Partnership Canada, and the Ontario Research Fund for Academic Excellence. He received best-paper awards at the 2015 ACM SIGPLAN conference on MODULARITY and the 2013 European Conference on Software Maintenance and Reengineering (CSMR, now IEEE SANER).
Abstract of talk
Customization is a general trend in society. An ever-increasing diversity of hardware and many new application scenarios for software — such as cyber-physical systems — demand software systems that support variable stakeholder requirements. A common approach is to offer configuration options, set by users to customize software. Such options are rarely independent and often restricted by intricate domains arising from technical restrictions in the codebase or from domain knowledge, such as marketing or hardware dependencies.
Configuration options and configuration constraints are often described in higher-level representations, so-called variability models, which support development, analysis, and configuration of large systems. While variability models are usually manually created, evolved, and verified — can we support these processes with an automated technique?
In the talk, I will present our work on mining configuration constraints from large C codebases. We developed scalable static-analysis techniques to extract constraints, empirically evaluated their effectiveness on four large-scale systems, including the Linux kernel, and conducted a follow-up study with developers to understand the rationales behind constraints. Our results show that up to 50% of the model constraints can actually be found in the codebase, and that there are often very pragmatic rationales for introducing constraints. Time permitting, I will also talk about using the extracted constraints to synthesize variability models.