Product Lines 2.0:

Software product line practice is a proven and practical approach for software system development. Years of foundational research in such areas as empirical capture of best practices, feature modeling, automated product derivation, scoping, product line architecture, and economic and adoption models have established a firm foundation. However, all of this work can be seen as focusing on a short-term goal: the production of software product lines in an organization or across a small number of organizations. We can call this "Product Lines 1.0." We are seeing early signs that product line engineering is now poised be something much more – a solid technology base for system and software engineering at all scales. Research is needed to guide product line engineering into this new role, and to embed it in new technological advances that otherwise are having to re-discover basic principles that are already solved problems in product lines. For example, the service-oriented architecture community has struggled with understanding service compatibility, whereas product line scoping and product line architecture practices have long dealt successfully with a version of exactly the same problem. Model based engineering can be seen as merely one point on the automated end of the whole spectrum of product line production strategies. “App shops” are emerging as a “new” model for acquisition of functionality, but these can easily be seen as the core asset base of an on-line product line. And so forth. Product line engineering is capable of pushing these technologies farther along than they are or otherwise would be. This talk argues that we are moving towards "Product Lines 2.0" and discusses the research challenge and pay-offs that we might expect as product line engineering moves into this new frontier.


Feature Link Propagation Across Variability Representations with Isabelle/HOL

When dealing with highly complex product lines it is usually indispensable to somehow subdivide the overall product line into several smaller, subordinate product lines and to define orthogonal views on the line's variability tailored to particular purposes, such as end-customer configuration.  In this article we report on an ongoing research effort for dealing with feature links, i.e. logical constraints between features, in such a setting, by propagating such logical constraints defined in lower-level product lines to a higher level or from one view to another.


Information Needed for Architecture Decision Making

This paper focuses on the business aspects of architecture decision making – in particular information needed by managers and archi-tects for making architecture investment decisions. We present the results of 19 interviews in an industrial organization aimed at identifying information used for architecture decision making in the context of product lines. We summarize the interview findings to investigate future possibilities in improving architecture decision making. (Presentation)


Opening Up Software Product Line Engineering

The software industry is experiencing a shift towards more open processes, a globalized market and more active and engaged customers and end users. This change seems natural and inevitable, imposing necessary changes in how software product line organizations plan and drive the development of their products. This paper gives insight into some recent developments in a product line organization and discusses how their efforts have helped them in improving their development processes and their product line. Based on this experience, this paper provides some preliminary guidelines to both industry and research, indicating that software product line organizations should exploit open innovation, engage customers, build communities and simplify processes and organization.


Integrating Heterogeneous Components in Software Supply Chains

Numerous software product lines today are built from components supplied by different vendors.  Companies situated in the middle of a software supply chain must configure and integrate components from their suppliers and offer (partially configured) variants for their customers, who can then complete the configuration and use these components in product lines or products that they develop.  Covering the entire product line often involves using components from multiple suppliers, many of which providing overlapping functionality. This leads to a product line with different possible alternatives for components. These components may use mismatched interfaces and therefore require glue for integration.
In this paper we analyze the consequences of combining heterogeneous components - components that are not designed using a common architecture - in a product line. We describe the limitations of the current practice and the challenges that arise from combining such components and delivering partially configured products. We introduce a new variability pattern that allows us to deal with heterogeneous components implementing overlapping functionality. This pattern consists of a reference architectural model, as well as transformations that generate a partially configured application including artifacts for gluing mismatched components. (Presentation)


An Experience Report on the Incremental Adaptation and Evolution of a SPL in eHealth

This work presents an experience report on the evolutionary development of a software product line (SPL) in the eHealth domain. The effort was triggered by the concurrent development of two similar products and the ambition to reduce redundant development and quality assurance. The result is a scalable base for a complex, highly adaptable information system. This system is required to be applicable in multiple business domains and diverging environments ranging from large scale hospitals to single practitioner clinics.
During this effort we were able to extract the common denominator in the form of core assets from existing applications specific to a medical field. For customisations well defined variation points were developed. Our solution allows for easy implementation of medical documentation requirements compared to tedious development of new applications from scratch. It significantly reduced the necessary development effort and time to market. The resulting core documentation platform can be used for an arbitrary medical field completely eliminating the dependence on the specific customer domain. (Presentation)


EvoFM: Feature-driven Planning of Product-line Evolution

Companies successfully applying product line approaches often follow a long-term strategy and need to plan product portfolios years ahead. For instance in the automotive industry, managers constantly make decisions about future product evolution, like "the LED tail lights will be introduced with the next facelift and the LED front lights two years later". With a raising number of features, feature changes, and evolution steps, a systematic approach for evolution planning becomes essential. However, there is only very little support for such evolution in model-based product line engineering so far.
This paper presents an approach for extending modeldriven product line engineering towards automated and toolsupported techniques for product line evolution. We provide a feature-based approach to model the variability over time and a catalogue of change operators for feature models.


Software Product Line Evolution: The Selecta System

The current technology gives little room for the different kinds of evolution needed for any software product line (SPL): evolution of the associated engineering environment, evolution of the market and SPL scope, evolution of the products and variability. The paper describes how these different evolution needs are addressed in the CADSE and Selecta systems. The solution we propose uses metamodeling and generation for the engineering environment evolution, composition for scope and market evolution, a component database and a selection language for the product and variability evolution. The paper presents the Selecta system and shortly discusses the experience.


SPLGraph: Towards a Formalism for Software Product Lines

This paper presents SPLGraph a graph-based model for Software Product Lines, including:
        (1)~a formal definition of an SPLGraph,
        (2)~an algorithm that apply configuration decisions to the SPLGraph to derive a product specific graph,
        (3)~a set of patterns for typical SPLGraph structures, such as Boolean
operators, reuse of expressions, named configurations, optional and alternative features and staged configuration; and
        (4)~an algorithm that infers product configuration per a variability point.

SPLGraph is generic, simple, and self sustaining in the sense that an SPLGraph instance can apply variability to itself. These properties make SPLGraph a solid and complete formalism for Software Product Line. (Presentation)