Interoperability of Software Product Line Variants
Ferruccio Damiani, University of Torino, Italy
Reiner Hähnle, Technische Universität Darmstadt, Germany
Eduard Kamburjan, Technische Universität Darmstadt, Germany
Michael Lienhardt, University of Torino, Italy
Software Product Lines are an established mechanism to describe multiple variants of one software product. Current approaches however, do not offer a mechanism to support the use of multiple variants from one product line in the same application. We experienced the need for such a mechanism in an industry project with German Railways where we do not merely model a highly variable system, but a system with highly variable subsystems. We present the design challenges that arise when software product lines have to support the use of multiple variants in the same application, in particular: How to reference multiple variants, how to manage multiple variants to avoid name clashes, and how to keep multiple variants interoperable.
Maya R. A Setyautami, Daya Adianto, and Ade Azurat
SPLC 2018 Solution
We choose Unified Modeling Language (UML) as the foundation to model the proposed solution of the Multi Software Product Lines (MPL) interoperability challenge. The proposed pseudo-code is modeled as an extension of the UML meta-model to support MPL. The model serves to provide a standard representation of MPL and an intuitive transformation to an Object-Oriented Programming (OOP) language. Some extension to the UML that yet to have intuitive translation into common OO language are augmented with a mechanism using a build automation system. This mechanism provides manual transformation that gives us some hints whether the proposed solution fulfilled the evaluation criteria. The given challenge case has been written in our proposed pseudo-code, modeled in our UML extension, and translated into Java source code and Gradle build scripts. By invoking Gradle tasks, we can simulate product generation that creates products as Java objects. Solution paper