Your SlideShare is downloading. ×
Generateur de code java (GenJAVA)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Generateur de code java (GenJAVA)

7,706

Published on

Published in: Education, Technology, Business
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,706
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
267
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 1 GÉNÉRATION AUTOMATIQUE DU CODE JAVA Ministère de l'enseignement supérieur et de la recherche scientifique Préparé par : MOHAMED OULD YESLEM HERAGMI KAMEL EDDINE Centre universitaire de Souk-AhrasCentre universitaire de Souk-Ahras Dirigé par : Dr ABDELKRIM AMIRA Soutenance en vue de l’obtention du diplôme de LICENCE EN INFORMATIQUE
  • 2. 1. Introduction 2. Modélisation orientée Objet 3. Types de relation − Héritage − Association − Agrégation − Composition − Implémentation − Dépendance − Classe-association 4. Document XMI 5. Approche de Génération du code 6. Implémentation des relations en java 7. Développement de l’outil(GenJava) Plan de travail 2
  • 3. Déploiement Système réel RéalisationConceptionAnalyse Introduction Modèle d’Analyse Modèle de Conception Modèle de Réalisation Modèle de Déploiement UML (Unified Modeling Language) 3
  • 4. 4 Introduction Problématique Objectif La conception qui faite par UML doit être implémenter avec un langage de programmation pour réaliser un système réel , cette implémentation peut être automatiser ,a l’aide d’un modèle intermédiaire (XMI). Model.UML Fichier.XMI Code source 1. réduire le temps de développement, 2. éviter les erreurs de programmation, 3. Facilite le développement de logiciel
  • 5. Autres méthodes Booch’91 OMT-1 OOSE Partenaires Booch’93 OMT-2 Méthode unifiée 0.8 UML 0.9 UML 1.0 Octobre 1995 Janvier 1997 Juin 1999 UML 2.0 Historique d’UML 5 UML1.3
  • 6. Les 13 diagrammes UML 6
  • 7. Modélisation orientée Objet Résumé • UML est une notation, pas une méthode. • UML est un langage de modélisation objet. • UML convient pour toutes les méthodes objet. • UML est dans le domaine public. Programmation Orientée Objet modéliser informatiquement des éléments d'une partie du monde réel en un ensemble d'entités informatiques (objets) Intérêt d'une méthode orientée objet • définir le problème à haut niveau sans rentrer dans les spécificités du langage • définir un problème de façon graphique • utiliser les services offertes par l’objet sans rentrer dans le détail de programmation (Encapsulation) • Réutilisation du code 7
  • 8. Notion d’Objet Une abstraction du monde réel c.-à-d.. des données informatiques regroupant des caractéristiques du monde réel Exemple une personne, une voiture, une maison, ... Caractérisation d’un objet Identité Attributs Méthodes FIAT-UNO-17 : Voiture 233434 : Numéro de série 1500 kg : Poids 8864 YF 17 : Immatriculation 133 000 : kilométrage Démarrer () Arrêter() Rouler() Modélisation orientée objet(3) 8
  • 9. Notion de Classe • Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités qui composeront l’objet • Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule Notation un objet est une instanciation (occurrence) d'une classe Modélisation orientée objet(4) Nom _de_la_classe # Atribut1: type -Attribute2: type +Methode1() -Methode2() … 9
  • 10. FIAT-UNO-17 233434 : Numéro de série 1500 kg : Poids 8864 YF 17 : Immatriculation 33 000 : kilométrage Renault-Clio-17 5323454 : Numéro de série 1500 kg : Poids 64 YFT 17 : Immatriculation 23 000 : kilométrage Modélisation orientée objet(5) Voit ur e + Numero_de_serie: int + Poids: double + Immatriculation: String + Kilometrage: double + Demarrer() + Arreter() + Rouler() 10 3434 : Numéro de série 1700 kg : Poids 8634 YGG 75 : Immatriculation 15 000 : kilométrage Peugeot-206-75
  • 11. Visibilité des attributs définissent les droits d'accès aux données (pour la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque) Publique (+) les classes peuvent accéder aux données et méthodes d'une classe définie avec le niveau de visibilité public Protégée (#): l'accès aux données est réservé aux fonctions des classes héritières Privée (-): l'accès aux données est limité aux méthodes de la classe elle-même Nom _ de_ la_ classe # Atribut1: type -Attribute2: type + Methode1() -Methode2() … 11 Modélisation orientée objet (6)
  • 12. Principe classe dérivée contient les attributs et les méthodes de sa superclasse Spécialisation Généralisation étendre les propriétés d'une classe, sous forme de sous-classes factoriser les propriétés groupe de classes sous forme de super-classe Chaque personne de l’université est identifiée par son nom, prénom Les étudiants ont plus un noEtudiant Les enseignants ont un numéro de téléphone interne Types de relation : Héritage 12
  • 13. 13 Navigabilité  Par défaut une association est navigable dans les deux sens Chaque instance de voiture a un lien vers le propriétaire Chaque instance de Personne a un ensemble de lien vers les voitures  Restriction de la navigabilité Le service de contravention est associé à une ou plusieurs voiture(s) La voiture ne connaît pas service de contravention Navigable Types de relation : Association
  • 14. 14 Multiplicités 1 : la classe est en relation avec un et un seul objet de l’autre classe 1..* : la classe est en relation avec au moins un objet de l’autre classe 0..* : la classe est en relation avec 0 ou n objets de l’autre classe 0..1 : la classe est en relation avec au plus un objet de l’autre classe Une voiture est achetée par une et une seule personne Une personne peut acheter 0 ou n voitures Types de relation : Association
  • 15. 15 Type de relations  A « contient » des instances de B, Propriétés de l’agrégation  La suppression de A n’implique pas la suppression de B  L'élément agrégé peut être partagé Exemples :  L’enseignant est un composant d’une (ou plusieurs) équipe de recherche d’un seul département  La disparition d’une équipe de recherche n’entraine pas la disparition d’un enseignant BA Agrégat Types de relation : Agrégation
  • 16. 16  La suppression de A entraine la suppression de B Exemple: « Une présentation PowerPoint est composé de transparents » La suppression de la présentation entraine la disparition des transparents qui la compose Types de relation : Composition
  • 17. Types de relation : Implémentation 17  Une interface est la spécification externe (en terme d’opérations) d’une classe.  Une interface peut donc contenir des opérations.  Une classe réalise une interface si elle est capable d’exécuter toutes les opérations de l’interface.  Une classe peut implémente plusieurs interfaces Notation I nt erface
  • 18. Types de relation : Dépendance 18  La notion de dépendance est plus floue que les précédentes. Il est difficile de faire une nomenclature complète des possibles relations de dépendance. Notation: ClassUn ClassException
  • 19. Types de relation : Classe-association 19 Une classe-association possède les caractéristiques des associations et des classes : elle se connecte à deux ou plusieurs classes et possède également des attributs et des opérations. Notation:
  • 20. Diagramme de classes 20 Exemple complet
  • 21. 21 XML Ne tient pas compte de la mise en forme, mais seulement du contenu. Un système de balises permet de décrire les éléments de structure du document, ainsi que les relations entre ces éléments Chaque balise peut disposer d'un ou plusieurs attributs Document XMI <EtatCivile> <Nom>Heraguemi</Nom> <Prenom>Kamel eddine </Prenom> <Naicence> <Date> <Jour>30</Jour> <Moi>05</Moi> <Annee>1989</Annee> </Date> </Naicence> </EtatCivile>
  • 22. 22 XMI (XML Métadata Interchange) Exprimer les concepts de la modélisation objet. possible d'encoder un modèle UML dans un fichier au format XML Document XMI (suite)
  • 23. 23 1. Etapes de génération de code  Génération structurelle de code  Génération comportementale du code  Génération de la spécification 2. Approche Il existe 2 approches principaux:  mapping direct des modèles UML vers un langage de programmation  Génération de code avec un modèle intermédiaire Approche de génération du code
  • 24. 24 Modèle UML Modèle JAVA Modèle C# Description de la Platform C# Description de la Platform JAVA Transformation Transformation Approche de génération du code (suite) Figure 3. 2- Génération de code avec Un modèle Intermédiaire. Transformation Transformation Modèle UML Modèle JAVA Modèle Intermédiaire Description de la Platform JAVA Génération de code avec Un modèle Intermédiaire Génération de code avec le mapping direct
  • 25. Implémentation des relations en Java 25
  • 26. 26 Implémentation des relations en Java (2)
  • 27. 27 Implémentation des relations en Java (3)
  • 28. 28 Développement de l’outil (GenJava)  Environnement de développement  Environnement matériel • « HP » avec un processeur Intel(R) Core(TM)2 Duo CPU T5870@ 2.00GHz 2.00 GHz d'une Ram de 2 G et d'un disque dur de 250 Go • « Acer » avec un processeur Intel Pentium dual-core processor de vitesse 800 MHz, doté d'une Ram de 2 G et d'un disque dur de 160 Go.  Environnement logiciel   • Environnement de développement : Eclipse Galileo 3.5. • Outil de conception : StarUML 5.0.2.
  • 29. 29 Développement de l’outil (GenJava)(suite)  Vue dynamique de GenJava Etat Initiale Création de Workspace Etat 3Etat 2 Charger XMI Nettoyage Traitement Design Model.xml Classe.java Etat Finale Charger StarUML Exportation Model. uml File.xml
  • 30. 30 Nettoyage Design Model.xml Ce fait a l’aide de deux classes responsable sur ce traitement sont la classe principal.java et la classe parser.java , la première recherche l’emplacement de design model et la deuxième pour faire l’extraction de design model Etape de nettoyage Design Model.xml : Contient seulement tous les concepts qui concerne le diagramme de classe
  • 31.  Vue statique de GenJava La structure interne de GenJava et Compose en 3 paquetages : 1. Classe_Interface_Pack. 2. Relation. 3. Interface. 31 Etape de Traitement Cl_int_Pack SwingInterface Relation USE USEUSE Diagramme de paquetage de GenJava Le paquetage « Relation » Contient les Classes qui représentent les déférentes relations représenter par Diagramme de classe , Comme l’héritage ,l’implémentation … Le paquetage « CL_Int_Pack » Contient les Classes qui représentent les déférents concepts représenter par Diagramme de classe , Comme Les classes ,les Interfaces …, Le paquetage « Interface » Contient les Classes qui construire l’interface de GenJava
  • 32. 32 Extraire les concepts qui concerne les méthodes « UML:Operation» Extraire les concepts qui concerne les parametre des méthodes « UML:Parametre» Extraire les concepts qui concerne les attributs « UML:Attribut» Extraire tout les concepts qui concernant les classes exceptions « UML:ClassException»Extraire tout les concepts qui concerne les classes association « UML:AssociationClass » Extraire tout les concepts qui concerne les classes « UML:Class » Extraire tous les concepts qui concerne les interfaces « UML:Interface » Crée les fichiers qui concerne chaque concept Scanner le fichier XML pour obtenue un fichier Design model.xml. et Extraire les package « UML:Package» Extraire les valeurs de chaque concepts a partir de Design Model. xml Extraire les types des attributs et des méthodes «UML: DataType » Etape de Traitement (2)
  • 33. 33 Relation Gener alisat ion Dependance Associat ion + 1 1..* 1 2 Associat ionend I m plem ent at ion Mult iplicit e Extraire les concepts qui concerne les relations associations « UML:Association » Extraire les concepts qui concerne Les sous relation associationEnd « UML:AssociationEnd » Extraire les concepts qui concerne les implémentations « UML:Realization » Extraire les concepts qui concerne les dépendance s « UML:Dependency » Extraire les concepts qui concerne les généralisations « UML:Generalization » Extraire les concepts qui concerne les multiplicités « UML:Multiplicity  » Etape de Traitement (3)
  • 34. Fonctionnement de GenJava 34 Icone GenJava Changer le Workspace Chemin de Workspace validation de projet Nom projet La page d’accueil de GenJava
  • 35. Fonctionnement de GenJava (2) 35 Interface de travaille On clic sur le Botton (StarUML)  pour ouvrir StarUml et crier le diagramme de classe
  • 36. Fonctionnement de GenJava(3) 36 Exemple
  • 37. Fonctionnement de GenJava (4) 37 Ouvrir le fichier XMI On clic sur le Botton (Open XMI) pour Ouvrir le fichier XMI Précédamant crier
  • 38. Fonctionnement de GenJava (5) 38 Fichier XMI On clic sur le Botton (Generation) pour générer les codes Java propre
  • 39. Fonctionnement de GenJava (6) 39 Résultat de la class1 (code Java propre)
  • 40. Fonctionnement de GenJava (7) 40 Résultat de la class2 (code Java propre)
  • 41. Fonctionnement de GenJava (8) 41 Résultat de la class3 (code Java propre)
  • 42. Fonctionnement de GenJava (9) 42 Résultat de la class4 (code Java propre)
  • 43. Fonctionnement de GenJava (10) 43 Résultat de l’interface (code Java propre)
  • 44. Fonctionnement de GenJava (11) 44 Résultat de l’exception1 (code Java propre)
  • 45. Fonctionnement de GenJava (13) 45 Résultat de l’exception2 (code Java propre)
  • 46. 46

×