Developing Model-Driven Software Product Lines

Xiaorui Zhang · NORA - Norwegian Open Research Archives · 2014

This thesis focuses on model-driven software product line development, which is the combination of the following two software development paradigms: (1) Model-Driven Engineering (MDE), which focuses on modeling software products and automating code generation from product models. In particular, Domain-Specific Modeling (DSM), as a technique in the arena of MDE, is about defining a Domain-Specific Language (DSL) and creating software product models using the language. (2) Software Product Line Engineering (SPLE), is a means to produce similar software products, by consolidating those into product lines to enable managed reuse.In a model-driven Software Product Line (SPL) which adopts DSM technique, products are represented as product models defined in a DSL. The variability (and commonality) of all intended products is specified in a product line model, typically using a variability modeling language. Based on the variability specified in the product line model, reusable model fragments specified using the base DSL, serving as the core assets of the product line, will be reused to derive all intended product models. This thesis provides methods for developing model-driven software product lines, in terms of development methodology, automated assistance and SPL evolution support. Firstly, this thesis presents two results on the methodology for developing a modeldriven SPL: (1) A generic and separate variability modeling language, which can be used to specify a product line model defining how intended product models can vary from each other, both at the domain conceptual level and the realization level (model object level). (2) Guidelines on how to define a DSL that is suitable to serve as the base language for a model-driven SPL, if the base language of the product line does not exist yet. Secondly, this thesis reports on two results in providing automated tool support for model-driven product line development: (1) A method for synthesizing a product line model from a set of existing product models when the product line is not built from scratch. (2) A method for ensuring that all the product models that can be derived from the product line model are intended. Thirdly, this thesis reports on three results in providing support for evolving model-driven SPLs: (1) A method for augmenting the existing product line model when new product models need to be included. (2) A method for suggesting automatic update to the product line model when the core assets of the product line have been changed. (3) A method for calculating semantic difference between two model-driven SPLs. We illustrate the application of our approaches in various case studies in different domains, provided by both industry and academia. Different phases of SPL development and evolution can require substantial amount of manual efforts, of which productivity can be improved by adopting our automatic tool support. We show that 2 by following our approaches, model-driven SPLs can be developed and evolved in a systematic and efficient manner.

Read the paper · More papers on PaperTik