Master 2012 2013
Stages de la spécialité SAR
Rétro-ingénierie de ligne de produits logiciels depuis le code source.


Site :LIP6-MoVe
Lieu :au Lip6, avec éventuellement un ou deux séjours au Luxembourg.
Encadrant : Yves le Traon Professor, University of Luxembourg FSTC/SnT. Tewfik Ziadi Maitre de conférences, UPMC/LIP6.
Dates :Mars 2012 au Septembre 2012
Rémunération :Environ 800 euros brut
Mots-clés : Parcours SAR autre qu’ATIAM, recherche

Description

Contexte et objectifs

L’ingénierie des lignes de produits logiciels (LdP)[1] est une approche récente du génie logiciel qui est une transposition des chaînes de production au monde du logiciel. Le principe est de minimiser les coûts de construction des logiciels dans un domaine d’application particulier en ne développant plus chaque produit logiciel séparément, mais plutôt en le concevant à partir d’éléments réutilisables. Le principe de l’approche LdP réside dans la conception d’une architecture permettant de définir plusieurs produits logiciels à la fois. Les membres d’une ligne de produits (LdP) sont caractérisés par leurs points communs, mais aussi par leurs déférences (variabilité). La gestion de cette variabilité est l’une des activités clé des lignes de produits. Une autre activité dans l’ingénierie des LdP concerne la construction d’un produit logiciel (on parle aussi de dérivation de produit) qui consiste en partie à figer certains choix vis-à-vis de la variabilité définie dans la ligne de produits pour générer un produit spécifique. Plusieurs outils et environnements (comme le plugin Eclipse FeatureIDE[http://wwwiti.cs.uni-magdeburg.de/i...]) ont été proposés ces dernières années pour la manipulation des LdPs. L’idée de base de ces travaux consiste à : 1) proposer des mécanismes pour la spécification de la variabilité. 2) automatiser la dérivation de produits en utilisant les transformations de programmes. L’approche de manipulation de LdP dans ces outils devient donc descendante : la ligne de produits est modélisée en premier lieu et par la suite les produits sont dérivés automatiquement. Cependant, il existe des cas où un grand nombre de produits similaires et dans le même domaine sont modélisés séparément, c’est-à-dire sans prise en compte de la notion de LdP et de la variabilité dès le départ. Dans ce travail de recherche nous souhaitons se focaliser sur cette vision ascendante ou la ligne de produits est construite automatiquement à partir de plusieurs produits logiciels existant. Une première méthode ascendante a été déjà implémentée au LIP6[2]. Elle consiste à analyser le code source de plusieurs logiciels similaires, les comparer et identifier les features communes et variables. Cependant plusieurs questions de recherche restent ouvertes :

  • La méthode actuelle ne permet de comparer que la structure générale des produits logiciels (classes, attributs et signatures de méthodes). Nous souhaitons dans ce stage étudier l’aspect comportementale pour aller plus loin et comparer le corps des méthodes pour identifier les parties communes et variables. Des techniques de clone détection [3] sont à étudier pour étendre cet aspect.
  • La méthode actuelle suppose que nous disposons de plusieurs produits logiciels qui ont été crées avec Copie/Coller. Nous souhaitons étudier la possibilité d’étendre cette méthode à d’autres situations ou les produits similaires représentent des versions qui n’ont pas été crées nécessairement avec Copie/Coller. En particulier le cas ou les différentes versions représentent des branches de développement dans les systèmes de gestion de versions comme Git ou SVN.
  • Ce stage doit aboutir aussi à une étude empirique pour valider les résultats. Nous souhaitons pour cela réutiliser l’approche Twise[4], développée à l’université de Luxembourg, pour étudier l’influence de choix de l’ensemble de produits initial sur la qualité des la ligne de produits générée.

PS. Ce stage sera réalisé dans le contexte d’une collaboration internationale entre le LIP6 et l’université de Luxembourg. Il est demandé donc une maitrise de l’anglais. Le stage peut aboutir à une thèse de doctorat.

Bibliographie

[1] P. Clements and L. Northrop, Software product lines : practices and patterns. Boston, MA, USA : Addison-Wesley Longman PublishingCo., Inc., 2001.

[2] Tewfik Ziadi, Luz Frias, Marcos Aurélio Almeida da Silva and Mikal Ziane. Feature Identification from the Source Code of Product Variants. The European Conference on Software Maintenance and Reengineering, IEEE/CSMR 2012.

[3] Chanchal K. Roy, James R. Cordy, and Rainer Koschke. 2009. Comparison and evaluation of code clone detection techniques and tools : A qualitative approach. Sci. Comput. Program. 74, 7 (May 2009), 470-495. DOI=10.1016/j.scico.2009.02.007 http://dx.doi.org/10.1016/j.scico.2...

[4] Henard, Christopher ; Papadakis, Mike ; Perrouin, Gilles ; Klein, Jacques ; Heymans, Patrick ; Le Traon, Yves : Bypassing the Combinatorial Explosion : Using Similarity to Generate and Prioritize T-wise Test Suites for Large Software Product Lines, Technical Report, Technical Report, 2012, 2012, pp. 1-10, ISBN : 978-2-87971-115-7