Detailed program

All papers are available in the ACM Digital Library.

  • Activities and Costs of Re-Engineering Cloned Variants into an Integrated Platform (Jacob Krüger, Thorsten Berger)
  • Causes of Merge Conflicts: A Case Study of ElasticSearch (Wardah Mahmood, Moses Chagama, Thorsten Berger, Regina Hebig)
  • Engineering Support for Variability Modeling for the Context-Sensitive Reconfiguration of Collaborative Manufacturing Systems (Birte Caesar)
  • Evaluating #SAT Solvers on Industrial Feature Models (Chico Sundermann, Thomas Thüm, Ina Schaefer)
  • Excellence in Variant Testing (Holger Schlingloff, Mehrdad Saadatmand, Peter M. Kruse)
  • EXtracting Product Lines from vAriaNTs (EXPLANT) (Jacob Krüger, Sebastian Krieter, Gunter Saake, Thomas Leich)
  • Fast Static Analyses of Software Product Lines - An Example With More Than 42,000 Metrics (Sascha El-Sharkawy, Adam Krafczyk, Klaus Schmid)
  • Feature Identification for Engineering Model Variants in Cyber-Physical Production Systems (Kristof Meixner, Rick Rabiser, Stefan Biffl)
  • FeatureCoPP: Unfolding Preprocessor Variability (Kai Ludwig, Jacob Krüger, Thomas Leich)
  • Generating Attributed Variability Models for Transfer Learning (Johannes Dorn, Sven Apel, Norbert Siegmund)
  • Mapping Features to Automatically Identified Object-Oriented Variability Implementations - The case of ArgoUML-SPL (Johann Mortara, Xhevahire Tërnava, Philippe Collet)
  • On the Proposal and Evaluation of a Test-enriched Dataset for Configurable Software Systems (Fischer Ferreira, Gustavo Vale, Eduardo Figueiredo, João Paulo Diniz)
  • SMT-Based Variability Analyses in FeatureIDE (Joshua Sprey, Chico Sundermann, Sebastian Krieter, Michael Nieke, Jacopo Mauro, Thomas Thüm, Ina Schaefer)
  • STARS: Software Technology for Adaptable and Reusable Systems PhD Research Project (Edilton Santos, Gilles Perrouin, Pierre-Yves Schobbens)
  • Structurally Evolving Component-Port-Connector Architectures of Centrally Controlled Systems (Jörg Christian Kirchhof, Bernhard Rumpe, David Schmalzing, Andreas Wortmann)
  • Syntax-Preserving Slicing of C-Based Software Product Lines: An Experience Report (Lea Gerling, Klaus Schmid)
  • Towards Iterative Software Product Line Engineering with Incremental Multi-Variant Model Transformations (Sandra Greiner, Bernhard Westfechtel)
  • Towards Projectional Editing for Model-based SPLs (Dennis Reuling, Christopher Pietsch, Udo Kelter, Timo Kehrer)
  • Using Variability Modeling to Support Security Evaluations: Virtualizing the Right Attack Scenarios (Andy Kenner, Stephan Dassow, Christian Lausberger, Jacob Krüger, Thomas Leich)
  • Variability meets Security: Quantitative Security Modeling and Analysis of Highly Customizable Attack Scenarios (Maurice H. ter Beek, Axel Legay, Alberto Lluch Lafuente, Andrea Vandin)
  • Variational Correctness-by-Construction (Tabea Bordis, Tobias Runge, Alexander Knüppel, Thomas Thüm, Ina Schaefer)
  • Recovering Variability Information from Source Code of Clone-and-Own Software Systems (Alexander Schlie, Sandro Schulze, Ina Schaefer)
  • YASA: Yet Another Sampling Algorithm (Sebastian Krieter, Thomas Thüm, Sandro Schulze, Thomas Leich, Gunter Saake)

Andrzej Wąsowski

ITU Copenhagen

Dependency Bugs: The Dark Side of Variability, Reuse and Modularity

Slides

A dependency bug is a software fault that manifests itself when accessing an unavailable asset. Dependency bugs are pervasive and we all hate them. But why do they appear?

