Multi-dimensional architecture description language for forward and reverse evolution of component-based software / Huaxi Yulin Zhang ; sous la direction de Marianne Huchard

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

Architecture client-serveur (informatique)

Logiciels -- Développement

Composants logiciels

Intelligence artificielle

Classification Dewey : 004

Huchard, Marianne (19..-....) (Directeur de thèse / thesis advisor)

Libourel, Thérèse (Président du jury de soutenance / praeses)

Aït-Ameur, Yamine (1966-.... ; enseignant-chercheur en informatique) (Rapporteur de la thèse / thesis reporter)

Coulette, Bernard (1956-.... ; enseignant-chercheur en informatique) (Rapporteur de la thèse / thesis reporter)

Vauttier, Sylvain (Membre du jury / opponent)

Urtado, Christelle (19..-....) (Membre du jury / opponent)

Oussalah, Mourad-Chabane (Membre du jury / opponent)

Université des sciences et techniques de Montpellier 2 (1970-2014) (Organisme de soutenance / degree-grantor)

Information, Structures, Systèmes (Montpellier ; École Doctorale ; 2009-2014) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire de génie informatique et d'ingénierie de production (1994-2020) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : 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.

Résumé / Abstract : Component-based approaches promote software development by reuse of existing components from a repository. The structure of such software is described as an assembly of software components using an architecture description language (ADL). Software development processes often do not comply with this paradigm yet. Consequently, existing ADLs do not fully support component-based software architecture development and evolution. This thesis proposes Dedal, an ADL to describe software architectures at several abstraction levels that correspond to the steps of software lifecycle: its specification, its implementation and its deployment. The architecture definition is completed with a runtime model of the software. Consistency between the various definitions of a given architecture must be maintained: its definition at some abstraction level must conform to its definition at a higher abstraction level. This consistency principle enables to control the evolution of architectures either validating changes performed at an abstraction level or motivating the creation of a new version, to propagate changes from an abstraction level to the other and restore their consistency. These mechanisms prevent from architecture erosion or drift which might occur between two different description levels after evolution. An environment that covers the whole lifecycle of component-based software has been prototyped. It includes a CASE tool that supports the Dedal-based description of architectures and a runtime environment that extends Fractal tools to control the evolution of the deployed software. Runtime evolution is performed gradually in order to have new versions run and instrumented during a transition phase before committing changes.