This is the list of accepted tutorials:
Testing Variability-Intensive Systems
Gilles Perrouin, Xavier Devroey and Maxime Cordy
Cost-effective techniques to test software in the presence of variability are popular in academia but are not systematically applied in practice yet. This half-day tutorial offers an overview of the state of the art of some of the hottest topics in the field such as (dis)similarity & search-based testing, model-based testing or mutation analysis. We will present the most significant results obtained during the last five years ranging from conceptual foundations to readily usable tools. In particular, we will rely on VIBeS, a model-based open source framework we developed to test product lines behaviour. We will illustrate all these concepts on JHipster, a variability-intensive web development stack.
Domain-Specific Languages and Model Transformations for Software Product Line
Javier Troya, Juha-Pekka Tolvanen and Sergio Segura
This tutorial introduces and demonstrates the use of Model-Driven Engineering in Software Product Lines. In particular, it teaches participants about domain-specific languages, metamodeling and modeling, and where these techniques can be best used (and where not). Along with modeling, tutorial teaches various model transformation approaches and how they can be effectively used to bring software product lines to a different domain and to optimize them. The use of models for handling product variation is demonstrated with real-life examples from various industries and product lines.
Feature-Based Systems and Software Product Line Engineering: PLE for the Enterprise
Charles Krueger and Paul Clements
This tutorial is to introduce a product line engineering solution, including tools and methods, that is the subject of an upcoming ISO standard and known as “Feature-Based Systems and Software Product Line Engineering.” This approach has been successfully applied in industry for many years with numerous case studies on the record. Now its usage is also spreading beyond the traditional engineering realm, where PLE is best known, and across the entire enterprise in areas such as product marketing, portfolio planning, manufacturing, supply chain management, product sales, product service and maintenance, Internet-of-Things, resource planning, and much more.
Using Feature Models to Manage Variability and Requirements Reuse
Danilo Beuche
The tutorial aims at providing the essential knowledge for managing variability in product lines using feature models, with a special focus on creating and maintaining reusable requirements with the help of feature models. It explains the concept of feature models and their role in product line engineering, such as how feature models can be used to control development and also product configuration. Participants will learn how to build feature models from typically available sources of variability information; how to link feature models with requirements and keep reusable requirements “alive”. Besides explaining methods also information about implementing the methods with standard tools is given where applicable. Typical pitfalls will be discussed. The tutorial is highly interactive and includes several practical exercises for the attendees. Prior knowledge of feature modeling is not required. Experience in systems and/or software engineering is helpful. A computer is not required, but can be brought, feature modeling software (pure::variants) will be provided in this case.
Variability Modeling with EASy-Producer
Klaus Schmid and Holger Eichelberger
The tutorial aims at introducing the EASy-Producer product line environment to the participants. EASy-Producer is an open-source research toolset for engineering product lines and variability-rich software ecosystems. It has been applied in several industrial case studies showing its practical applicability both from a stability and a capability point of view. The tool-set consists of an interactive approach to product line definition and configuration and provides DSLs for this purpose. The focus of the tutorial will be on the DSL-based techniques for product derivation from an existing variability model. For product derivation, EASy-Producer supports a unified view on artifacts and artifact structures. It supports traditional artifact modifications as well as model-based code generation even without explicit meta-models. After participating in the tutorial, the participants will understand the capabilities of the toolset and will have a basic practical understanding of how to use it to derive software artifacts from a product line configuration.
Product Line Strategies and Feature Reuse
Mike Mannion, Hermann Kaindl and Juha Savolainen
Successful organizations working with software product lines evolve by ensuring they align their forecasts of market trends with their product line strategy. Without careful management of that alignment over time, the execution of a product line strategy becomes far less effective. This tutorial describes how business strategy choices affect product line strategy, which in turn impacts upon engineering decisions to make, buy or reuse features. It will present a feature development decision framework that guides the choice of make/buy/reuse, depending on the product line strategy and whether the feature is to be in some products or all. A discussion of the implementation of the reuse choice will follow by exploring two different approaches. The first approach is product configuration based on feature selection at feature variation points popular in modern software product line engineering. The second approach is drawn from the context of intelligent systems development and uses case-based reasoning. Both approaches have different key properties and trade-offs between the costs of making software artefacts reusable and the benefits of reusing them. To aid large-scale development, we have proposed a feature-similarity model, which draws on both approaches to facilitate discovering feature relationships using similarity metrics. It also helps with the evolution of a product line, since new features can be introduced first into a case base and then gradually included into a product line representation.
At the end of this tutorial, participants will be able to:
- explain different software product line engineering strategy options
- show how strategy choices influence decisions to make/buy/reuse features
- describe a feature development decision framework to guide make/buy/reuse features
- present two different approaches to reusing features from software product line engineering and intelligent systems development
- set out a new feature-similarity model, which draws on both approaches to facilitate managing software reuse in very large scale systems with commonality and variability
- debate trade-offs between the costs and benefits of reuse and reusability.
Fostering a consistent SPL service ecosystem
José A. Galindo and Pablo Fernandez
Software Product Lines (SPLs) are about developing a set of different software products that share some common functionality. Feature models are widely used to encode the common and variant parts of an SPL in terms of mandatory, optional and exclusive features as well as propositional constraints over the features. Numerous operations on top of feature models have been developed to model check, test, configure, debug, or compute relevant information. Concretely, such operations have been used in numerous scenarios ranging from cloud computing reconfiguration to video analysis optimization. Nowadays, SPL researchers and practitioners have a diversity of tools at their disposal. However, only a few applications are compatible between them. This incompatibility increases the time to market of new applications and hinders application usage by researchers and practitioners. In this tutorial, we present how we can successfully create an ecosystem of SPL tools that can be integrated to offer a better user experience. Concretely, we will show how to i) easily provide a standard REST interface to an SPL analysis tool thus, fostering application integration; ii) automatically offer a graphical web editor to interact with the software, thus, promoting its usage by end users; and, iii) enable the governance of the applications and create a customized portal for pricing plans. Also, we show other benefits such as the automatic creation of demo sites for review