I will present a case study of dependency bugs in the Robot Operating System (ROS). From one point of view, ROS is a highly general distributed architecture for building robotics systems, supported by a communication middleware, and a large number of reusable and configurable components. We will discuss results of a qualitative (N=78) and quantitative (N=1354) analyses of bug reports in ROS. We will contrast this with 19553 reports in top 30 GitHub projects. A definition and a taxonomy of dependency bugs emerges from these data. We find that these bugs are surprisingly pervasive, and very annoying. As many as 15% (!) of all reported bugs are dependency bugs. They also contribute tremendously to the (possibly incorrect) perception of new developers that the system is unstable, unpredictable, or hard to use.

It seems that dependency problems are an inherent cost paid for software modularity and reuse. Yet, we rarely discuss them when we evaluate our research ideas and tools. They can be considered as a technical debt introduced by generality of software architectures. A debt that is growing, more decoupled the software becomes — when components evolve at various speeds and are controlled by separate maintainers. Perhaps we should include this cost as an explicit criterion in evaluation of reuse ideas in software. Perhaps this is a cost worth paying for the benefits.

On the other hand, dependency bugs do not seem to be impossible to combat. We have built simple lightweight linters to find some of them. Lightweight tools can find dependency bugs efficiently, although it is challenging to decide which tools to build and difficult, hopefully not impossible, to build general tools. Perhaps the VAMOS community can help both building tools that are finding and eliminating dependency problems, and by identifying the general architectures, or ecosystems organizations, that minimize the number of dependency problems without loosing the agility.

Joint work with: Anders Fischer Nielsen, Zhoulai Fu (IT University of Copenhagen), Ting Su (ETH Zurich). Partially sponsored by European Commission through H2020 ROSIN Grant No. 732287.

Short Bio

Andrzej Wąsowski works with design and use of technologies that improve quality of software, including issues such as correctness and maintainability. He has worked extensively with software product line methods-ways to develop software for similar products at lower cost but with higher quality. He has collaborated with open source projects (Linux kernel and ROS among others) and with industry. Currently, he is investigating quality assurance methods for robotics platforms, the privacy and information flow in machine learning programs, and generating patches for locking bugs in the Linux kernel.

Andrzej Wąsowski is a professor of Software Engineering at IT University in Copenhagen (ITU). He holds an MSc degree from Warsaw University of Technology and a PhD degree from ITU. He has previously held visiting positions at Aalborg University (Denmark), INRIA Rennes (France) and University of Waterloo (Canada).


Nelly Bencomo

Aston University

Next Steps in Variability Management due to Autonomous Behaviour and Runtime Learning

Due to uncertainty, contemporary variability models face the challenge of representing runtime variability to allow the modification of variation points during the system's execution, and underpin the automation of the system's reconfiguration. I argue that the runtime representation of feature models (i.e. the runtime model of features) is required to automate the decision making.

Software automation and adaptation techniques have traditionally required a priori models for the dynamic behaviour of systems. With the uncertainty present in the scenarios involved, the a priori model is difficult to define. Even if foreseen, its maintenance is labour-intensive and, due to architecture decay, it is also prone to get out-of-date. Different techniques such as machine learning, or mining software component interactions from system execution traces can be used to build a runtime feature model, which is in turn used to analyze, plan, and execute adaptations, or synthesize emergent software on the fly.

Another well-known problem posed by the uncertainty that characterizes autonomous systems is that different stakeholders (e.g. end users, operators and even developers) may not understand them due to the emergent behaviour. In other words, the running system may surprise its customers and/or developers. The lack of support for explanation in these cases may compromise the trust to stakeholders, who may eventually stop using a system. I speculate on the issue that variability models can offer great support for (i) explanation to understand the diversity of the causes and triggers of decisions during execution and their corresponding effects using traceability, and (ii) better understand the behaviour of the system and its environment.

An extension and potentially reframe of the techniques associated with variability management may be needed in order to help taming uncertainty and also, support explanation and understanding of the systems. The use of new techniques, such as machine learning, exacerbates the current situation. However, at the same time machine learning techniques can also help and be used, for example, to explore the variability space as members of the Research Community VaMOS have already recognised. What else can the community do to face the challenges associated?

