Вы находитесь на странице: 1из 46

Ministre de l'enseignement suprieur et de la recherche scientifique

Centre universitaire de Souk-Ahras

GNRATION AUTOMATIQUE DU CODE JAVA


Soutenance en vue de lobtention du diplme de LICENCE EN INFORMATIQUE

Prpar par : MOHAMED OULD YESLEM HERAGMI KAMEL EDDINE


1

Dirig par : Dr ABDELKRIM AMIRAT


1

Plan de travail
1. 2. Introduction Modlisation oriente Objet Hritage
Association Agrgation Composition Implmentation Dpendance Classe-association

3. Types de relation

4.

Document XMI

5.
6. 7.
2

Approche de Gnration du code


Implmentation des relations en java Dveloppement de loutil(GenJava)

Introduction

Systme rel

Analyse Modle dAnalyse

Conception Modle de Conception

Ralisation Modle de Ralisation

Dploiement Modle de Dploiement

UML (Unified Modeling Language)


3

Introduction

Problmatique La conception qui faite par UML doit tre implmenter avec un langage de programmation pour raliser un systme rel , cette implmentation peut tre automatiser ,a laide dun modle intermdiaire (XMI). Model.UML Fichier.XMI Code source

Objectif 1. rduire le temps de dveloppement,


2. viter les erreurs de programmation, 3. Facilite le dveloppement de logiciel

Historique dUML
UML 2.0 Juin 1999 Janvier 1997
UML1.3 UML 1.0

UML 0.9

Octobre 1995

Mthode unifie 0.8

Booch93

OMT-2

Autres mthodes
5

Booch91

OMT-1

OOSE

Partenaires

Les 13 diagrammes UML

Modlisation oriente Objet


Rsum UML UML UML UML

est une notation, pas une mthode. est un langage de modlisation objet. convient pour toutes les mthodes objet. est dans le domaine public.

Programmation Oriente Objet modliser informatiquement des lments d'une partie du monde rel en un ensemble d'entits informatiques (objets) Intrt d'une mthode oriente objet dfinir le problme haut niveau sans rentrer dans les spcificits du langage dfinir un problme de faon graphique utiliser les services offertes par lobjet sans rentrer dans le dtail de programmation (Encapsulation) Rutilisation du code
7

Modlisation oriente objet(3)


Notion dObjet

Une abstraction du monde rel c.--d.. des donnes informatiques regroupant des caractristiques du monde rel

Exemple

une personne, une voiture, une maison, ...

Caractrisation dun objet


Identit Attributs Mthodes
FIAT-UNO-17 : Voiture
233434 : Numro de srie 1500 kg : Poids 8864 YF 17 : Immatriculation 133 000 : kilomtrage Dmarrer () Arrter() Rouler()

Modlisation oriente objet(4)


Notion de Classe Structure d'un objet, c.--d. une dclaration de l'ensemble des entits qui composeront lobjet 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

Nom_de_la_classe #Atribut1: type -Attribute2: type +Methode1() -Methode2()

Modlisation oriente objet(5)


Voiture +Numero_de_serie: int +Poids: double +Immatriculation: String +Kilometrage: double +Demarrer() +Arreter() +Rouler()

FIAT-UNO-17
233434 : Numro de srie 1500 kg : Poids 8864 YF 17 : Immatriculation 33 000 : kilomtrage

Renault-Clio-17
5323454 : Numro de srie 1500 kg : Poids 64 YFT 17 : Immatriculation 23 000 : kilomtrage

Peugeot-206-75
3434 : Numro de srie 1700 kg : Poids 8634 YGG 75 : Immatriculation 15 000 : kilomtrage

10

Modlisation oriente objet (6)

Visibilit des attributs

