Jump to ratings and reviews
Rate this book

Model-Driven and Software Product Line Engineering

Rate this book
Many approaches to creating Software Product Lines have emerged that are based on Model-Driven Engineering. This book introduces both Software Product Lines and Model-Driven Engineering, which have separate success stories in industry, and focuses on the practical combination of them. It describes the challenges and benefits of merging these two software development trends and provides the reader with a novel approach and practical mechanisms to improve software development productivity.
The book is aimed at engineers and students who wish to understand and apply software product lines and model-driven engineering in their activities today. The concepts and methods are illustrated with two product line the classic smart-home systems and a collection manager information system.

288 pages, Hardcover

First published October 16, 2012

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
0 (0%)
4 stars
0 (0%)
3 stars
0 (0%)
2 stars
1 (100%)
1 star
0 (0%)
Displaying 1 of 1 review
Profile Image for Alejandro Teruel.
1,319 reviews254 followers
August 1, 2022
I am currently in dulging my curiosity as to what progress has been made in Software Engineering in the development of product-line software (aka program families) since 1986 when I worked on the topic.

The authors of this book state that
The intent of this book is threefold. First, it is a pedagogical tool for undergraduate and graduate students to understand what a product line is and why it is so important in modern software engineering. Second, the technical parts are dedicated to engineers who want to launch a software product line chain using model engineering. Both product lines and model-driven engineering are becoming popular techniques for software development. Finally, this book also “tags” some challenges, some open problems, and related work that are
of interest for software researchers.
It is not very successful at the first two items and is somewhat thin on the third.

Some older books on product-line software engineering, such as Jan Bosch's Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach (2000), are much better pedagogical introductions to the subject. Arboleda and Royer are somewhat cursory in their introduction to software product-line engineering and somewhat clumsy -perhaps even confusing- in their introduction to model-driven software engineering, especially for undergraduate students.

It is not a very friendly book for software "engineers who want to launch a software product line chain using model engineering" -it is rather dry, academic, is short on down to earth eamples and practices and long on what appears to be rather limited theory.

The authors attempt to integrate classic ideas on product-line development, model-driven software engineering and feature driven development (a la aspect-oriented methodology) with lots of (over)emphasis on meta-modeling. The book includes two examples, a classic and simple smart-home problem line whose only features are automatic/manual windows and password/fingerprint access to doors, and collection management systems. A whole chapter is devoted to an overview of collection management systems as a product line -it is a very academic example presented at such high level that it manages to ignore the whole literature on database management systems of which it appears to be but a sketchy, abstract and impractical approximation.

As usual the product line model itself is divided into the common functional model and a feature-based component model. Curiously enough the authors appear to recommend a unique model for components, so all features are derived from a Feature(s) component. Thus the smart-home example for example derives Windows features and Doors features from Features -since both kind of features are, to judge from the example, control features, this works for the example but, in my opinion would fall far short in cases where features are far more independent and complex. Although the authors emphasize that their fine-grained approach allows for more variation than their coarse-grained approach, in my opinion their coarse-grained approach is overly simplistic.

What I found most interesting is their use of constraints to characterize products by writing properties on the functional model and the features in OCL they must satisfy. Such properties are written in the form of tuples, the first tuple includes some part of the functional model, the second part some features, the third part a cardinality constraint between features and/or the functional constraint and the fourth part a structural constraint between the functional model and features. Any number of tuples can exist, so an important part of such product derivation is making sure the tuple set is consistent and feasible. Dividing constraints into cardinality and functional constraints feels a little clumsy and restrictive.

The authors also indicate that they have derived a derivation and framework configuration with static and dynamic binding based on tool support they have developed for Eclipse. To understand this part of the book, the reader must be familiar with tools for model-based development available in Eclipse -since I am not familiar with such tools, I confess to having skipped a lot of this.

The book is probably best appreciated by other researchers working in closely related projects like the ones mentioned in the chapter on further readings (chapter 8). The integration of product-line, aspect-oriented and model-driven software development techniques is indubitably an intriguing and promising research area, but I feel this book is more in the nature of a specific project report exploring a very specific framework and its meta-model semantics than an overview of the state of the art circa 2012.


Displaying 1 of 1 review

Can't find what you're looking for?

Get help and learn more about the design.