1. La modélisation statique
Les codes Java d’implémentation des concepts UML ne sont que des exemples. Il existe
quelques fois plusieurs implémentations possibles et équivalentes.
Classe
UML Java
public class Student { …
Classe concrète }
<<abstract>>
public abstract class People {
People
Classe abstraite …
}
Interface
Trois représentations sont possibles. Les deux premières sont à privilégier parce qu’elles
sont plus claires. La dernière peut être confondue avec une classe.
UML Java
Classe stéréotypée
Paquet
UML Java
example
École Nationale Supérieure d'Ingénieurs 6, Boulevard Maréchal Juin, F-14050 CAEN cedex
& Groupe de Laboratoires, C.N.R.S. http://www.ensicaen.fr
Correspondance UML Java ■ 2
package example1 ;
Importation import example2.*; package example2;
Attribut
UML Java
public final class Student {
private int _promotion;
Attribut privé private String _specialty;
…
}
<<abstract>>
<<abstract>> public abstract class People {
People
People private String _name;
private String _lastName;
Attribut protégé et --name
name: :String
String protected Date _birthDate;
attribut statique --lastName
lastName: :String
String private static int _majorityAge = 18;
##birthDate
birthDate::Date
Date …
--majorityAge
majorityAge: :int
int==18
18 }
Opération
2. Relation
Généralisation
UML Java
<<abstract>> public abstract class People {
People …
}
Héritage de classe
public final class Student extends People {
Student …
}
3 ■ Correspondance UML Java
Réalisation
UML Java
Association
UML Java
public final class A {
Association private B _b;
A -b B …
navigable de }
0..1
multiplicité 0..1 public final class B {
}
public final class A {
Association private B _b = new B();
A -b B …
navigable de }
multiplicité 1 public final class B {
}
Correspondance UML Java ■ 4
Dépendance
UML Java
public final class A {
…
public use( B b ) {
}
}
Lien de dépendance public final class B {
entre classes public void method() {
C c;
}
}
public final class C {
}
5 ■ Correspondance UML Java
Classe d’association
UML Java
public final class Student {
}
3. La modélisation dynamique
Séquences
UML Java
public final class A {
public void scenario() {
ENSICAEN - Spécialité Informatique
b.operationB1();
operationA1();
b.operationB2();
}
Diagramme de private void operationA1() { … }
séquences }
Communication
UML Java
public final class Library {
private Librarian _lib;
private Member _a123;
Diagramme de public void register( int idLib ) {
communication Member a = _a123.find(idLib);
_lib.SetMembers(a);
}
}
États-transitions
UML Java
public final class A {
Enum States {state1, state2, state3 }
private Enum States _state;
public void do( Event e) {
Diagramme états- switch (_state) {
case state1 : …
transitions case state2 : …
}
}
(Voir le cours de 2A sur le patron de conception État.)