Faculté des Sciences et des Sciences de l’ingénieur Département d’Informatique
Faculté des Sciences et des Sciences de l’ingénieur Département d’Informatique N° d’ordre :………… Série :………… Mémoire présenté en vue de l’obtention du diplôme Magister en Informatique Option: Système d’Information et Connaissance SUJET DU MÉMOIRE : Présenté le : 28 /09 /2010 Par : Wahab ROUAGAT Composition du jury : Dr. Brahim BELATTAR Président (Maître de conférences à l’université de Batna). Dr. Tewfik ZIADI Rapporteur (Maître de conférences à l’Université de Paris 6 France) Dr. Allaoua CHAOUI Rapporteur (Maitre de conférences à l’université de Constantine). Pr. Nacerdine ZAROUR Examinateur (Professeur à l’Université de Constantine). Dr. Ezeddine BILAMI Examinateur (Maitre de conférences à l’université de Batna). Rétro-ingénierie des modèles comportementaux d’UML 2 REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université El Hadj Lakhdar – BATNA Dédicace La louange est à Allah Le Clément et Le Miséricordieux et que la prière et le salut de mon Seigneur soient sur son Prophète et son Serviteur Mohammed ( ). Je dédie cet humble travail : A mes très chers parents, faible témoignage de ma reconnaissance pour leurs inestimables efforts consentis dans l’unique souci de ma réussite et de mon bien être ; A mes frères, mes sœurs, et tous les membres de la famille ROUAGAT et MIMI ; A ma chérie ma fidèle fiancée ; A tous mes amis et à toutes personnes ayant contribué de près ou de loin à la réalisation de ce mémoire ; A Mr. Haroun CHENCHOUNI. Remerciements Au terme de ce modeste travail, je tiens à exprimer ma gratitude et présenter mes vifs remerciements à tous ceux qui ont participé de près ou de loin à sa réalisation. Je rends un hommage particulier : - Au Dr. Tewfik ZIADI, du Laboratoire d’Informatique (Université de Paris 6, France) : Celui qui a toujours apprécié mes initiatives et qui m’a encouragé à atteindre mes objectifs. - Au Dr. Allaoua CHAOUI de l’université de Constantine, celui qui m’a aidé dans la réalisation de ce travail, notamment par ses conseils très utiles. - Ma gratitude va également aux honorables membres de jury qui ont bien voulu prendre le soin de lire ce manuscrit et de juger ce travail : ● Dr. Brahim BELATTAR (Maître de conférences à l’université de Batna) ● Pr. Nacerdine ZAROUR (Professeur à l’Université de Constantine). ● Dr. Ezeddine BILAMI (Maitre de conférences à l’université de Batna). - A toute personne m’a enseigné, depuis le primaire jusqu’à l’université. Merci à tous ceux qui ont participé à la réalisation de ce travail. - A tous les collègues, enseignants-chercheurs, responsables et staff administratif du département d’Informatique de l’Université de Batna, en particulier Mr. Boubakeur AZOUI. 1 Table de matière TABLE DE MATIÈRE .................................................................................................................... 1 LISTE DES FIGURES ..................................................................................................................... 4 INTRODUCTION ........................................................................................................................... 6 PARTIE 1 : ÉTAT DE L’ART ......................................................................................................... 9 CHAPITRE 1 : RÉTRO-INGÉNIERIE ........................................................................................... 10 1. Introduction ................................................................................................................. 10 2. Origine et Définition de la rétro-ingénierie ................................................................. 10 3. Apports de la rétro-ingénierie logiciel ......................................................................... 11 4. Étapes de la rétro-ingénierie ....................................................................................... 12 4.1 Collection de données ........................................................................................... 12 4.1.1 Techniques de collection d’informations ....................................................... 12 4.2 Extraction d’informations pertinentes .................................................................. 13 4.3 Visualisation ........................................................................................................... 14 5. La rétro-ingénierie des logiciels orientés objet ........................................................... 15 6. Conclusion .................................................................................................................... 16 CHAPITRE 2 : LANGAGE DE MODÉLISATION UNIFIÉ (UML) ................................................. 17 1. Introduction ................................................................................................................. 17 2. Historique d’UML ......................................................................................................... 17 3. La Méta-Modélisation .................................................................................................. 18 4. Les Diagrammes d’UML2 ............................................................................................. 19 4.1 Les machines à état ............................................................................................... 20 4.2 Les diagrammes de séquence ................................................................................ 21 4.2.1 Les interactions .............................................................................................. 21 4.2.2 Les mécanismes de composition .................................................................... 22 5. Conclusion .................................................................................................................... 26 CHAPITRE 3 RÉTRO-INGÉNIERIE DES MODÈLES COMPORTEMENTAUX .................................. 27 2 1. Introduction ................................................................................................................. 27 2. Etat de l'art sur la rétro-ingénierie des modèles comportementaux d'UML .............. 27 2.1 Travaux de la rétro-ingénierie des machines à états ............................................ 27 2.2 Travaux de la rétro-ingénierie des diagrammes de séquence d’UML .................. 28 2.2.1 Travaux basés sur l'analyse statique ............................................................... 28 2.2.2 Travaux basés sur l'analyse dynamique ......................................................... 29 2.2.3 Travaux basés sur l'analyse hybride ............................................................... 34 2.3 Discussion et conclusion ........................................................................................ 35 PARTIE 2 : CONTRIBUTION .................................................................................................... 38 CHAPITRE 4 : APPROCHE INCRÉMENTALE .............................................................................. 39 1. Introduction ................................................................................................................. 39 2. Exemple pour illustration ............................................................................................. 39 3. Approche incrémentale ............................................................................................... 40 3.1 La Collection de traces ........................................................................................... 41 3.2 Construction incrémentale du diagramme de séquence ...................................... 45 3.2.1 Détection des opérateurs ................................................................................ 48 a) Fragment combiné avec l’opérateur "loop" ....................................................... 48 b) Fragment combiné avec l’opérateur "opt" ......................................................... 51 c) Fragment combiné avec l’opérateur "alt" .......................................................... 53 d) Fragment combiné avec l’opérateur "seq" ......................................................... 56 4. Conclusion .................................................................................................................... 57 CHAPITRE 5 IMPLÉMENTATION ............................................................................................... 58 1. Outils d’implémentation .............................................................................................. 58 1.1 Outils de collection de traces ................................................................................ 58 1.2 Stockage des données ........................................................................................... 61 1.3 API UML2 ............................................................................................................... 63 2. Application de l’approche sur l’exemple Vente ........................................................... 64 3 2.1 Cas d’utilisation ..................................................................................................... 64 CONCLUSION ET PERSPECTIVES ............................................................................................... 70 1. Évaluation .................................................................................................................... 70 2. Discussion des résultats ............................................................................................... 70 3. Perspectives ................................................................................................................. 71 RÉFERENCES ............................................................................................................................. 72 ANNEXES ................................................................................................................................... 76 (1) Code de détection des fragments combinés de type "loop" ....................................... 76 (2) Code source de l’application “Vente” .......................................................................... 77 4 Liste des figures FIG.1.1. MODÈLE D’ARCHITECTURE DES OUTILS PAR [3] ...................................................... 11 FIG. 1.2. ÉTAPES PRINCIPALES DE LA RÉTRO-INGÉNIERIE ...................................................... 12 FIG. 1.3. GRAPHE D’INTERACTION GÉNÉRÉ AVEC PROGRAM EXPLORER [44] ..................... 15 FIG. 2.1. L’ARCHITECTURE À QUATRE NIVEAUX DE L’OMG ................................................. 19 FIG. 2.2. EXEMPLE DE MACHINE À ÉTAT ................................................................................. 21 FIG. 2.3. UNE PARTIE DU MÉTA-MODÈLE DES DIAGRAMMES DE SÉQUENCE D’UML2 .......... 22 FIG. 2.4. EXEMPLE D’UN DS DANS UML2.0 ET SES CONCEPTS .............................................. 23 FIG. 2.5. EXEMPLE DES RÉFÉRENCES VERS LES DS DANS UML2 .......................................... 23 FIG. 2.6. EXEMPLE D’UN DIAGRAMME DE SÉQUENCE COMBINÉ ............................................ 25 FIG. 2.7. EXEMPLE D’UN DIAGRAMME DE VUE D’ENSEMBLE D’INTERACTION DANS UML2 . 25 FIG. 3.1. CFG ET SON DIAGRAMME DE SÉQUENCE CORRESPOND [1] ..................................... 29 FIG. 3.2. DS APRÈS L’EXÉCUTION DE DEUX ITÉRATIONS D’UNE BOUCLE [7] ......................... 30 FIG. 3.3. ARCHITECTURE DE JAVAVIS [7] ............................................................................ 31 FIG. 3.4. MÉTA-MODÈLE DE DIAGRAMME DE SCÉNARIO BRIAND ET AL. [12] ....................... 32 FIG. 3.5. MÉTA-MODÈLE DE TRACE BRIAND ET AL. [12] ........................................................ 32 FIG. 3.6. APPARIEMENT ENTRE TRACE ET SÉQUENCE MÉTA-MODÈLES BRIAND ET AL. [12] 33 FIG. 4.1. LA CONSTRUCTION INCRÉMENTALE DU DIAGRAMME DE SÉQUENCE ...................... 41 FIG. 4.2. TRACES DE L’APPLICATION VENTE AVEC LES DONNÉES D’ENTRÉE DE CHAQUE TRACE ....................................................................................................................................... 42 FIG. 4.3. EXEMPLE DE TRACE ................................................................................................. 43 FIG. 4.4. LA DÉCOMPOSITION DES TRACES EN BLOCS ............................................................. 48 FIG. 4.5. DS DE VENTE APRÈS APPLICATION DE L’ALGORITHME DÉTECTION DE LOOP. ........ 50 FIG. 4.6. DS DE VENTE APRÈS L’APPLICATION DE L’ALGORITHME DÉTECTION DE OPT ........ 53 FIG. 4.7. DS FINAL DE L’APPLICATION VENTE......................................................................... 57 FIG. 5.1. CODE SOURCE DE L’EXEMPLE LOOP.JAVA .............................................................. 58 FIG. 5.2. VERSION NON INSTRUMENTÉ DE LA MÉTHODE M1(). ............................................... 59 FIG. 5.3. VERSION INSTRUMENTÉ DE LA MÉTHODE M1(). ...................................................... 59 FIG. 5.4. TRACE 2 DE L’APPLICATION VENTE GÉNÉRÉE PAR L’OUTIL MODEC .................... 60 FIG. 5.5. TRACE2 ADAPTÉ DE L’APPLICATION VENTE ............................................................ 61 FIG. 5.6. LE MODÈLE RELATIONNEL INTERMÉDIAIRE ........................................................... 62 FIG. 5.7. VUE INITIALE DE LA TABLE MESS_TR ..................................................................... 65 FIG. 5.8. VUE FINALE DE LA TABLE MESS_TR ........................................................................ 66 5 FIG. 5.9. VUE FINALE DE LA TABLE COMBINED_FRAGMENTS ................................................ 67 FIG. 5.10. VUE FINALE DE LA TABLE OPERANDS .................................................................... 67 FIG. 5.11. LE DIAGRAMME DE SÉQUENCE GÉNÉRÉ AFFICHÉ PAR UN ÉDITEUR ECLIPSE ...... 68 FIG. 5.12. UNE PARTIE DU DS REPRÉSENTE UN FRAGMENT COMBINÉ SOUS FORME D’UN DOCUMENT UML ...................................................................................................................... 69 INTRODUCTION 6 Introduction Les systèmes logiciels sont devenus très importants dans notre vie quotidienne. Ils contrôlent les machines de payement, les instruments médicales, les systèmes de télécommunication et plusieurs d’autres systèmes. A cause de leur intérêt et leur vaste domaine d’application, tout comportement non désiré ou erreur de fonctionnement peut engendrer des pertes d’argent, arrêts de services et des risques de vies. La fiabilité de logiciels devient donc un facteur suprême. D’autre part, l’évolution de besoins et le changement continu de contextes de fonctionnement nécessitent la mise à jour et la maintenance courante de ces systèmes. Dans le cycle de vie de développement des applications logicielles, l’étape de maintenance est l’étape la plus critique, et elle consomme environ 90% de l’ensemble des ressources utilisées [5]. La tache principale de la maintenance est de comprendre l’application en analysant sa structure et l’organisation de ses composants afin de fixer les problèmes et/ou d’ajouter des nouvelles caractéristiques [5]. Utiliser directement le code source pour comprendre une application est une tache difficile pour trois raisons principales : 1) les applications sont de plus en plus complexes et leur code source est dispersé sur des milliers voir des millions de lignes de code. 2) les applications, principalement les anciennes (connues par l’appellation « legacy systems »), sont souvent codées dans des langages de programmations obsolètes peu connus actuellement par les mainteneurs1. 3) la maintenance est souvent réalisée par des individus qui n’ont pas été impliqués dans le codage de l’application. Ainsi, les mainteneurs ont besoin de disposer d’une représentation abstraite permettant de gérer la uploads/Litterature/ 127627-retro-ingenierie-des-modeles.pdf
Documents similaires










-
33
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 18, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 3.7722MB