Metamodelisation to support Test and Evolution
Apport de la méta-modélisation à l'évolution et au test
- Métamodèlisation
- Chaînes de transformation de modèles
- Logiciels -- Maintenance
- Tests fonctionnels (informatique)
- Logiciels -- Réingénierie
- Architecture logicielle
- Langue : Anglais
- Discipline : Informatique
- Identifiant : Inconnu
- Type de mémoire : Habilitation à diriger des recherches
- Date de soutenance : 28/06/2016
Résumé en langue originale
Pour beaucoup d’entreprises, leur richesse se trouvent dans leurs logiciels patrimoniaux qui existent souvent depuis plusieurs dizaines d’années et renferment une grande partie de la connaissance de l’entreprise, ses règles de gestions, son savoir faire...Au cours du temps, les besoins auxquels ces logiciels répondent ont évolué, de même que les technologies sur lesquels ils reposent, entrainant des modifications en leur sein même. Ces modifications ayant eu lieu après la livraison du logiciel sont considérées comme de la maintenance. Elles correspondent à plus de 80% du cycle de vie du logiciel et de son coût. Maintenir un logiciel est une activité complexe et nécessaire qui mérite d’être anticipé dès la phase de conception du logiciel. Des phases de remodularisation peut aussi être utiles pour réduire la complexité accumulée par des évolutions successives et fournir de nouvelles bases solides pour de futures évolutions. Les différents travaux présentés dans ce document répondent à un unique objectif : Concevoir des systèmes de qualité, facilement maintenable et gérer leurs évolutions. La qualité des logiciels peut être assurée et mesurée de nombreuses façons. Dans ce document, nous nous intéressons à la qualité uniquement à travers les tests qui permettent par exemple aux développeurs d’identifier et de localiser des erreurs ou de vérifier après une évolution que les parties inchangées ne sont pas impactées. Enfin, les artefacts de logiciels n’évoluent pas de façon indépendantes. L’évolution de l’un d’entre eux peut avoir des conséquences sur l’un ou plusieurs autres. Dans ce document, nous nous intéressons à deux types de logiciels, des chaînes de transformations de modèles et des programmes plus traditionnels. Ainsi les chaînes de transformations ne sont pas seulement vu ici comme un moyen de générer du code à partir de modèles via des transformations. Elles sont considérées comme des logiciels à part entière qu’il faudra ensuite maintenir et faire évoluer. Les résultats présentés dans ce document peuvent se résumer de la fa ̧con suivante : • Proposition d’un nouveau type de transformation, les transformations localisées, introduisant plus de réutilisation, de modularité et de flexibilité dans les chaînes de transformation. Des adaptations dans la définition et la construction des chaînes sont alors nécessaires. • Identification, définition et automatisation de séquences d’opérateurs spécifiques à un logiciel et utilisées lors de remodularisation d’architecture. • Adaptation pour les transformations de modèles de mécanismes de localisation d’erreur et de qualification de jeu de test, existant pour les logiciels traditionnels. • Etude et proposition de solutions de co-évolution de différents artefacts (model-métamodèle, métamodèle-transformation, schéma de base de données-programmes). [...]
Résumé traduit
Legacy software systems correspond to the wealth of the companies. They often exist for dozens of years and concentrate a big part of the company knowledge, its business rules or its savoir-faire. Requirements to which these systems answer have evolved with time, as well as the used technolo- gies leading to modifications. These modifications occurring after the software delivery, they are considered maintenance. They correspond to more than 80% of the software lifecycle and its cost. Maintaining a software system is a complex and useful activity that deserves to o be anticipated from the design activity. Remodularisation phases may be useful to reduce complexity massed from successive evolutions and to provide new strong basis for future evolutions. Work presented in this manuscript answers to a unique target: Designing systems of good quality, easily maintainable and managing their evolutions. Quality can be ensured and measured from different ways. In this document, I only focus on tests. Tests enable developers to identify and locate errors or check after an evolution that unchanged parts are not impacted. Finally, software artefacts do not independently evolve. The evolution of one of them may have consequences on one or several others. In this document, two types of software are considered chains of model transformations or traditional programs. Thus, transformation chains are not seen as a way to generate code from models via transformations. They are considered software system by themselves that would need to be later maintained and to make evolve. Results presented in this document may be summarised as such: • Proposal of a new transformation type localized transformations introducing better reusability, modularity and flexibility in transformation chains. Adaptations in designing and building chains are thus needed. • Identification, definition and automation of operators sequences that are specific to a software system and used during architectural modifications. • Adaptation for model transformation of error location and test set qualification mechanisms existing for traditional software systems. • Study and proposal of co-evolution artefacts (model-metamodel, metamodel- transformation, database schema-programs). To propose generic solutions, independent from the language used in these software systems or the application domain, the proposed results rely on models or most often on metamodels. Models are an abstract representation of for example a software system. Metamodels gather concepts used to represent these models and the relationships that can exist between these concepts. My results are often original solution opening new research tracks, as the introduction of gener- icity in transformation chains, program migration from one language to another, or debugging code from an input model used for its generation Mots cl ́es : metamodelling, maintenance, test, evolution, model transformation, remodularisation.
- Directeur(s) de thèse : Ducasse, Stéphane
- Laboratoire : Centre de recherche en informatique, signal et automatique de Lille (CRIStAL)
- École doctorale : École doctorale Sciences pour l'Ingénieur (Lille)
AUTEUR
- Etien , Anne