Vous êtes sur la page 1sur 51

Langage de modélisation objet unifié

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

► Vues dynamiques du système :


 diagrammes de séquence
 diagrammes de collaboration
 diagrammes d'états-transitions
 diagrammes d'activités

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

Classe non documentée

UML
8
Exemples / niveaux d’abstraction

voiture
immatriculation
couleur
marque
puissance attributs
poids
date
propriétaire
demarrer
arreter
conduire méthodes
voiture
vendre

Classe non documentée Classe documentée

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

► Un diagramme de classes fait abstraction des aspects dynamiques et


temporels

► Pour un modèle complexe, plusieurs diagrammes de classes


complémentaires doivent être construits
On peut par exemple se focaliser sur :
 les classes qui participent à un cas d'utilisation (cf. collaboration)
 les classes associées dans la réalisation d'un scénario précis
 les classes qui composent un paquetage
 la structure hiérarchique d'un ensemble de classes

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

► Contrainte {sous-ensemble} : une collection est


incluse dans une autre collection

► Contrainte {ou-exclusif} : pour un objet donné,


une seule association est valide

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

Carrosserie Moteur Piston

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."

► Si Y hérite de X, cela signifie que "Y est une sorte de X"

UML
31
Héritage : convention graphique

Super_classe

Sous_classe

UML
32
Spécialisation
Oeuvre
Titre
Auteur
Reference

Livre Film Opera


NbPages Duree Orchestre

Roman BD

UML
33
Spécialisation
Oeuvre
Titre
Auteur
Reference

Livre Film Opera


NbPages Duree Orchestre

Roman BD

UML
34
Généralisation
Vehicule
marque
modele
VitesseMax

Voiture Bateau Avion


Plaque tirantEau altitudeMax
cylindree voiles portee

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 Instance nommée de la classe voiture

golf Instance nommée d’une classe anonyme

golf:Voiture
Couleur = "bleu M " Spécification des attributs
Puissance = 7ch

golf:Vehicule::Voiture::Berline Spécification du chemin complet

:Voiture
Collection d’instance

UML
46
Objets composites

:Velo

:Roue 2 :Derailleur 1

:Pedalier 1 :Pedale 1

UML
47
Diagrammes d’objets

:Personne :Maison :Ville

:Voiture

UML
48
Diagrammes d’objets

:Personne :Ordinateur :VideoProjecteur


professeur

eleve

:Personne

UML
49
Diagrammes d’objets

:Personne :Ordinateur :VideoProjecteur


professeur Proprietaire=« ORT »

eleve
Objet à état précis
:Personne

UML
50
Diagrammes d’objets

:Bus :Moteur

:Destination

UML
51

Vous aimerez peut-être aussi