Přispěvatelé: |
Inria Lille - Nord Europe, Institut National de Recherche en Informatique et en Automatique (Inria), Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS), Université de Lille, Berger-Levrault, Analyses and Languages Constructs for Object-Oriented Application Evolution (RMOD), Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS)-Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS), Reflective Evolution of Ever-running Software Systems (EVREF), Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Université de Lille-Berger-Levrault-Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Universite de Lille, Inria, Stephane Ducasse, Nicolas Anquetil |
Popis: |
Context This project takes place in the context of a collaboration with Berger-Levrault, a large software company providing several services and applications developed with different technologies. In a business-critical quest for technological unification, cost reduction, and access to new markets, Berger-Levrault started an extensive program of software modernisation.Problem Berger-Levrault has more than 90 applications written in Microsoft Access. We work on migrating an extensive Microsoft Access application, with nearly 20 years of development, to a web-technology-based solution. As Microsoft Access is a rich language, the project entails the migration of language, library, infrastructure, paradigm, user interface and architecture.Such migration cannot be adequately split into multiple independent, successful migrations, as language migration directly affects all the other migrations. Furthermore, the solutions for each kind of migration vary in knowledge and technological requirements; no single homogenous approach could tackle this kind of migration, which pushes us to think of a higher-order solution.Solution (contribution) This thesis presents (i) A reverse engineering approach can extract models from Microsoft Access. (ii) A migrating meta-model able to represent multiple languages. (iii) A set of migration metrics measuring the technological gap between the source system and the expected target. (iv) Visualisations to gain insight into the required work to make possible an architectural migration. (v) An interactive iterative approach to software migration allowing multiple destinations to migrate. (vi) We provide a rule-based migration engine allowing: partial migrations, based on the immediate and delayed application of contextualised rules, over multiple targets.Validation and results To validate our solutions, we conduct multiple experi- ments yielding encouraging results. (i) We validate our reverse engineering over 10 projects by measuring information loss, proving that we can migrate with the available information. (ii) We validate our modelling approach over 34 projects by representing five technologies and still detect errors in a model of a specific language. (iii-iv) We use metrics and visualisations to help build source code and architectural blueprints and write migration feasibility reports for two large industrial projects. We also use the models and metrics to profile the used libraries to guide the construction of a testing application representing the usage of the libraries based on the Pareto rule. (v-vi) We validated over a full form migration to back-end Java SpringBoot back end and Typescript Angular front-end. Migrating 47 tables and queries to Java and Typescript and 53 library artefacts to Java and Pharo.; Contexte Ce projet se déroule dans le cadre d’une collaboration avec Berger- Levrault, une grande entreprise de logiciels fournissant plusieurs services et ap- plications 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 vali- dons notre approche de modélisation sur 34 projets en représentant cinq technolo- gies, 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 migra- tion 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. |