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