Un langage de description d'architectures multi-dimensionnel pour l'évolution directe et la rétro-évolution de logiciels à base de composants
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é
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.