Des familles de logiciels similaires proviennent fréquemment de pratiques de réutilisation de clones de logiciels existants, qui sont ensuite enrichis ou dépouillés de fonctionnalités pour suivre de nouvelles exigences. Avec le temps, ces variantes se multiplient et se complexifient, et il devient difficile de les maintenir, de les faire évoluer. L’ingénierie des lignes de produits logiciels regroupe un ensemble de méthodes visant à faciliter le développement et la gestion de telles collections de logiciels similaires. Documenter la variabilité est le point central de ce paradigme ; on la représente à travers des modèles de variabilité, qui servent de supports à la grande majorité des processus propres à l’ingénierie des lignes de produits. La migration complète ou partielle de ces familles de logiciels vers des approches de type lignes de produits permet la simplification de leur exploitation. La rétro-ingénierie, la modélisation et la gestion de la variabilité sont reconnues comme une phase cruciale et ardue de cette migration. Par conséquent, de nombreuses approches ont été proposées pour étudier des descriptions de familles de logiciels dans ce but. Plusieurs d’entre elles s’appuient sur l’analyse formelle de concepts, un cadre mathématique de groupement hiérarchique qui organise un ensemble d’objets et leurs descriptions dans une structure canonique mettant naturellement en évidence leurs aspects communs et variables.Dans ce manuscrit, nous défendons l'idée que l’analyse formelle de concepts, plus qu’un outil, offre un véritable cadre structurel et réutilisable à l’étude de la variabilité des familles de produits.Dans un premier temps, nous établissons un panorama des informations sur la variabilité qui sont mises en évidence grâce à ce formalisme, et discutons de son spectre d’applicabilité. Nous étudions les points communs entre les structures conceptuelles produites par l’analyse formelle de concepts et les modèles de variabilité. Dans un second temps, nous illustrons l’utilisation originale de ces structures conceptuelles comme support à des opérations de conception et de recherche d’informations. Enfin, nous élargissons notre champ d’étude aux informations plus complexes définies par des modèles de variabilité qui ont été étendus pour en améliorer l’expressivité, et dont la rétro-ingénierie est encore peu étudiée à ce jour. Nous montrons comment certaines propriétés de l’analyse formelle de concepts permettent de généraliser son utilisation à des descriptions de variantes plus complexes, et étudions son application pour la manipulation d’attributs multivalués et de cardinalités, en complément des caractéristiques booléennes traditionnelles. Nous évaluons notre approche sur des données issues de dépôts tels que SPLOT, fork-insight et de matrices de comparaison de produits de wikipedia. / Software families often rise from reuse practices as cloning existing software products which are then enhanced or pruned to fulfill new requirements. With time, these variants grow in number and in complexity, and become more and more complex to maintain. Software product line engineering gathers a set of methods that aims at facilitating the management and development of such collections of existing variants. Documenting variability is the central point of this paradigm; This variability is represented in variability models that support a large part of software product line engineering processes.The partial or complete migration from software families to a product line approach eases their exploitation.Reverse-engineering, modeling and managing variability are known as crucial tasks of the migration: therefore, numerous methods have been proposed to study descriptions of software families for this goal.Some of them are based on formal concept analysis, a mathematical framework for hierarchical clustering which organises set of objects and their descriptions in canonical structures highlighting naturally their commonalities and variability.In this thesis, we defend that formal concept analysis, more than a tool, is a relevant structural, reusable and extensible framework to study variability of software families.First, we propose an overview of variability information which is highlighted thanks to this framework, and we discuss its scope of applicability.We study the common points between the conceptual structures of formal concept analysis and variability models.Then, we show how to use these conceptual structures to support research and modeling operations.Finally, we broaden the scope of this study to take into account more complex information about extended variability.We evaluate our method on data taken from the SPLOT repository, fork-insight and product comparison matrices from wikipedia.
Identifer | oai:union.ndltd.org:theses.fr/2018MONTS057 |
Date | 29 October 2018 |
Creators | Carbonnel, Jessie |
Contributors | Montpellier, Huchard, Marianne |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | French |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0016 seconds