Thèse soutenue

Un langage de description d'architectures multi-dimensionnel pour l'évolution directe et la rétro-évolution de logiciels à base de composants

FR  |  
EN
Auteur / Autrice : Huaxi Yulin Zhang
Direction : Marianne Huchard
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 07/04/2010
Etablissement(s) : Montpellier 2
Ecole(s) doctorale(s) : Information, Structures, Systèmes (Montpellier ; École Doctorale ; 2009-2014)
Partenaire(s) de recherche : Laboratoire : Laboratoire de génie informatique et d'ingénierie de production (1994-2020)
Jury : Président / Présidente : Thérèse Libourel
Examinateurs / Examinatrices : Marianne Huchard, Thérèse Libourel, Yamine Aït-Ameur, Bernard Coulette, Sylvain Vauttier, Christelle Urtado, Mourad-Chabane Oussalah
Rapporteurs / Rapporteuses : Yamine Aït-Ameur, Bernard Coulette

Résumé

FR  |  
EN

Les approches basées sur les composants permettent de développer des logiciels en réutilisant des composants existant dans des bibliothèques. La structure d'un tel logiciel produit par assemblage de composants est définie à l'aide d'un langage de description d'architectures (ADL). Les processus de développement sont encore peu adaptés à ce paradigme. Ainsi, les ADL existants ne fournissent pas de véritable support au développement et à l'évolution des architectures logicielles à composants. Cette thèse propose Dedal, un ADL permettant de définir une architecture logicielle à différents niveaux d'abstraction qui correspondent aux étapes du cycle de vie du logiciel : sa spécification, son implémentation et son déploiement. La définition de l'architecture est complétée par un modèle du logiciel à l'exécution. La cohérence entre les différentes définitions d'une architecture doit être assurée : sa définition à un niveau d'abstraction doit être conforme à sa définition à un niveau supérieur. Ce principe permet de contrôler l'évolution d'une architecture, en validant les modifications réalisées à un certain niveau d'abstraction ou en motivant la création d'une nouvelle version pour propager les modifications entre niveaux d'abstraction et rétablir la cohérence. Ces mécanismes préviennent les problèmes d'érosion ou de dérive qui surviennent lors des évolutions entre les différents niveaux de définition des architectures. Un environnement couvrant le cycle de vie complet d'un logiciel à base de composants a été prototypé. Il comporte un atelier, permettant de décrire des architectures avec Dedal, puis un environnement d'exécution, extension des outils Fractal, capable de contrôler l'évolution des architectures déployées. L'évolution à l'exécution est réalisée de façon graduelle, de manière à faire fonctionner et à instrumenter les nouvelles versions pendant une phase de transition, avant de valider définitivement une modification.