The 9th International Workshop on Variability Modelling of Software-Intensive Systems will be in Hildesheim, Germany, from Jan. 21-23 2015. I've always enjoyed participating in this workshop, as it's one of the best community venues in variability modeling, with a surprisingly high impact (two of my VaMoS papers have already been cited 83 and 56 times, respectively). So consider submitting until Nov. 10. 2014!
I am co-organizing this year's FOSD'14 workshop, which is co-located with the ASE, SLE, and GPCE conference. The workshop will take place on September 14 in Västerås, Sweden. We invite paper submissions on the theory and practice of engineering feature-oriented systems.
Feature orientation is an emerging paradigm of software development. It aims at composing large-scale software systems from a set of units of functionality called features. The key idea of feature-oriented software development (FOSD) is to emphasize the similarities of a family of software systems in an application domain, with the goal of reusing software artifacts. Features become the primary entities to distinguish the different members of a family. However, without proper techniques and practices, the decomposition into features gives rise to a combinatorial explosion of feature combinations and interactions, not to mention any problems arising from features that cross-cut the source code.
The FOSD workshop provides a forum to discuss the theory and practice of engineering, maintaining, and analyzing feature-oriented systems. The workshop will be run as a one-day, highly interactive event. It comprises a keynote "Can Features have Interfaces?" by Joanne M. Atlee (University of Waterloo, Canada), paper sessions with dedicated discussants, discussion sessions, demonstrations, and lightning talks.
- Thorsten Berger (University of Waterloo, Canada)
- Márcio Ribeiro (Federal University of Alagoas, Brazil)
- Christian Kästner (Carnegie Mellon University, USA)
- Sven Apel (University of Passau, Germany)
Software Product Line Engineering is about having a fully integrated platform. This idea is often criticized by industry as being unrealistic, with code cloning being tough (and not economic) to fully abandon. So how can we combine the benefits of cloning and systematic variability management of an integrated platform? Using a virtual platform! What the idea behind that is and how it can be accomplished -- see our recently accepted ICSE'14 paper! It is joint work with Michał Antkiewicz, Wenbin Ji, Krzysztof Czarnecki, Thomas Schmorleiz, Ralf Lämmel, Stefan Stanciulescu, Andrzej Wasowski, and Ina Schäfer.
To what extent can we reverse-engineer variability models from code? Our paper investigating this question will appear at ICSE'14. It's joint work with Sarah Nadi, Christian Kästner, and Krzysztof Czarnecki, and uses some heavy machinery (FarCE, TypeChef) to extract feature constraints from C codebases.
Highly configurable systems offer configuration options for tailoring software to specific needs. Not all combinations of configuration options are valid though, and constraints arise for technical or nontechnical reasons. To reason about configurations, it is valuable to explicitly describe the constraints in a variability model. To automate creating variability models, we need to understand the origin of such configuration constraints. We propose an approach to automatically extract configuration constraints from C code based on build-time errors and a novel feature-effect heuristic.We analyze the feasibility of our approach on four highly configurable open-source systems, and use the results to quantitatively and qualitatively study the various kinds of constraints in existing variability models. Both our extraction heuristics are highly accurate (93% and 77% respectively). We find that 19% of the variability model constraints are statically reflected in the code. However, many of the remaining constraints require expert knowledge or more expensive analyses. This suggests that while substantial parts of variability models can be efficiently reverse-engineered from the codebase, other parts contain significant domain and expert knowledge not readily reflected in the code. We argue that our approach, tooling, and experimental results support researchers and practitioners working on variability model re-engineering, evolution, and consistency-checking techniques.
What is the relationship between variability models and code? While we've worked on exact approaches to compare constraints, we've also explored using metrics to improve this understanding. In a little position paper (joint work with Jianmai Guo) for the VaMoS'14 workshop, we defined low-level metrics that measure core aspects of models (model shape, feature representation, constraints, and dependencies). Using correlation analysis (Spearman's rank correlation coefficient), we show that we can find insights about inherent design characteristics of models, partly also about their relationship to code. Take a look at the paper, the presentation, and the tool and datasets.
Our paper "A Large Scale Empirical Study on Software Reuse in Mobile Apps" has been accepted for the IEEE Software Journal (special issue on Next Generation Mobile Computing) and is currently available as a preprint. The paper is joint work with Israel J. Mojica, Bram Adams, Meiyappan Nagappan, Steffen Dienst, and Ahmed Hassan.
Mobile apps are software products developed to run on mobile devices. In less than five years, the number of apps has grown exponentially to more than one million in the largest mobile app stores. One possible explanation for this exponential growth could be the adoption of well-proven software engineering practices, in particular of software reuse, despite the often conjectured lack of training of mobile app developers. We performed a study on hundreds of thousands of Android apps across 30 different categories to analyze software reuse in the Google Play app store. We found the following about three kinds of reuse: (a) 18.75% of Android app classes inherit from a base class in the Android API, and 35.78% of the classes inherit from a domain-specific base class; (b) 84.23% of classes across all categories of mobile apps occur in two or more apps; (c) 17,109 mobile apps were a direct copy of another app. Overall, app developers perform substantial software reuse, which means that they may benefit from increased productivity, yet at the same time become more dependent on the quality of the reused apps and libraries.
I've moved to the University of Waterloo in Canada to continue my postdoctoral research. As a member of the Generative Software Development Lab and the Network for the Engineering of Complex Software-Intensive Systems for Automotive Systems (NECSIS), I'll continue my work on variability management and modeling, but slightly more focused on the automotive domain -- while keeping a close collaboration with my previous home, the IT University of Copenhagen in Denmark.
I'm in the Program Committee of the 8th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'14), taking place in Nice this year. Consider publishing to one of the best community venues in the area of variability modeling and management.
Our paper "A Study of Variability Models and Languages in the Systems Software Domain" (currently available as a preprint) was accepted for the IEEE Transactions on Software Engineering journal. It is joint work with Steven She (Univ. of Waterloo), Rafael Lotufo (Univ. of Waterloo), Andrzej Wasowski (ITU Copenhagen), and Krzysztof Czarnecki (Univ. of Waterloo). Together with the publication, we make all the raw data (diagrams, aggregated statistics, and R scripts) and the extracted variability models of the Linux kernel, the eCos operating system, and eleven systems software projects available. The Kconfig models can be processed using Steven's LVAT toolsuite, and the CDL models using my CDLTools project.
Variability models represent the common and variable features of products in a product line. Since the introduction of FODA in 1990, several variability modeling languages have been proposed in academia and industry, followed by hundreds of research papers on variability models and modeling. However, little is known about the practical use of such languages. We study the constructs, semantics, usage, and associated tools of two variability modeling languages, Kconfig and CDL, which are independently developed outside academia and used in large and significant software projects. We analyze 128 variability models found in twelve open source projects using these languages.
Our study (1) supports variability modeling research with empirical data on the real-world use of its flagship concepts. However, we (2) also provide requirements for concepts and mechanisms that are not commonly considered in academic techniques, and (3) challenge assumptions about size and complexity of variability models made in academic papers. These results are of interest to researchers working on variability modeling and analysis techniques and to designers of tools, such as feature dependency checkers and interactive product configurators.