Thèse soutenue

Vues et transformations de programmes pour la modularité des évolutions

FR  |  
EN
Auteur / Autrice : Akram Ajouli
Direction : Jean-Claude Royer
Type : Thèse de doctorat
Discipline(s) : Informatique et applications
Date : Soutenance le 25/09/2013
Etablissement(s) : Nantes, Ecole des Mines
Ecole(s) doctorale(s) : Sciences et technologie de l'information et mathématiques
Partenaire(s) de recherche : Equipe de recherche : ASCOLA. ASpect and COmposition LAnguages
Jury : Président / Présidente : Christian Attiogbé
Examinateurs / Examinatrices : Benoit Baudry, Julien Cohen
Rapporteurs / Rapporteuses : Jean-Louis Giavitto, Christophe Dony
DOI : 10.70675/af529040zfac8z42b0z8612za8abca75c045

Résumé

FR  |  
EN

La maintenance consomme une grande partie du coût de développement des logiciels ce qui rend l’optimisation de ce coût parmi les enjeux importants dans le monde du génie logiciel. Dans cette thèse nous visons à optimiser ce coût par rendre ces maintenances modulaires. Pour atteindre cet objectif, nous définissons des transformations des architectures des programmes qui permettent de transformer le programme à maintenir vers une architecture qui facilite la tâche de maintenance voulue. Nous nous concentrons plus sur la transformation entre les architectures à propriétés de modularité duales tels que les patrons de conception Composite et Visiteur. Dans ce contexte, nous définissons une transformation automatique et réversible basée sur le refactoring entre un programme structuré selon le Composite et sa structureVisiteur correspondante. Cette transformation est validée par la génération d’une précondition qui garantit statiquement sa réussite. Elle est aussi adaptée afin qu’elle prenne en compte la transformation de quatre variations du patron Composite et est validée sur le programme JHotDraw qui comporte ces quatre variations. Nous définissons aussi une transformation réversible au sein du patron Singleton afin de pouvoir bénéficier de l’optimisation par l’introduction de ce patron et la souplesse par sa suppression selon les exigences de l’utilisateur du logiciel.