PALESTRANTES CONVIDADOS
Christian Kastner - Carnegie Mellon, United States
Title: Understanding Feature Interactions: From Bugs to Performance Surprises
Abstract: Feature interactions have been recognized as an important challenge in the design and implementation of configurable and extensible systems, including software product lines. At implementation level, unanticipated or incorrectly implemented interactions can show up as bugs, missing or surprising behavior, and performance anomalies. A typical scenario is: two or more optional features work well in isolation, but expose a bug if combined. For example, email encryption and email forwarding in an email system may work as expected in isolation, but emails get forwarded unencrypted by accident when combined. Interaction-related issues may affect only few configurations in a huge configuration space, which makes development, quality assurance, and maintenance challenging.
In this talk, I will give an overview on research to understand and detect interactions in highly-configurable systems, such as the Linux kernel, implemented with thousands of optional features. Recent approaches include analysis mechanisms that soundly cover large configuration spaces (type checking, static analysis, testing), machine-learning techniques to understand the observable behavior of options and interactions, as well as a new perspective on sampling strategies.
I will highlight tools that can analyze feature interactions in real systems (C, Java, PHP) and provide plenty of data and opportunity for studying interactions. We found that some notions of interactions are easy and reliable to detect, whereas others require intensive testing, family-based analyses, or sophisticated sampling. We hope that, in the long run, we are able to identify correlations between different kinds of interactions, found with different techniques, and to combine them effectively to improve detecting and managing interactions.
Short Bio: Christian Kästner is an Assistant Professor of Computer Science in the School of Computer Science at Carnegie Mellon University. He joined Carnegie Mellon in 2012, after a 2-year postdoc in the group of Klaus Ostermann at the University of Marburg. He received his PhD from the University of Magdeburg in 2010 for his work on virtual separation of concerns. For his dissertation he received the prestigious GI Dissertation Award for the best computer-science dissertation in 2010. His research focuses on quality assurance for highly-configurable systems and in understanding and managing variability-induced complexity. He combines programming-language research and software-engineering research in the areas of software product lines, feature-oriented programming, modularity, metaprogramming, software analysis, program comprehension, empirical studies of developers and development artifacts, and program transformations.
Martin Becker - Fraunhofer Institute for Experimental Software Engineering, Germany
Title: Variation Management for Software-intensive System Families
Abstract: Software developing organizations in every industry sector struggle with the increasing complexity of their system families. Among the main complexity drivers are the rising demand for customized solutions, increasing system lifetime combined with shorter technology innovation cycles. Strategic reuse approaches like platforms, product and production lines can be followed to cope with these challenges - but which is the best approach under what conditions? Along example settings from different application domains, the keynote provides an overview on practical variant and version management approaches and presents lessons learned from several variation management improvement projects of Fraunhofer IESE and beyond.
Short Bio: Martin Becker (PhD) is heading the Embedded Systems Engineering department at Fraunhofer IESE in Kaiserslautern, Germany. He holds more than 15 years of experience with reuse, product line engineering and configurable systems. Among his special interests are the elicitation and sharing of architectural knowledge in variation-rich systems, and the analysis and improvement of reuse infrastructures.