dfinissent les droits d'accs aux donnes (pour la classe elle-mme, d'une classe hritire, ou bien d'une classe quelconque) Publique (+) les classes peuvent accder aux donnes et mthodes d'une classe dfinie avec le niveau de visibilit public Protge (#): l'accs aux donnes est rserv aux fonctions des classes hritires Prive (-): l'accs aux donnes est limit aux mthodes de la classe elle-mme

Nom_de_la_classe #Atribut1: type -Attribute2: type +Methode1() -Methode2()

11

Types de relation : Hritage

Principe

classe drive contient les attributs et les mthodes de sa superclasse

Spcialisation
tendre les proprits d'une classe, sous forme de sous-classes

Gnralisation
factoriser les proprits groupe de classes sous forme de super-classe

12

Chaque personne de luniversit est identifie par son nom, prnom Les tudiants ont plus un noEtudiant Les enseignants ont un numro de tlphone interne

Types de relation : Association


Navigabilit
Par dfaut une association est navigable dans les deux sens

Chaque instance de voiture a un lien vers le propritaire 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 connat pas service de contravention

Navigable

13

Types de relation : Association


Multiplicits
1 : la classe est en relation avec un et un seul objet de lautre classe 1..* : la classe est en relation avec au moins un objet de lautre classe

0..* : la classe est en relation avec 0 ou n objets de lautre classe


0..1 : la classe est en relation avec au plus un objet de lautre classe Une voiture est achete par une et une seule personne Une personne peut acheter 0 ou n voitures

14

Types de relation : Agrgation


Type de relations A contient des instances de B,
Agrgat A B

Proprits de lagrgation La suppression de A nimplique pas la suppression de B L'lment agrg peut tre partag Exemples : Lenseignant est un composant dune (ou plusieurs) quipe de recherche dun seul dpartement
La disparition dune quipe de

recherche nentraine pas la disparition dun enseignant

15

Types de relation : Composition


La suppression de A entraine la suppression de B

Exemple:
Une prsentation PowerPoint est compos de transparents La suppression de la prsentation entraine la disparition des transparents qui la compose

16

Types de relation : Implmentation


Une interface est la spcification externe (en terme doprations)

dune classe.

Une interface peut donc contenir des oprations. Une classe ralise une interface si elle est capable dexcuter

toutes les oprations de linterface. Notation

Une classe peut implmente plusieurs interfaces

Interface

17

Types de relation : Dpendance

La notion de dpendance est plus floue que les prcdentes. Il est

difficile de faire une nomenclature complte des possibles relations de dpendance. Notation:

ClassUn

ClassException

18

Types de relation : Classe-association


Une classe-association possde les caractristiques des associations et des classes : elle se connecte deux ou plusieurs classes et possde galement des attributs et des oprations. Notation:

19

Diagramme de classes
Exemple complet

20

Document XMI
XML
Ne tient pas compte de la mise en forme, mais seulement du

contenu.

Un systme de balises permet de dcrire les lments de structure

du document, ainsi que les relations entre ces lments


<EtatCivile> <Nom>Heraguemi</Nom> <Prenom>Kamel eddine </Prenom> <Naicence> <Date> <Jour>30</Jour> <Moi>05</Moi> <Annee>1989</Annee> </Date> </Naicence> </EtatCivile>

Chaque balise peut disposer d'un ou plusieurs attributs

21

Document XMI (suite)


XMI (XML Mtadata Interchange)
Exprimer les concepts de la modlisation objet. possible d'encoder un modle UML dans un fichier au format XML

22

Approche de gnration du code


1. Etapes de gnration de code
Gnration structurelle de code Gnration comportementale du code

Gnration de la spcification

2. Approche
Il existe 2 approches principaux: mapping direct des modles UML vers un langage de programmation Gnration de code avec un modle intermdiaire

23

Approche de gnration du code (suite)


Description de la Platform C# Description de la Platform JAVA

Modle C#

Modle UML

Modle JAVA

Gnration de code avec le mapping direct


Description de la Platform JAVA

Transformation

Transformation

Modle UML

Modle Intermdiaire

Modle JAVA

Transformation

24

Figure 3. 2- Gnration de code avec Un modle Intermdiaire.

Gnration de code avec Un modle Intermdiaire

Transformation

Implmentation des relations en Java

25

Implmentation des relations en Java (2)

26

Implmentation des relations en Java (3)

27

Dveloppement de loutil (GenJava)

Environnement de dveloppement
Environnement matriel 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 dveloppement : Eclipse Galileo 3.5. Outil de conception : StarUML 5.0.2.

28

Dveloppement de loutil (GenJava)(suite)


Vue dynamique de GenJava
Etat Initiale
Cration de Workspace Etat 2 Charger StarUML Etat 3 Charger XMI

Model. uml

Nettoyage

Design Model.xml Exportation Traitement File.xml 29 Etat Finale

Classe.java

Etape de nettoyage

Ce fait a laide de deux classes responsable sur ce traitement sont la classe principal.java et la classe parser.java , la premire recherche lemplacement de design model et la deuxime pour faire lextraction de design model

Design Model.xml : Contient seulement tous les concepts qui concerne le diagramme de classe Nettoyage

Design Model.xml

30

Etape de Traitement
Vue statique de GenJava
La structure interne de GenJava etles Classes qui 3 paquetages : Le paquetage Relation Contient Compose en Le paquetage CL_Int_Pack Contient les Classes qui Le paquetage Interface reprsentent les dfrentes relations reprsenter par concepts reprsenter par qui 1. Classe_Interface_Pack. dfrents Contient les Classes reprsentent les construire Diagramme Relation., Comme lhritage linterface de GenJava ,les 2. de classe Diagramme de classe , Comme Les classes 3. ,limplmentation Interface. Interfaces ,
Diagramme de paquetage de GenJava
Cl_int_Pack Relation

USE

USE

Interface
USE

Swing

31

Etape de Traitement (2)


Extraire les types des attributs et des mthodes UML: DataType Extraire les valeurs de chaque concepts a partir de Design Model. xml Scanner le fichier XML pour obtenue un fichier Design model.xml. et Extraire les package UML:Package

Extraire tous les concepts qui concerne les interfaces UML:Interface

Cre les fichiers qui concerne chaque concept

Extraire tout les concepts qui concerne les classes UML:Class

Extraire tout les concepts qui concerne les classes association UML:AssociationClass

Extraire tout les concepts qui concernant les classes exceptions UML:ClassException

32

Extraire les concepts qui concerne les attributs UML:Attribut

Extraire les concepts qui concerne les parametre des mthodes UML:Parametre

Extraire les concepts qui concerne les mthodes UML:Operation

Etape de Traitement (3)


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 implmentations UML:Realization

Association
Extraire les concepts qui concerne les dpendance s UML:Dependency

Relation 2 1

Associationend

+1 Dependance

Implementation 1..* Multiplicite


Extraire les concepts qui concerne les multiplicits UML:Multiplicity

Generalisation

33

Extraire les concepts qui concerne les gnralisations UML:Generalization

Fonctionnement de GenJava
La page daccueil de GenJava

Icone GenJava

Changer le Workspace
Chemin de Workspace

validation de projet

Nom projet

34

Fonctionnement de GenJava (2)


Interface de travaille

On clic sur le Botton (StarUML) pour ouvrir StarUml et crier le diagramme de classe

35

Fonctionnement de GenJava(3) Exemple

36

Fonctionnement de GenJava (4)


Ouvrir le fichier XMI

On clic sur le Botton (Open XMI) pour Ouvrir le fichier XMI Prcdamant crier

37

Fonctionnement de GenJava (5)


Fichier XMI

On clic sur le Botton (Generation) pour gnrer les codes Java propre

38

Fonctionnement de GenJava (6)


Rsultat de la class1 (code Java propre)

39

Fonctionnement de GenJava (7)


Rsultat de la class2 (code Java propre)

40

Fonctionnement de GenJava (8)


Rsultat de la class3 (code Java propre)

41

Fonctionnement de GenJava (9)


Rsultat de la class4 (code Java propre)

42

Fonctionnement de GenJava (10)


Rsultat de linterface (code Java propre)

43

Fonctionnement de GenJava (11)


Rsultat de lexception1 (code Java propre)

44

Fonctionnement de GenJava (13)


Rsultat de lexception2 (code Java propre)

45

46

Вам также может понравиться