| 
 íãáÚáÇ
ËÍÈáÇ æ
íáÇÚáÇ
ã?áÚÊáÇ
ÉÑÇÒæ 
  
Centre universitaire 
de Souk-Ahras  
ÜÚ ?? ? ? ÜÜ ? ? 
ÓÇÑÜÜ ? ?
ÜÓ 
Institut : Sciences &
Techniques Département : Sciences 
Mémoire 
uwuuuwu w uuu Uu wuwuuuu UU UWWUU UU LICENCE EN
INFORMATIQUE 
Génération automatique du code
java 
A partir d'un modèle de classe UML 
Par 
HERAGUEMI KAMEL EDDINE OULD YESLEM MOUHAMED 
devant le jury si-dessous 
 
| 
 Président : Examinateur : Encadreur : 
 | 
 Mr MOUHAMED BENDRISS Mme NADIA BENATI 
DR ABDELKRIM AMIRAT 
 | 
 
  
UWW UUUU 
Remerciement
A l'issue de ce travail, nous remercions, en premier lieu, le
bon Dieu de nous avoir donné la force et le courage de le mener
à terme. 
Nous tenons, également, à exprimer notre
sincère reconnaissance et notre profonde gratitude à tous ceux
qui ont contribué de près ou de loin à la
réalisation de ce mémoire, notamment notre promoteur Dr :
Amirat dont les conseils et orientations nous ont
été précieusement utiles. 
Introduction 1 
Motivations et Objectifs 2 
Organisation du document 2 
Chapitre 1 Développement Orienté Objet
3 
1.1. Introduction 3 
1.2 Paradigme Orienté Objet 3 
1.2.1 Encapsulation 4 
1.2.2 Héritage 5 
1.2.3 Polymorphisme 6 
1.3 Définitions 7 
1.3.1 Objet 7 
1.3.2 Classe 7 
1.4 UML langage de modélisation Orienté Objet 8 
1.4.1 Historique 8 
1.4.2 Description d'UML 2.0 9 
1.4.2.1 Diagrammes structurels 9 
1.4.2.2 Diagrammes comportementaux 10 
1.5 Document XMI 11 
1.5.1 Historique 11 
1.5.2 Concepts de base 11 
1.5.3 Le standard XMI 12 
1.5.3.1 Principe de fonctionnement 12 
1.5.3.2 Le format XMI 13 
1.5.3.4 Structure générale d'un document 13 
1.5.3.5 Représentation des diagrammes de classes en XMI
13 
1.6. Conclusion 14 
Chapitre 2 Diagramme de classe 15 
2.1. Introduction 15 
2.2 Les paquetages 15 
2.3 Les interfaces 16 
2.4 Classes 16 
2.4.1 Classes abstraites 16 
2.4.2 Classes non abstraites 17 
2.4.3 Les attributs 17 
2.4.4 Les méthodes 17 
2.5 Relations entre classes 18 
2.5.1 Relation d'association 18 
2.5.2 Relation d'Association binaire et n-aire 19 
2.5.2 .1 Relation d'Association binaire 19 
2.5.2 .2 Relation d'Association n-aire 19 
2.5.3 Multiplicité 20 
2.5.4 Navigabilité 20 
2.5.5 Qualification 21 
2.5.6 Classe-association 22 
2.5.6.1 Définition et représentation 22 
2.5.6.2 Auto-association sur classe-association 22 
2.5.7 Agrégation et composition 23 
2.5.7 .1 Relation d'Agrégation 23 
2.5.7.2 Relation Composition 24 
2.5.8 Relation de Généralisation 24 
2.5.9 Relation de Dépendance 25 
2.5.10 Relation d'Implémentation 26 
2.5.11 Commentaires en UML 26 
2.6 Conclusion 27 
Chapitre 3 Génération de code
28 
3.1. Introduction 28 
3.2 Définition 28 
3.2 Objectifs 29 
3.3 Etapes de génération de code 29 
3.3.1 Génération structurelle de code 29 
3.3.2 Génération comportementale du code 29 
3.3.3 Génération de la spécification 29 
3.4 Approches de la génération de code 30 
3.5 Conclusion 31 
Chapitre 4 Développement de l'outil
32 
5.1. Introduction 32 
4.2 Environnement de développement 32 
4.2.1 Environnement matériel 32 
4.2.1 Environnement logiciel 32 
4.3 Choix technique 33 
4.3.1 Choix de L'environnement 33 
4.3.1.1 Java JDK 6.0 sur Eclipse 3.5 33 
4.3.1.2 StarUML 5.02 34 
4.4 Implémentation et validation de GenJava 35 
4.4.1 Principe de fonctionnement 36 
4.4.2 Phase de test et de validation 36 
4.4.2.1 Déploiement de l'application 36 
4.4.2.2 Création du fichier setup « GenJava.exe
» de l'application 37 
4.4.2.3 Installation de l'application 38 
4.4.2.4 Interfaces de l'application 40 
4.4.2.4.1 La page d'accueil 40 
4.4.2.4.1 Page de travaille 41 
4.4.2.5 Fonctionnement de GenJava 42 
4.5 Limites de GenJava 44 
4.5 Transformation de modèles de classe UML vers code JAVA
45 
Conclusion 51 
Bibliographie 53 
 |