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.
List of papers I-VII. The papers are removed from the thesis due to publisher restrictions.
I. Svendsen, A., Zhang, X., Lind-Tviberg, R., Fleurey, F., Haugen, Ø., Møller-Pedersen, B., & Olsen, G. K. (2010). Developing a software product line for train control: A case study of cvl. In Software Product Lines: Going Beyond (pp. 106-120). Springer Berlin Heidelberg. doi:10.1007/978-3-642-15579-6_8
II. Xiaorui Zhang, Yun Lin and Øystein Haugen. (2009). APRiL: A DSL for Payroll Reporting In: Proceedings of 1st International Workshop on Future trends of Model-Driven Development in conjunction with the 11th International Conference on Enterprise Information Systems, Milan, Italy, 2009
III. Zhang, X., Haugen, O., & Moller-Pedersen, B. (2011, August). Model comparison to synthesize a model-driven software product line. In Software Product Line Conference (SPLC), 2011 15th International (pp. 90-99). IEEE. doi:10.1109/SPLC.2011.24
IV. Zhang, X., & Møller-Pedersen, B. (2013). Towards correct product derivation in model-driven product lines (pp. 179-197). In: Proceedings of the 7th international conference on System Analysis and Modeling: theory and practice, Springer-Verlag, 2013. doi:10.1007/978-3-642-36757-1_11
V. Zhang, X., Haugen, O., & Moller-Pedersen, B. (2012, December). Augmenting Product Lines. In Software Engineering Conference (APSEC), 2012 19th Asia-Pacific (Vol. 1, pp. 766-771). IEEE.doi:10.1109/APSEC.2012.76
VI. Svendsen, A., Zhang, X., Haugen, Ø., & Møller-Pedersen, B. (2012). Towards evolution of generic variability models. In Proceedings of the 14th international conference on Models in Software Engineering (pp. 53-67). Springer Berlin Heidelberg.IEEE.doi:10.1007/978-3-642-29645-1_8
VII. Xiaorui Zhang, Øystein Haugen and Birger Møller-Pedersen. (2013) Semantic Differencing for Product Line Evolution. SINTEF Report A25398, ISBN 978-82-14-05332-6