ARIANE : Automated Re-Documentation to Improve software Architecture uNderstanding and Evolution

par Alexandre Le Borgne

Thèse de doctorat en Informatique

Sous la direction de Marianne Huchard et de David Delahaye.

Soutenue le 24-01-2020

à l'IMT Mines Alès , dans le cadre de École Doctorale Information, Structures, Systèmes (Montpellier ; 2015) , en partenariat avec Laboratoire de génie informatique et d'ingénierie de production (laboratoire) et de Laboratoire de Génie Informatique et Ingénierie de Production / LGI2P (laboratoire) .

  • Titre traduit

    ARIANE : Re-documentation automatique pour améliorer la compréhension et l'évolution d'architectures logicielles


  • Résumé

    Tout au long de son cycle de vie, un logiciel peut connaître de nombreux changements affectant potentiellement sa conformité avec sa documentation originelle. De plus, bien qu'une documentation à jour, conservant les décisions de conception prises pendant le cycle de développement, soit reconnue comme une aide importante pour maîtriser les évolutions, la documentation des logiciels est souvent obsolète. Les modèles d’architectures sont l’une des pièces majeures de la documentation. Assurer leur cohérence avec les autres modèles d’un logiciel (incluant son code) pendant les processus d’évolution (co-évolution) est un atout majeur pour la qualité logicielle. En effet, la compréhension des architectures logicielles est hautement valorisable en termes de capacités de réutilisation, d'évolution et de maintenance. Pourtant les modèles d’architectures sont rarement explicitement disponibles et de nombreux travaux de recherche visent à les retrouver à partir du code source. Cependant, la plupart des approches existantes n'effectuent pas un strict processus de rétro-documentation afin de re-documenter les architectures "comme elles sont implémentées" mais appliquent des étapes de ré-ingénierie en regroupant des éléments de code dans de nouveaux composants. Ainsi, cette thèse propose un processus de re-documentation des architectures telles qu’elles ont été conçues et implémentées, afin de fournir un support d’analyse des décisions architecturales effectives. Cette re-documentation se fait par l’analyse du code orienté objet et les descripteurs de déploiement de projets. Le processus re-documente les projets dans le langage de description d’architecture Dedal, qui est spécialement conçu pour contrôler et guider l’évolution des logiciels.Un autre aspect très important de la documentation des logiciels est le suivi de leurs différentes versions. Dans de nombreuses approches et gestionnaires de version actuels, comme Github, les fichiers sont versionnés de manière agnostique. S’il est possible de garder une trace de l’historique des versions de n’importe quel fichier, aucune information ne peut être fournie sur la sémantique des changements réalisés. En particulier, lors du versionnement d’éléments logiciels, il n’est fourni aucun diagnostic de retro-compatibilité avec les versions précédentes. Cette thèse propose donc un mécanisme de versionnement d’architectures logicielles basé sur le métamodèle et les propriétés formelles de l’ADL Dedal.Il permet d’analyser automatiquement les versions en termes de substituabilité, de gérer la propagation de version et d’incrémenter automatiquement les numéros de versions en tenant compte de l’impact des changements. En proposant cette approche formelle, cette thèse vise à prévenir le manque de contrôle des décisions architecturale (dérive / érosion).Cette thèse s’appuie sur une étude empirique appliquant les processus de re-documentation et de versionnement à de nombreuses versions d’un projet industriel extrait de GitHub.


  • Résumé

    All along its life-cycle, a software may be subject to numerous changes that may affect its coherence with its original documentation. Moreover, despite the general agreement that up-to-date documentation is a great help to record design decisions all along the software life-cycle, software documentation is often outdated. Architecture models are one of the major documentation pieces. Ensuring coherence between them and other models of the software (including code) during software evolution (co-evolution) is a strong asset to software quality. Additionally, understanding a software architecture is highly valuable in terms of reuse, evolution and maintenance capabilities. For that reason, re-documenting software becomes essential for easing the understanding of software architectures. However architectures are rarely available and many research works aim at automatically recovering software architectures from code. Yet, most of the existing re-documenting approaches do not perform a strict reverse-documenting process to re-document architectures "as they are implemented" and perform re-engineering by clustering code into new components. Thus, this thesis proposes a framework for re-documentating architectures as they have been designed and implemented to provide a support for analyzing architectural decisions. This re-documentation is performed from the analysis of both object-oriented code and project deployment descriptors. The re-documentation process targets the Dedal architecture language which is especially tailored for managing and driving software evolution.Another highly important aspect of software documentation relates to the way concepts are versioned. Indeed, in many approaches and actual version control systems such as Github, files are versioned in an agnostic manner. This way of versioning keeps track of any file history. However, no information can be provided on the nature of the new version, and especially regarding software backward-compatibility with previous versions. This thesis thus proposes a formal way to version software architectures, based on the use of the Dedal architecture description language which provides a set of formal properties. It enables to automatically analyze versions in terms of substitutability, version propagation and proposes an automatic way for incrementing version tags so that their semantics corrrespond to actual evolution impact. By proposing such a formal approach, this thesis intends to prevent software drift and erosion.This thesis also proposes an empirical study based on both re-documenting and versioning processes on numerous versions on an enterprise project taken from Github.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Ecole nationale supérieure des techniques industrielles et des mines (Alès).
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.