UML To JAVA
UML To JAVA
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 final 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
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
UML Java
public final class Student {
private int _promotion;
Opération avec private String _specialty;
valeur de retour et public int getRank( int scale ) {
…
paramètre }
}
public abstract class People {
<<abstract>> private String _name;
<<abstract>>
People private String _lastName;
People protected Date _birthDate;
--name : String
name : String private static int _majorityAge;
--lastName
lastName: :String
String
Opération statique, ##birthDate
birthDate: :Date
Date public abstract void laught();
Opération abstraite --majorityAge public static void setMajority( Date date ) {
majorityAge: :int
int …
++<<abstract>>laught() }
<<abstract>>laught() public int getAge() {
++setMajoity(age
setMajoity(age: :Date)
Date) …
++getAge()
getAge(): :int
int }
}
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
Agrégation et composition
UML Java
Voiture -pneus Pneu
public final class Voiture {
Agrégation *
private List<Pneu> _pneus = new ArrayList<Pneu>();
}
public final class Voiture {
private final Chassis _chassis;
private Voiture() {
_chassis = new Chassis();
Composition }
…
}
public final class Chassis {
Voiture -chassis Chassis }
public final class Voiture {
private final Chassis _chassis;
private Voiture() {
_chassis = new Chassis();
Composition comme }
une classe interne class Chassis {
}
…
}
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() {
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 : …
}
}