ISET BEJA POA 2023-2024
Correspondance UML 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 …
}
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
public interface ICollection {
Icône public void sort();
}
ICollection
Classe avec 2 ICollection
compartiments + sort()
Paquet
UML Java
example
Paquet ou package example;
package example1 ;
Importation import example2.*;
package example2;
DR. BALKIS BETTOUMI 2
Attribut
UML Java
public final class Student {
private int _promotion;
Attribut privé private String _specialty;
…
}
<<abstract>> public abstract class People {
People private String _name;
private String _lastName;
Attribut protégé et - name : String protected Date _birthDate;
attribut statique - lastName : String private static int _majorityAge = 18;
# birthDate : Date
…
- majorityAge : int = 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;
People private String _lastName;
protected Date _birthDate;
- name : String private static int _majorityAge;
- lastName : String
Opération statique, # birthDate : Date public abstract void laught();
Opération abstraite - majorityAge : int public static void setMajority( Date date ) {
…
+ <<abstract>>laught() }
public int getAge() {
+ setMajoity(age : Date)
…
+ getAge() : int }
}
2. Relation
Généralisation
UML Java
public abstract class People {
People …
}
Héritage de classe
public final class Student extends People {
Student …
}
DR. BALKIS BETTOUMI 3
public interface Sortable {
public void isGreaterThan( Sortable o );
}
Héritage d'interface
public interface Ordonable extends Sortable {
public int getRank();
}
Réalisation
UML Java
public interface Ordonable {
public int getRank();
}
public final class Student implements Ordonable {
Réalisation d'une private int _promotion;
interface private String _specialty;
Ordonable public int getRank() {
…
}
}
Student
- promotion: int
- specialty : String
+ getRank(): int
public interface Imprimable {
public void print();
}
public interface Ordonable {
public int getRank();
}
class Student implements Ordonable, Imprimable {
Réalisation de private int _promotion;
private String _specialty;
plusieurs interfaces
public int getRank() {
…
}
public void print() {
…
}
}
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 {
}
DR. BALKIS BETTOUMI 4
Association avec public final class A {
A -bs B private B[] _bs = new B[10];
une multiplicité …
10
fixée }
Association avec public final class A {
A -bs B private List<B> _bs = new ArrayList<B>();
une multiplicité …
*
quelconque }
public final class A {
private Set<B> _bs = new TreeSet<B>();
…
Association multiple A -bs B
}
ordonnée {ordered} * public final class B implements Comparable<B> {
int compareTo( B b ) { }
}
public final class A {
A -bs B private Map<B> _bs = new HashMap<B>();
Association qualifiée …
*
}
public final class A {
Association sans private B _b;
A B }
navigabilité public final class B {
(bidirectionnelle) private A _a;
}
Association public final class People {
private List<People> _employees;
réflexive private People _employer;
(bidirectionnelle) }
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 {
}
DR. BALKIS BETTOUMI 5
Classe d’association
UML Java
public final class Student {
}
public final class Professor {
Association promue }
au rang de classe. public final class Teach {
(abstraction private String _course;
private int _year;
hypostatique)
private Professor _professor;
private Student _student;
…
}
DR. BALKIS BETTOUMI 6