Summary: | In software engineering, software reuse has been a popular topic since 1968. Nowadays, Software Product Line (SPL) engineering promotes systematic reuse throughout the whole software development process. Within SPL, reusability strongly depends on variability. In this context, variability modelling and management are crucial activities that crosscuts all development stages. Different techniques are used to model variability and one of them is Feature Diagrams (FDs). FD languages are a family of popular modelling languages used to model, and reason on, variability. Since the seminal proposal of a FD language, namely FODA, many extensions have been proposed to improve it. However, the pros and cons of these languages are difficult to evaluate for two main reasons: (1) most of them are informally defined and (2) no well defined criteria were used to justify the extensions made to FODA. As a consequence, variability modelling and management techniques proposed in the literature or used by practitioners may be suboptimal.
Globally, this work underlines that the current research on FDs is fragmented and provides principles to remedy this situation. A formal approach is proposed to introduce more rigour in the motivation, definition and comparison of FD languages. Thereby, examining their qualities should be more focused and productive. A formal approach guarantees unambiguity and is a prerequisite to define formal quality criteria and to produce efficient and safe tool automation. A quality analysis is necessary to avoid the proliferation of languages and constructs that are an additional source of misinterpretations and interoperability problems. The creation or selection of a FD language should be driven and motivated by rigourous criteria. Translations from one FD language to another should be defined and carefully studied to avoid interoperability problems.
The main contributions of this work are: (1) to use a quality framework to serve as a roadmap to improve the quality of FD languages, (2) to formally evaluate and compare FD language qualities according to well-defined criteria and following a clear method, (3) to formally define and motivate a new FD language that obtains the best scoring according to the quality criteria and (4) to develop tool support for this language.
|