I also argue that we need to meaningfully incorporate techniques from areas such as artificial intelligence, machine learning, optimization, planning, decision theory, and bio-inspired computing into our variability management techniques to provide explanation and management of the diversity of decisions, their causes and the effects associated. My own previous work has progressed to reflect what was discussed above. I would like to share thoughts about it and hear the feedback from the VaMOS community.

My research is joint work over the years with different collaborators and co-authors, including my own research students. Hopefully they have been acknowledged in the References appearing below. Partially sponsored by The Lerverhulme Trust Fellowship "QuantUn: quantification of uncertainty using Bayesian surprises" (Grant No. RF-2019-548/9) and the EPSRC Research Project Twenty20Insight (Grant No. EP/T017627/1) .

Short Bio

Nelly Bencomo is a Senior Lecturer in the CS Research Group in Aston University, in Birmingham, UK. Before joining Aston University, Nelly was a Marie-Curie Fellow in Inria, France (2011-2013). Nelly's research spans Software Engineering and Self-adaptive and Autonomous Systems. In Software Engineering, Nelly is best known for her work on decision-making under uncertainty, requirements-aware systems and runtime models. She is a recipient of a Leverhulme Fellowship in the UK (2019-2020). She has also received the Best Paper awards in the international Conferences MODELS and RE (both in 2019) and also other previous nominations. Nelly has Chaired the conferences such as SEAMS 2014 and ICAC 2018. She has also run and founded several workshops such as AIRE (Workshop on the synergies of AI and RE) and the Requirements@run.time in the RE Conference and, also the workshop Models@run.time (in the MODELS Conference). Currently, Nelly's research focuses on decision-making under uncertainty and explanation using machine learning techniques. As such, she currently leads the research projects and grants Quantum using Bayesian Surprises (2019-2020, Leverhulme, UK and Inria, France ) and Twenty20Sight (2020-2023, EPSRC, UK).

