Managing, multiple feature models: foundations, languages and applications
Mathieu Acher · OpenGrey (Institut de l'Information Scientifique et Technique) · 2011
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).