thesis

Managing, multiple feature models : foundations, languages and applications

Defense date:

Jan. 1, 2011

Edit

Institution:

Nice

Disciplines:

Authors:

Abstract EN:

Software product Line (SPL) engineering is a paradigm shift towards modeling and developing software system families rather than individual systems. It focuses on the means of efficiently producing and maintaining multiple similar software products, exploiting what they have in common and managing what varies among them. Feature models (FMs) are a fundamental formalism for specifying and reasoning about commonality and variability of SPLs. FMs are becoming increasingly complex, handled by several stakeholders or organizations, used to describe features at various levels of abstraction and related in a variety of ways. Maintaining a single large FM is neither feasible nor desirable. Instead, multiple FMs are now used. In this thesis, we develop theoretical foundations and practical support for managing multiple FMs. We design and develop a set of composition and decomposition operators (aggregate, merge, slice) for supporting separation of concerns. The operators are formally defined, implemented with a fully automated algorithm and guarantee semantics properties. We show how the composition and decomposition operators can be combined together or with other reasoning and editing operators to realize complex tasks. We propose a textual language, FAMILIAR, which provides a practical solution for managing FMs on a large scale. We report various applications of the operators and usages of FAMILIAR in different domains (medical imaging, video surveillance) and for different purposes (scientific workflow design, variability modeling from requirements to runtime, reverse engineering), showing the applicability of both the operators and the supporting language.

Abstract FR:

L’ingénierie des lignes de produits logiciels (LdPs) est un paradigme pour la modélisation et le développement de familles de systèmes logiciels plutôt que de systèmes logiciels individuels. Son objectif porte sur les moyens de produire et maintenir efficacement des produits logiciels similaires en exploitant ce qu’ils ont en commun et en gérant ce qui varie entre eux. Par analogie, la pratique dans l’industrie automobile est de construire une ligne de production dans laquelle des variations personnalisées mais tout de même similaires de modèles de voitures sont produits. Les feature models (FMs) sont une représentation fondamentale pour spécifier et raisonner sur la commonalité et la variabilité des LdPs en termes de features (caractéristiques). Les FMs deviennent de plus en plus complexes, manipulés par plusieurs développeurs ou organisations, utilisés pour décrire des features à divers niveaux d’abstraction et qui sont mises en relation de différentes façons. Maintenir un seul gros FM n’est ni réaliste ni souhaitable. Au contraire une tendance forte est de considérer de multiples FMs. Dans cette thèse, nous développons les fondations théoriques et un support pratique pour gérer de multiples FMs. Nous concevons et développons un ensemble d’opérateurs de composition et de décomposition (aggregate, merge, slice) pour supporter la séparation des préoccupations. Les opérateurs sont formellement définis et implémentés avec un algorithme qui garantit des propriétés sémantiques. Nous montrons comment les opérateurs de composition et de décomposition peuvent être combinés ensemble ou avec d’autres opérateurs d’édition ou de raisonnement pour réaliser des taches complexes. Nous proposons un langage textuel, FAMILIAR (pour FeAture Model scrIpt Language for manIpulation and Automatic Reasoning), qui fournit une solution opérationnelle à la gestion de multiples FMs à large échelle. Un utilisateur des FMs peut combiner les différents opérateurs et manipuler un ensemble restreint de concepts (FMs, features, configurations, etc. ) en utilisant une notation concise et des facilités linguistiques. FAMILIAR cache les détails d’implémentations (e. G. , solveurs) et est supporté par un environnement de développement complet. Nous décrivons plusieurs applications de ces opérateurs et utilisations de FAMILIAR dans différents domaines (messagerie médicale, vidéo protection) et pour différents objectifs (conception de workflows scientifiques, modélisation de la variabilité des exigences à l’exécution, rétro ingénierie), démontrant l’applicabilité à la fois des opérateurs et du langage de support. Sans les nouvelles capacités fournies par les opérateurs et FAMILIAR, certaines opérations d’analyse et de raisonnement n’auraient pas été possibles dans les différents cas d’études. Pour conclure, nous discutons les différentes perspectives de recherche à moyen terme (opérateurs, langage, éléments de validation) et à long terme (e. G. Relations entre les FMs et les autres modèles).