ARIANE : Automated Re-Documentation to Improve software Architecture uNderstanding and Evolution - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2020

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

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

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.
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.
Fichier principal
Vignette du fichier
83894_LE_BORGNE_2020_archivage.pdf (10.03 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-02967502 , version 1 (15-10-2020)

Identifiants

  • HAL Id : tel-02967502 , version 1

Citer

Alexandre Le Borgne. ARIANE : Automated Re-Documentation to Improve software Architecture uNderstanding and Evolution. Other [cs.OH]. IMT - MINES ALES - IMT - Mines Alès Ecole Mines - Télécom, 2020. English. ⟨NNT : 2020EMAL0001⟩. ⟨tel-02967502⟩
261 Consultations
136 Téléchargements

Partager

Gmail Facebook X LinkedIn More