E037 - Faculty of Computer Science, Otto-von-Guericke Unversity Magdebrug

    09:00-17:30:    MODEVAR Pre-Conference Event (free of charge, please indicate during the registration whether you wan to attend)

  • 08:15-08:45 Registration
  • 08:45-09:00 Opening
  • Keynote 1 (chair: Maxime Cordy)
  • 09:00-10:15 Dependency Bugs: The Dark Side of Variability, Reuse and Modularity (Andrzej Wąsowski)
  • 10:15-10:45 MIP Award 1
  • 10:45-11:15 Coffee break
  • Session 1: Counting, Sampling and Learning (chair: Perrouin Gilles)
    • 11:15-11:40 Evaluating #SAT Solvers on Industrial Feature Models (Chico Sundermann, Thomas Thüm, Ina Schaefer)
    • 11:40-12:05 YASA: Yet Another Sampling Algorithm (Sebastian Krieter, Thomas Thüm, Sandro Schulze, Thomas Leich, Gunter Saake)
    • 12:05-12:30 Generating Attributed Variability Models for Transfer Learning (Johannes Dorn, Sven Apel, Norbert Siegmund)
    • 12:30-13:00 Discussion
  • 13:00-14:00 Lunch
  • Session 2: Automated Reasoning (chair: David Benavides)
    • 14:00-14:25 SMT-Based Variability Analyses in FeatureIDE (Joshua Sprey, Chico Sundermann, Sebastian Krieter, Michael Nieke, Jacopo Mauro, Thomas Thüm, Ina Schaefer)
    • 14:25-14:50 Variational Correctness-by-Construction (Tabea Bordis, Tobias Runge, Alexander Knüppel, Thomas Thüm, Ina Schaefer)
    • 14:50-15:15 Fast Static Analyses of Software Product Lines - An Example With More Than 42,000 Metrics (Sascha El-Sharkawy, Adam Krafczyk, Klaus Schmid)
    • 15:15-15:45 Discussion
  • 15:45-16:15 Coffee break
  • Session 3: Beyond the Borders (chair: Rafael Capilla)
    • 16:15-16:40 Causes of Merge Conflicts: A Case Study of ElasticSearch (Wardah Mahmood, Moses Chagama, Thorsten Berger, Regina Hebig)
    • 16:40-17:05 Using Variability Modeling to Support Security Evaluations: Virtualizing the Right Attack Scenarios (Andy Kenner, Stephan Dassow, Christian Lausberger, Jacob Krüger, Thomas Leich)
    • 17:05-17:30 Variability meets Security: Quantitative Security Modeling and Analysis of Highly Customizable Attack Scenarios (Maurice H. ter Beek, Axel Legay, Alberto Lluch Lafuente, Andrea Vandin)
    • 17:30-18:00 Discussion
  • 18:00-20:00 Reception (conference site)
  • 08:45-09:15 Registration
  • Keynote 2 (chair: Mathieu Acher)
  • 09:15-10:30 Next Steps in Variability Management due to Autonomous Behaviour and Runtime Learning (Nelly Bencomo)
  • 10:30-11:00 Coffee break
  • Session 4: Project Dissemination (chair: Rick Rabiser)
    • 11:00-11:30 Excellence in Variant Testing (Holger Schlingloff, Mehrdad Saadatmand, Peter M. Kruse)
    • 11:30-12:00 EXtracting Product Lines from vAriaNTs (EXPLANT) (Jacob Krüger, Sebastian Krieter, Gunter Saake, Thomas Leich)
  • Session 5: Student Talks
    • 12:00-12:30 Engineering Support for Variability Modeling for the Context-Sensitive Reconfiguration of Collaborative Manufacturing Systems (Birte Caesar)
    • 12:30-13:00 STARS: Software Technology for Adaptable and Reusable Systems PhD Research Project (Edilton Santos, Gilles Perrouin, Pierre-Yves Schobbens)
  • 13:00-14:00 Lunch
  • Session 6: Variability in the Field (chair: Maurice ter Beek)
    • 14:00-14:25 On the Proposal and Evaluation of a Test-enriched Dataset for Configurable Software Systems (Fischer Ferreira, Gustavo Vale, Eduardo Figueiredo, João Paulo Diniz)
    • 14:25-14:50 Syntax-Preserving Slicing of C-Based Software Product Lines: An Experience Report (Lea Gerling, Klaus Schmid)
    • 14:50-14:15 Feature Identification for Engineering Model Variants in Cyber-Physical Production Systems (Kristof Meixner, Rick Rabiser, Stefan Biffl)
    • 15:15-15:45 Discussion
  • 15:45-16:15 Coffee break
  • Session 7: Reverse- and Re-engineering (chair: José Galindo)
    • 16:15-16:40 Recovering Variability Information from Source Code of Clone-and-Own Software Systems (Alexander Schlie, Sandro Schulze, Ina Schaefer)
    • 16:40-17:05 Mapping Features to Automatically Identified Object-Oriented Variability Implementations - The case of ArgoUML-SPL (Johann Mortara, Xhevahire Tërnava, Philippe Collet)
    • 17:05-17:30 Activities and Costs of Re-Engineering Cloned Variants into an Integrated Platform (Jacob Krüger, Thorsten Berger)
    • 17:30-18:00 Discussion
  • 18:30-19:30 Tram ride to dinner location (lightweight drinks provided)
  • 19:30-01:00 Conference dinner (house of craftmen)
  • 9:00-09:30 MIP Award 2
  • Session 8: Evolution and Maintenance (chair: Mathieu Acher)
  • 09:35-10:00 Towards Iterative Software Product Line Engineering with Incremental Multi-Variant Model Transformations (Sandra Greiner, Bernhard Westfechtel)
  • 10:00-10:30 Coffee break
  • Session 8: Evolution and Maintenance (continued)
    • 10:30-11:55 Structurally Evolving Component-Port-Connector Architectures of Centrally Controlled Systems (Jörg Christian Kirchhof, Bernhard Rumpe, David Schmalzing, Andreas Wortmann)
    • 10:55-11:20 FeatureCoPP: Unfolding Preprocessor Variability (Kai Ludwig, Jacob Krüger, Thomas Leich)
    • 11:20-11:45 Towards Projectional Editing for Model-Based SPLs (Dennis Reuling, Christopher Pietsch, Udo Kelter, Timo Kehrer)
    • 11:45-12:15 Discussion
  • 12:15-12:20 Closing
  • 12:30-14:20 Lightweight Lunch