Académique Documents
Professionnel Documents
Culture Documents
Cours n°2
UML 1
Plan
► Introduction
► Modéliser avec UML
► Diagrammes de cas d’utilisation
► Diagrammes de classes
► Notion de paquetage
► Diagrammes d’objets
► Diagrammes de séquence
► Diagrammes de collaboration
► Diagrammes d’états/transition
► Autres diagrammes
UML
2
Diagrammes de classe
UML
3
Vue statique
► Vues statiques du système :
diagrammes de cas d'utilisation (Fonctionnel)
diagrammes de classes
diagrammes d'objets
diagrammes de composants
diagrammes de déploiement
UML
4
Class diagrams
► Expriment la structure statique du système en terme de
classes et de relations entre ces classes
► Une classe est un type abstrait caractérisé par des
propriétés (attributs et méthodes) communes à un
ensemble d'objets et permettant de créer des objets ayant
ces propriétés
► Ne pas représenter les attributs ou les méthodes d'une
classe sur un diagramme, n'indique pas que cette classe
n'en contient pas.
Il s'agit juste d'un filtre visuel, destiné à donner un certain
niveau d'abstraction à son modèle
► De même, ne pas spécifier les niveaux d’accès des
membres d'une classe ne veut pas dire qu'on ne
représente que les membres publics
UML
5
Convention graphique d’une classe
Nom_de_classe
Attributs
Nom_de_classe
Méthodes
UML
6
Syntaxe
► Attribut :
nom : type = val_initiale
► Méthode :
nom (arg : type = val_defaut, …) : type_retour
► Niveaux d’accès :
Public +
Protected #
Private -
UML
7
Exemples / niveaux d’abstraction
voiture
UML
8
Exemples / niveaux d’abstraction
voiture
immatriculation
couleur
marque
puissance attributs
poids
date
propriétaire
demarrer
arreter
conduire méthodes
voiture
vendre
UML
9
Exemples / niveaux d’abstraction
voiture voiture
immatriculation + immatriculation : string
couleur + couleur : string
marque + marque : string
puissance # puissance : int attributs
poids # poids : int types
date - date : Date
propriétaire - propriétaire : string
demarrer + demarrer()
arreter - contact() : bool
voiture conduire + conduire(a : string = « marseille », b : string) méthodes
vendre + vendre(prix : float) prototype
Niveaux d’accès
Classe non documentée Classe documentée Classe détaillée
UML
10
Sémantique
► Un diagramme de classes est une collection d'éléments de
modélisation statiques (classes, paquetages...), qui montre la structure
d'un modèle
UML
11
Association
► Une
association exprime une connexion
sémantique entre deux classes
► L'association
est instanciable dans un
diagramme d'objets ou de collaboration,
sous forme de liens entre objets issus de
classes associées
UML
12
Association classique
Personne Entreprise
travaille
UML
13
Association en forme verbale active
► Précise le sens de lecture
Personne Hôtel
< héberge
UML
14
Rôles
Personne Entreprise
employé employeur
Personne Hôtel
client
personnel
UML
15
Cardinalités
► Nombre d’éléments participant à la relation
► x : exactement "x" (entier naturel > 0)
exemples : "1", "7"
► x..y: de "x" à "y" (entiers naturels ou variables
avec y > x)
exemples : "0..1", "3..n", "1..31"
►* : plusieurs (équivalent à "0..n" et "0..*")
► x..* : "x" ou plus
exemples : "0..*", "5..*"
UML
16
Cardinalités
Homme Femme
0..1 mariéA 0..1
Personne Maison
* 1
parent
2
enfant 0..*
UML
17
Relation de dépendance
► relationd'utilisation unidirectionnelle
► une modification de l'élément dont on
dépend, peut nécessiter une mise à jour de
l'élément dépendant
Fenetre EvenementSouris
UML
18
Association à navigabilité restreinte
► Par défaut, une association est navigable dans les
deux sens
► La réduction de la portée de l'association peut être
exprimée dans un modèle pour indiquer que les
instances d'une classe ne "connaissent" pas les
instances d'une autre
Electeur Candidat
* 0..1
vote
UML
19
Association n-aire
► association reliant plus de deux classes
Travaux Copropriété
Entreprise
UML
20
Classe d’association
► classe réalisant la navigation entre les instances
d'autres classes
Salle Salle
<<association ternaire>>
Professeur Etudiant Professeur Etudiant
Cours
jour
heure
Cours duree
jour
heure
duree
UML
21
Association qualifiée
► Uneassociation qualifiée met en relation
deux classes sur la base d’un attribut
spécifique appelé « clé »
* 1..n
Banque numCompte Personne
UML
22
Contraintes sur les associations
► Les contraintes sont des expressions qui précisent
le rôle ou la portée d'un élément de modélisation
(elles permettent d'étendre ou préciser sa
sémantique)
► Sur une association, elles peuvent restreindre le
nombre d'instances visées ("expressions de
navigation")
► Les contraintes peuvent s'exprimer en langage
naturel. Graphiquement, il s'agit d'un texte
encadré d'accolades
UML
23
Principales contraintes
► Contrainte {ordonnée} : une relation d’ordre
décrit les objets
UML
24
Exemples
Peintre Tableau
1 peint 1..n
{ordonnée}
Personne Armée
militaire
{sous-ensemble}
général
Personne BTS
enseignant
{ou-exclusif}
étudiant
UML
25
Agrégation
► L'agrégation est une association non
symétrique, qui exprime un couplage fort et une
relation de subordination
► Représente une relation de type "ensemble /
élément"
► A un même moment, une instance d'élément
agrégé peut être liée à plusieurs instances d'autres
classes : l'élément agrégé peut être partagé
► Une instance « ensemble » peut exister sans
élément (et inversement) : Cycles de vies
indépendants
UML
26
Agrégation
► Uneagrégation peut notamment (mais pas
nécessairement) exprimer :
qu'une classe (un "élément") fait partie d'une
autre ("l‘ensemble"),
qu'un changement d'état d'une classe, entraîne
un changement d'état d'une autre,
qu'une action sur une classe, entraîne une
action sur une autre
UML
27
Exemple
Pièce Mur
UML
28
Composition
► Cas particulier d’agrégation : contenance
physique
► Représente une relation de type "composé /
composant"
► Les cycles de vies des composants et du
composé sont liés : si le composé est détruit (ou
copié), ses composants le sont aussi
► A un même moment, une instance de composant
ne peut être liée qu'à un seul composé
UML
29
Exemple
Voiture
UML
30
Héritage
► Spécialisation
Démarche descendante, qui consiste à capturer les particularités d'un
ensemble d'objets, non discriminés par les classes déjà identifiées
Consiste à étendre les propriétés d'une classe, sous forme de sous-
classes, plus spécifiques (permet l'extension du modèle par réutilisation)
► Classification
L'héritage (spécialisation et généralisation) permet une classification des
objets
Une bonne classification est stable et extensible : ne classifiez pas les
objets selon des critères instables (selon ce qui caractérise leur état) ou
trop vagues (trop de sous-classes)
Les critères de classification sont subjectifs
"Il doit être possible de substituer n'importe quel instance d'une super-classe,
par n'importe quel instance d'une de ses sous-classes, sans que la sémantique
d'un programme écrit dans les termes de la super-classe n'en soit affectée."
UML
31
Héritage : convention graphique
Super_classe
Sous_classe
UML
32
Spécialisation
Oeuvre
Titre
Auteur
Reference
Roman BD
UML
33
Spécialisation
Oeuvre
Titre
Auteur
Reference
Roman BD
UML
34
Généralisation
Vehicule
marque
modele
VitesseMax
UML
35
Interfaces
► Fournit une vue totale ou partielle d’un ensemble
de services offerts par un ou plusieurs éléments
► Parfois synonyme de vue publique
interface
Classe fournissant
Classe utilisant
UML
36
Classe interface
► Permet de préciser l’interface de manière
détaillée
<<interface>>
Nom interface
Classe fournissant
Méthode1()
Méthode2()
Classe utilisant
UML
37
Exemple
<<interface>> <<interface>>
ReglageHorloge ReglageSon
Chaine Hi-Fi
modifierH baisserVolume
modifierM monterVolume
reglerReveil baisserBasse
monterBasse
reglerBalance
Proprietaire DJ
UML
38
Notion de paquetage
UML
39
Packages
► Les paquetages sont des éléments d'organisation des
modèles
► Ils regroupent des éléments de modélisation, selon des
critères purement logiques
► Ils permettent d'encapsuler des éléments de modélisation
► Ils permettent de structurer un système en catégories (vue
logique) et sous-systèmes (vue des composants)
► Ils servent de "briques" de base dans la construction d'une
architecture
► Ils représentent le bon niveau de granularité pour la
réutilisation
► Les paquetages sont aussi des espaces de noms
UML
40
Relation entre paquetage
► Dépendance :
Au moins un élément du paquetage source
utilise les services d’au moins un des éléments
du paquetage destination
► Héritage :
Au moins un élément du paquetage source
spécialise (est dérivée d’) au moins un des
éléments du paquetage destination
UML
41
Convention graphique
P1 P2
P4
P3
P5 P6
UML
42
Exemple
Voitures
Voiture Motorisation
Piston Carbu
Porte Boite Moteur
Roue Phare
UML
43
Diagrammes d’objets
UML
44
Object diagram
► Représentent un ensemble d’objets et leurs liens
► Sont des vues statiques des instances des
éléments qui apparaissent dans les diagrammes
de classes
► Présentent la vue de conception d’un système,
exactement comme les diagrammes de classes,
mais à partir de cas réel ou de prototypes
► Est une instance d’un diagramme de classes
► Les diagrammes de classes peuvent aussi contenir
des objets
UML
45
Objets
:Voiture Instance anonyme de la classe voiture
golf:Voiture
Couleur = "bleu M " Spécification des attributs
Puissance = 7ch
:Voiture
Collection d’instance
UML
46
Objets composites
:Velo
:Roue 2 :Derailleur 1
:Pedalier 1 :Pedale 1
UML
47
Diagrammes d’objets
:Voiture
UML
48
Diagrammes d’objets
eleve
:Personne
UML
49
Diagrammes d’objets
eleve
Objet à état précis
:Personne
UML
50
Diagrammes d’objets
:Bus :Moteur
:Destination
UML
51