Une approche holistique pour la migration des syst`emes l´egataires industriels
Auteur / Autrice : | Santiago Bragagnolo |
Direction : | Stéphane Ducasse, Nicolas Anquetil |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique et applications |
Date : | Soutenance le 17/05/2023 |
Etablissement(s) : | Université de Lille (2022-....) |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....) |
Partenaire(s) de recherche : | Laboratoire : Centre de Recherche en Informatique, Signal et Automatique de Lille - Centre Inria de l'Université de Lille |
Entreprise : Berger-Levrault | |
Jury : | Président / Présidente : Alain Plantec |
Examinateurs / Examinatrices : Gordana Rakić, Abderrahmane Seriai, Christophe Bortolaso | |
Rapporteurs / Rapporteuses : Olivier Barais, Mireille Blay-Fornarino |
Résumé
ContexteCe projet se déroule dans le cadre d'une collaboration avec Berger-Levrault, une grande entreprise de logiciels fournissant plusieurs services et applications développés avec différentes technologies.Dans un souci d'unification technologique, de réduction des coûts et d'accès à de nouveaux marchés, Berger-Levrault a lancé un vaste programme de modernisation de ses logiciels.ProblèmeBerger-Levrault possède plus de 90 applications écrites en Microsoft Access.Nous travaillons sur la migration d'une application Microsoft Access étendue, avec près de 20 ans de développement, vers une solution basée sur la technologie web.Comme Microsoft Access est un langage riche, le projet implique la migration du langage, de la bibliothèque, de l'infrastructure, du paradigme, de l'interface utilisateur et de l'architecture.Une telle migration ne peut être divisée en plusieurs migrations indépendantes et réussies, car la migration du langage affecte directement toutes les autres migrations.En outre, les solutions pour chaque type de migration varient en termes de connaissances et d'exigences technologiques ; aucune approche homogène ne pourrait aborder ce type de migration, ce qui nous pousse à réfléchir à une solution d'ordre supérieur.Solution (contribution)Cette thèse présente(i) Une approche de rétro-ingénierie capable d'extraire des modèles de Microsoft Access.(ii) Un méta-modèle de migration capable de représenter plusieurs langages tout en garantissant qu'un modèle est correct pour une technologie concrète.(iii) Un ensemble de mesures de migration mesurant l'écart technologique entre le système source et la cible prévue.(iv) Des visualisations permettant de se faire une idée du travail nécessaire pour rendre possible une migration architecturale.(v) Une approche itérative interactive de la migration logicielle permettant de migrer vers plusieurs destinations.(vi) Nous fournissons un moteur de migration basé sur des règles permettant : des migrations partielles, basées sur l'application immédiate et différée de règles contextualisées, sur des cibles multiples.Validation et résultatsPour valider nos solutions, nous menons plusieurs expériences qui donnent des résultats encourageants.(i) Nous validons notre rétro-ingénierie sur 10 projets en mesurant la perte d'information, prouvant que nous pouvons effectuer une migration avec les informations disponibles.(ii) Nous validons notre approche de modélisation sur 34 projets en représentant cinq technologies, et détectons encore des erreurs dans un modèle d'un langage spécifique.(iii-iv) Nous utilisons les métriques et les visualisations pour aider à construire le code source et les plans d'architecture et rédiger les rapports de faisabilité de la migration pour deux grands projets industriels.Nous utilisons également les modèles et les métriques pour profiler les bibliothèques utilisées afin de guider la construction d'une application de test représentant l'utilisation des bibliothèques sur la base de la règle de Pareto.(v-vi) Nous avons validé la migration d'un formulaire complet vers un back-end Java SpringBoot et un front-end Angular Typescript. Migration de 47 tables et requêtes vers Java et Typescript et de 53 artefacts de bibliothèque vers Java et Pharo.