Reverse Engineering Feature Models From Software Variants to Build Software Product Lines REVPLINE Approach - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2014

Reverse Engineering Feature Models From Software Variants to Build Software Product Lines REVPLINE Approach

Construction de lignes de produits logiciels par rétro-ingénierie de modèles de caractéristiques à partir de variantes de logiciels: l'approche REVPLINE

Résumé

Setting up a software product line aims at building and maintaining a family of similar software products in a reuse-based manner. Reuse helps reduce the development / maintenance effort, shorten time-to-market and improve overall quality of software. To migrate from existing software product variants into a software product line, one has to understand their similarities and differences that can be expressed in terms of offered features. In this dissertation, we tackle the problem of building a software product line from the source code of its product variants and from several complementary artifacts such as use case diagrams, when they are available. Our contributions focus on one of the main steps of this building which consists in extracting and organizing a feature model in an automated manner. The first contribution of this thesis is a new approach to mine features from the object-oriented source code of a set of software variants. Three techniques are used to do so: Formal Concept Analysis, Latent Semantic Indexing and analysis of structural code dependencies. These techniques exploit commonalities and variable parts across software variants, at source code level. The second contribution consists in documenting a mined feature by providing a name and description. It exploits both the source code of the feature and use-cases, which contains the logical organization of external functionalities together with textual descriptions of these functionalities. Relational Concept Analysis completes the same three techniques used previously as it can group entities according to their relations. In the third contribution, we propose an automatic approach to organize the mined and documented features into a feature model. Features are organized in a tree tagged with operations and enriched with logical expressions that highlight mandatory features, optional features and feature groups (AND, OR, XOR groups), and complementary textual constraints that express requirements or mutual exclusions. This model is built thanks to a structure obtained using Formal Concept Analysis where variants are described by their features. To validate our approach, we applied it on three case studies: ArgoUML-SPL, Health complaint-SPL and Mobile media software product variants. These case studies already are structures software product lines. We consider several products from these examples as if they were software variants, apply our approach and evaluate its efficiency comparing our automatically extracted feature models to initial models (those provided by each software product line developers).
La mise en place d'une ligne de produits logiciels permet de construire et de maintenir une famille de produits logiciels similaires en mettant en œuvre des principes de réutilisation. Ces principes favorisent la réduction de l'effort de développement et de maintenance, raccourcissent le temps de mise sur le marché et améliorent la qualité globale du logiciel. La migration de produits logiciels similaires vers une ligne de produits demande de comprendre leurs similitudes et leurs différences qui s'expriment sous forme de caractéristiques (features) offertes. Dans cette thèse, nous nous intéressons au problème de la construction d'une ligne de produits à partir du code source de ses produits et de certains artefacts complémentaires comme les diagrammes de cas d'utilisation, quand ils existent. Nous proposons des contributions sur l'une des étapes principales dans cette construction, qui consiste à extraire et à organiser un modèle de caractéristiques (feature model) dans un mode automatisé. La première contribution de cette thèse consiste à extraire des caractéristiques dans le code source de variantes de logiciels écrits dans le paradigme objet. Trois techniques sont mises en œuvre pour parvenir à cet objectif : l'Analyse Formelle de Concepts, l'Indexation Sémantique Latente et l'analyse des dépendances structurelles dans le code. Elles exploitent les parties communes et variables au niveau du code source. La seconde contribution s'attache à documenter une caractéristique extraite par un nom et une description. Elle exploite le code source mais également les diagrammes de cas d'utilisation, qui contiennent, en plus de l'organisation logique des fonctionnalités externes, des descriptions textuelles de ces mêmes fonctionnalités. En plus des techniques précédentes, elle s'appuie sur l'Analyse Relationnelle de Concepts afin de former des groupes d'entités d'après leurs relations. Dans la troisième contribution, nous proposons une approche visant à organiser les caractéristiques, une fois documentées, en un modèle de caractéristiques. Ce modèle de caractéristiques est un arbre étiqueté par des opérations et muni d'expressions logiques qui met en valeur les caractéristiques obligatoires, les caractéristiques optionnelles, des groupes de caractéristiques (groupes ET, OU, OU exclusif), et des contraintes complémentaires textuelles sous forme d'implications ou d'exclusions mutuelles. Ce modèle est obtenu en exploitant une structure obtenue par Analyse Formelle de Concepts appliquée à la description des variantes par les caractéristiques. L'approche est validée sur trois cas d'étude principaux : ArgoUML-SPL, Health complaint-SPL et Mobile media. Ces cas d'études sont déjà des lignes de produits constituées. Nous considérons plusieurs produits issus de ces lignes comme s'ils étaient des variantes de logiciels, nous appliquons notre approche, puis nous évaluons son efficacité par comparaison entre des modèles de caractéristiques extraits automatiquement par l'approche présentée et les modèles de caractéristiques initiaux (conçus par les développeurs des lignes de produits analysées).
Fichier principal
Vignette du fichier
thesisV2.pdf (60.45 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01015102 , version 1 (25-06-2014)
tel-01015102 , version 2 (08-02-2017)

Identifiants

  • HAL Id : tel-01015102 , version 2

Citer

Ra'Fat Ahmad Al-Msie'Deen. Reverse Engineering Feature Models From Software Variants to Build Software Product Lines REVPLINE Approach. Software Engineering [cs.SE]. Université Montpellier II - Sciences et Techniques du Languedoc, 2014. English. ⟨NNT : ⟩. ⟨tel-01015102v2⟩
929 Consultations
1013 Téléchargements

Partager

Gmail Facebook X LinkedIn More