Vous êtes sur la page 1sur 49

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
relation d'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
Une association 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
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
Une agré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 : convention graphique
Super_classe

Sous_classe

UML
31
Spécialisation
Oeuvre
Titre
Auteur
Reference

Livre Film Opera


NbPages Duree Orchestre

Roman BD

UML
32
Spécialisation
Oeuvre
Titre
Auteur
Reference

Livre Film Opera


NbPages Duree Orchestre

Roman BD

UML
33
Généralisation
Vehicule
marque
modele
VitesseMax

Voiture Bateau Avion


Plaque tirantEau altitudeMax
cylindree voiles portee

UML
34
Notion de paquetage

UML
35
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
36
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
37
Convention graphique
P1 P2

P4
P3
P5 P6

UML
38
Exemple
Voitures

Voiture Motorisation

Piston Carbu
Porte Boite Moteur

Roue Phare

UML
39
Diagrammes d’objets

UML
40
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
41
: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 (tableau)

UML
42
Objets composites
:Velo

:Roue 2 :Derailleur 1

:Pedalier 1 :Pedale 1

UML
43
Diagrammes d’objets

:Personne :Maison :Ville

:Voiture

UML
44
Diagrammes d’objets
:Personne :Ordinateur :VideoProjecteur
professeur

eleve

:Personne

UML
45
Diagrammes d’objets
:Personne :Ordinateur :VideoProjecteur
professeur Proprietaire=« ORT »

eleve
Objet à état précis
:Personne

UML
46
Diagrammes d’objets

:Bus :Moteur

:Destination

UML
47
Faites le TD 2
Fin

49

Vous aimerez peut-être aussi