De UML vers Java

Programming, UML, Java · course

Chapitre 7

De UML vers Java

Plan

1. Traduction des classes

2. Traduction des attributs

3. Traduction des méthodes

4. Traduction des associations

18/12/2013

2

3

1

18/12/2013

Traduction d’une classe

(cid:1) Chaque classe UML devient par défaut un

fichier .java.

(cid:1) Exemple:

Personne

class Personne{

…

…

….

}

4

Traduction d’une classe

(cid:1)Une classe abstraite est simplement une classe

qui ne s’instancie pas directement mais qui

représente une pure abstraction afin de

factoriser des propriétés.

(cid:1)Elle se note avec « abstract » en UML et se

traduit par le mot-clé abstract en Java.

(cid:1)Exemple:

abstract class Personne{

….

….

}

5

2

Traduction d’une classe

(cid:1) Une interface est une classe spéciale dont toutes les méthodes sont

Publicité

abstraites

(cid:1) En java, elle est traduite par le mot clé ‘interface’

(cid:1) Pour implémenter une interface, on utilise ‘implements’

(cid:1) Exemple:

interface Forme {

Forme

…

…

…

}

class Rectangle implements Forme{

…

}

6

Traduction des attributs

(cid:1)Les attributs UML deviennent simplement des

attributs en Java

(cid:1)Leur type est soit un type primitif (int, etc.), soit

une classe.

(cid:1)La visibilité des attributs:

(cid:1) + pour public, public en Java

(cid:1) # pour protégé, protected en Java

(cid:1) - pour privé, private en Java.

(cid:1)Les attributs de classe en UML deviennent des

membres statiques en Java (static).

7

18/12/2013

3

Traduction des méthodes

(cid:1)Les méthodes UML deviennent directement des

méthodes en Java.

(cid:1)Leur visibilité est définie avec les mêmes

conventions que les attributs.

(cid:1)Les opérations de classe deviennent des

méthodes statiques (static).

(cid:1)Les opérations abstraites (en italiques) se

traduisent par le mot-clé abstract en Java.

Exemple

class Personne {

Publicité

private int code;

private String nom;

private static int nombre;

public Personne() {

}

public static int getNombre(){

}

public String getInf(){

}

}

8

9

18/12/2013

4

18/12/2013

Traduction des associations (la généralisation)

(cid:1)La généralisation en UML se traduit

directement par le mécanisme de l’héritage.

(cid:1)Remarque: Java, contrairement à C++ interdit

l’héritage multiple entre classes.

(cid:1)Exemple:

Class Personne{

Personne

…}

Class Employe extends

Personne{

…

Employe

}

10

Traduction des associations

(cid:1)La traduction d’une association navigable

dépend de la multiplicité de l’extrémité

concernée (pointée par la flèche):

(cid:1) Une multiplicité 1 se traduit par une variable

d’instance de type référence vers une instance de

classe.

(cid:1) Une multiplicité « * » va se traduire par un attribut

de type collection de références d’objets au lieu

Publicité

d’une simple référence sur un objet.

11

5

18/12/2013

Traduction des associations

Exemple

12

Traduction des associations

(cid:1)Une association bidirectionnelle se traduit

simplement par une paire de références, une

dans chaque classe impliquée dans

l’association.

(cid:1)Les noms des rôles aux extrémités d’une

association servent à nommer les variables de

type référence.

13

6

18/12/2013

Traduction des associations

Exemples:

14

Traduction des associations (la classe association)

(cid:1)Elle possède les caractéristiques d’une

association et d’une classe et peut donc porter

des attributs qui se valorisent pour chaque lien.

(cid:1)Elle est traduite en la transformant en classe

normale, et en ajoutant des variables de type

référence.

15

7

Traduction des associations (la classe association)

Exemple

18/12/2013

16

8