Gestion de la variabilité au niveau du code : modélisation, traçabilité et vérification de cohérence

par Xhevahire Tërnava

Thèse de doctorat en Informatique

Sous la direction de Philippe Collet.

Soutenue le 01-12-2017

à Côte d'Azur , dans le cadre de École doctorale Sciences et technologies de l'information et de la communication (Sophia Antipolis, Alpes-Maritimes) , en partenariat avec Université de Nice (établissement de préparation) , Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) (laboratoire) et de Laboratoire d'Informatique, Signaux, et Systèmes de Sophia-Antipolis (I3S) / Equipe MODALIS (laboratoire) .

Le président du jury était Laurence Duchien.

Le jury était composé de Philippe Collet, Laurence Duchien, Olivier Barais, Tewfik Ziadi, Mireille Blay-Fornarino.

Les rapporteurs étaient Olivier Barais, Tewfik Ziadi.


  • Résumé

    Durant le développement de grandes lignes de produits logiciels, un ensemble de techniques d’implémentation traditionnelles, comme l’héritage ou les patrons de conception, est utilisé pour implémenter la variabilité. La notion de feature, en tant qu’unité réutilisable, n’a alors pas de représentation de première classe dans le code, et un choix inapproprié de techniques entraîne des incohérences entre variabilités du domaine et de l’implémentation. Dans cette thèse, nous étudions la diversité de la majorité des techniques d’implémentation de la variabilité, que nous organisons dans un catalogue étendu. Nous proposons un framework pour capturer et modéliser, de façon fragmentée, dans des modèles techniques de variabilité, la variabilité implémentée par plusieurs techniques combinées. Ces modèles utilisent les points de variation et les variantes, avec leur relation logique et leur moment de résolution, pour abstraire les techniques d’implémentation. Nous montrons comment étendre le framework pour obtenir la traçabilité de feature avec leurs implémentations respectives. De plus, nous fournissons une approche outillée pour vérifier la cohérence de la variabilité implémentée. Notre méthode utilise du slicing pour vérifier partiellement les formules de logique propositionnelles correspondantes aux deux niveaux dans le cas de correspondence 1–m entre ces niveaux. Ceci permet d’obtenir une détection automatique et anticipée des incohérences. Concernant la validation, le framework et la méthode de vérification ont été implémentés en Scala. Ces implémentations ont été appliquées à un vrai système hautement variable et à trois études de cas de lignes de produits.

  • Titre traduit

    Handling variability at the code level : modeling, tracing and checking consistency


  • Résumé

    When large software product lines are engineered, a combined set of traditional techniques, such as inheritance, or design patterns, is likely to be used for implementing variability. In these techniques, the concept of feature, as a reusable unit, does not have a first-class representation at the implementation level. Further, an inappropriate choice of techniques becomes the source of variability inconsistencies between the domain and the implemented variabilities. In this thesis, we study the diversity of the majority of variability implementation techniques and provide a catalog that covers an enriched set of them. Then, we propose a framework to explicitly capture and model, in a fragmented way, the variability implemented by several combined techniques into technical variability models. These models use variation points and variants, with their logical relation and binding time, to abstract the implementation techniques. We show how to extend the framework to trace features with their respective implementation. In addition, we use this framework and provide a tooled approach to check the consistency of the implemented variability. Our method uses slicing to partially check the corresponding propositional formulas at the domain and implementation levels in case of 1–to–m mapping. It offers an early and automatic detection of inconsistencies. As validation, we report on the implementation in Scala of the framework as an internal domain specific language, and of the consistency checking method. These implementations have been applied on a real feature-rich system and on three product line case studies, showing the feasibility of the proposed contributions.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse ?

  • Bibliothèque : Université Nice Sophia Antipolis. Service commun de la documentation. Bibliothèque électronique.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.