Contexte Ce 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ème Berger-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ésultats Pour 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.
M. Stéphane DUCASSE Université de Lille Directeur de thèse Mme Gordana RAKIć Faculty of Sciences, University of Novi Sad Examinatrice M. Alain PLANTEC LAB-STICC Examinateur M. Olivier BARAIS IRISA Rennes Rapporteur M. Nicolas ANQUETIL Université de Lille Co-directeur de thèse Mme Mireille BLAY-FORNARINO Laboratoire I3S - CNRS - UNS - UMR 6070 Rapporteure M. Christophe BORTOLASO Berger-Levrault Invité M. Abderrahmane SERIAI Berger-Levrault Invité
Thesis of the team EVREF defended on 17/05/2023