Thèse De Doctorat Gwendal DANIEL
Total Page:16
File Type:pdf, Size:1020Kb
Thèse de Doctorat Gwendal DANIEL Mémoire présenté en vue de l’obtention du grade de Docteur de l’École nationale supérieure des Mines-Télécom Atlantique Bretagne Pays de la Loire sous le sceau de l’Université Bretagne Loire École doctorale : Mathématiques et STIC Discipline : Informatique et applications, section CNU 27 Unité de recherche : Laboratoire des sciences du numérique de Nantes (LS2N) Soutenue le 14 Novembre 2017 Thèse n°: 2017IMTA0049 Efficient Persistence, Query, and Transformation of Large Models JURY Rapporteurs : Mme Marie-Pierre GERVAIS, Professeur des Universités, Université Paris Nanterre M. Jean-Michel BRUEL, Professeur des Universités, Université Toulouse 2 Jean Jaurès Examinateurs : M. Sébastien GÉRARD, Directeur de Recherche, CEA-LIST M. Jean-Claude ROYER, Professeur des Grandes Écoles, IMT Atlantique Invité : M. Massimo TISI, Maître Assistant, IMT Atlantique Directeur de thèse : M. Jordi CABOT, Professeur des Universités, Open University of Catalonia Co-directeur de thèse : M. Gerson SUNYÉ, Maitre de Conférence HDR, Université de Nantes Acknowledgement Foremost, I would like to express my sincere gratitude to my advisors Prof. Jordi Cabot, Dr. Gerson Sunyé, and Dr. Massimo Tisi. Their support, patience, and guidance helped me in all the steps of this thesis, and made me feel that our work was always going in the right direction. Besides my advisors, I would like to thank the rest of my thesis committee: Prof. Jean- Claude Royer, Prof. Jean-Michel Bruel, Prof. Marie-Pierre Gervais, Dr. Sébastien Gérard for their insightful comments on the present manuscript, as well as for the interesting questions and discussions that followed my thesis defense. I thank my fellow team-mates for the stimulating discussions, the coffee-breaks, and all the fun we have had in the last three years. Finally, I would like to thank Dr. Amine Benelallam together with Robin Boncorps for the joyful working moments as well as the friendly nightly discussions. You inspired me way more than you think! 3 4 To the Meat Boy Team To my Friends To my Family To Malo To You Résumé Français Introduction Dans tous les domaines scientifiques, la modélisation est une activité commune qui vise à construire une vue abstraite simplifiant un système complexe de la réalité. Les modèles sont utilisés dans différents domaines d’études, tels que la biologie [1], le génie civil [2], ou la description de lignes de produits [91], et sont reconus comme une so- lution efficace pour appréhender des problèmes complexes et résoudre des questions spécifiques. Dans le domaine de l’ingénierie et du développement logiciel, les mod- èles sont utilisés pour décrire un système à développer, en représentant sa structure, ses composants, et sa logique. Ces modèles sont typiquement définis à l’aide de langages de modélisation, qui fournissent un ensemble règles permettant le partage de l’information entre les différents intervenants. Le langage UML (Unified Modeling Language) est un example de langage de modélisation largement adapté par l’académie et l’industrie, et qui a été standardisé par l’OMG (Object Management Group). L’Ingénierie Dirigée par les Modèles (IDM) est une méthode de développement logi- cielle qui place les techniques de modélisations au centre du processus de développement. Les modèles deviennent des artefacts de premier ordre utilisés dans toutes les activités d’ingénierie, telles que le développement logiciel, mais également son évolution, ou la modélisation des exigences fonctionnelles et non fonctionnelles. Les modèles sont au- tomatiquement traités par des transformations de modèles qui permettent de les rafiner afin de fournir différentes vues du système, générer des modèles d’implémentation spé- cifiques à des plateformes de déploiement, de la documentation, etc. L’IDM définit en général une dernière étape basée sur un transformation modèle vers texte, qui génère le code applicatif, les schemas des bases de données, ainsi que l’implémentation des invari- ants et règles métier. La génération et l’extraction automatique de modèles sont des domaines particuliers de l’IDM permettant de construire des modèles à partir d’artefacts existants (code source [19], API web [56], etc). Les modèles obtenus sont ensuite utilisés pour assister le modeleur dans sa compréhension du système étudié, construire des vues précises, générer de la documentation, ou évaluer la qualité du système considéré. Ces techniques ont été pop- ularisée par les techniques de rétro-ingénierie dirigée par les modèles, qui permettent de construire automatiquement un ensemble de modèle à partir d’une base de code. Ces modèles sont ensuite utilisés dans des processus complexes tels que l’évolution logicielle ou la restructuration de code source, qui sont typiquement exprimés par des langage de requêtage et de transformation de modèles. Ces dernières années, l’IDM a été appliquée avec succès dans plusieurs scenario industriels. En effet, les études existantes [76, 54] reportent qu’utiliser les techniques 5 6 d’IDM améliore la productivité et la maintenabilité des logiciels créés, tout en dimin- uant leurs coûts ainsi que les efforts nécessaires à leur construction. Cette intégration industrielle a notamment débouché sur la création de plusieurs plateformes de modéli- sations telles qu’EMF (Eclipse Modeling Framework) [102] et Papyrus [70], fournissant de solides bases pour construire, stocker, et requêter des modèles. Dans la communauté scientifique, l’IDM est reconnue comme un des sujets importants dans les conférences d’ingénierie logicielle majeures telles qu’ICSE 1 et ASE 2, et est le sujet principal de con- férences et journaux reconnus tels que MoDELS 3 et SoSym 4. Description de la problématique Bien que l’IDM ait montré ses atouts pour améliorer les processus de développement logiciels, l’usage de plus en plus important de grands modèles complexes (en particulier dans des contextes industriels) a montré de claires limitations entravant son adoption [55, 68]. Les évaluations empiriques en situations industriels [117] ont en effet montré que l’une des principales raisons d’échec de l’intégration des techniques d’IDM est liée au manque de support pour le passage à l’échelle des outils existants. En effet, les outils de modélisation développés ces 15 dernières années ont été conçus pour traiter des activités de modélisation basiques et mono-utilisateur, et n’ont pas été pensés pour supporter les modèles de grandes tailles utilisés de nos jours. Par exemple, le métamodèle BIM [2] définit un ensemble riche de concepts (environ 800) permet- tant de décrire précisément différents aspects d’un bâtiment ou d’une infrastructure. Les instances de ce métamodèle contiennent typiquement plusieurs millions d’éléments inter- connectés, et habituellement stockés dans de larges fichiers monolithiques de plusieurs gigabytes. Un exemple typique de problèmes de passage à l’échelle concerne la modernisa- tion automatique de logiciels patrimoniaux basée sur des techniques de rétro-ingénierie dirigée par les modèles. Comme le montre la Figure 1.1, un processus de modernisation d’application dirigée par les modèles est définie comme une séquence d’opérations ayant pour but d’extraire un modèle représentant le logiciel existant (tels que son code source, ses fichiers de configurations, ou ses schémas de bases de données), puis effectuant une série de requêtes et de transformations dans le but de rafiner l’application existante. En- fin, une étape de génération (en général définie par une transformation de modèles) est utilisée pour créer —une partie de— la plateforme modernisée. Dans cet exemple, la taille de l’application à migrer peut être de taille arbitraire, et le passage à l’échelle des solutions techniques peut être une limitation majeure lorsque le processus est appliqué à de grandes bases de codes (contenant plusieurs millions de lignes de codes), et avoir des impacts à plusieurs étapes du processus: (i) l’environnement de modélisation doit permettre de stocker efficacement le modèle représentant l’application existante, (ii) les requêtes doivent être calculées sur les modèles créés efficacement, et (iii) les transfor- mations doivent être effectuées de manière performante pour rafiner (potentiellement de manière répétée) les modèles existants vers l’application modernisée. Ainsi, un ensemble 1. http://www.icse-conferences.org/ 2. http://ase-conferences.org/ 3. https://www.cs.utexas.edu/models2017/home 4. http://www.sosym.org/ 7 de solutions de modélisation prenant en charge les modèles de grande taille est nécessaire pour permettre d’appliquer les techniques de rétro-ingénierie dirigée par les modèles sur des applications patrimoniales de grande taille. Figure 1 – Legacy System Modernization using MDRE Techniques Dans cette thèse, nous nous concentrons sur deux problèmes majeurs afin d’améliorer la mise à l’échelle des solutions techniques existantes et permettre l’utilisation des tech- niques d’IDM dans des contextes industriels impliquant de larges modèles. Mise à l’échelle des techniques de persistance de modèles Historiquement, la séri- alisation sous forme de fichiers XML (eXtensible Markup Language) a été la solution privilégiée pour stocker et partager des modèles. Cependant, ce format a été conçu pour supporter des activités de modélisation simples telles que la création manuelle de mod- èles, et a montré ses limites dans le cadre de scénarios industrial actuels [48, 87] manip- ulant de larges modèles, potentiellement générés automatiquement [19]. En particulier, la représentation XML présente deux inconvénients