1. 1
Génie logiciel et méthodes de
conception orientées objetp j
UML
Modélisation statique
A. ABDELLATIF
abdelaziz.abdellatif@fst.rnu.tn
2012-2013
GL & MCOO A. Abdellatif
Sommaire
Introduction
Diagramme de classes
Diagramme d’objets
Diagramme de composants
Diagramme de déploiement
UML : Modélisation statique 2
Synthèse
2. 2
GL & MCOO A. Abdellatif
Introduction
La modélisation statique d’un système
consiste à décrire les composantes de ceconsiste à décrire les composantes de ce
dernier sans tenir compte de leur évolution
dans le temps.
Elle se fait à l’aide des diagrammes
suivants :
Diagramme de classes
Diagramme d’objets
Diag amme de composants
UML : Modélisation statique 3
Diagramme de composants
Diagramme de déploiement
Diagramme de classesg
3. 3
GL & MCOO A. Abdellatif
Diagramme de classes :
Présentation
Représente les classes constituant le
système et les associations entre ellessystème et les associations entre elles.
C’est le diagramme le plus important de la
modélisation orientée objet.
Regroupe les classes du monde réel et les
classes nécessaires à l’implémentation du
système.
d é é l b d d é
UML : Modélisation statique 5
Permet de générer la base de données et
les classes utilisées dans la programmation
des applications.
GL & MCOO A. Abdellatif
Diagramme de classes :
Concepts de base
Le diagramme de classes se base sur les
concepts suivants :concepts suivants :
Classe : Description formelle d’un ensemble d’objets
ayant une sémantique, des propriétés et un
comportement communs.
Association : Relation sémantique entre deux ou
plusieurs classes.
Propriété (attribut) : élément permettant de
décrire une classe ou une association.
é é é é
UML : Modélisation statique 6
Méthode : Opération réalisée par les objets d’une
classe.
Paquetage : Décomposition du diagramme de
classes
4. 4
GL & MCOO A. Abdellatif
Diagramme de classes :
Représentation d’une classe
Nom classe
Attributs
Personne
Matricule
Nom
Prenom
Date naissance
UML : Modélisation statique 7
Méthodes
Date_naissance
Age ()
Forme minimale
GL & MCOO A. Abdellatif
Diagramme de classes :
Représentation détaillée d’une classe
Personne
+
+
+
-
#
Matricule
Nom
Prenom
Date_naissance
Permanant
: int
: char
: char
: date
: boolean = vrai
+ Age () : intVisibilité :
+ Public
Type de
données
Valeur
initiale
UML : Modélisation statique 8
+ Public
- Privé
# Protégé
Type de
valeur de
retour
5. 5
GL & MCOO A. Abdellatif
Diagramme de classes :
Représentation d’une association
Classe A Classe BClasse A Classe B
Avec possibilité de préciser :
•Un nom d’association
UML : Modélisation statique 9
•Une décoration
•Le rôle de chaque classe
•Des cardinalités
GL & MCOO A. Abdellatif
Diagramme de classes :
Représentation d’une association
Tra va ille r d a n s
E m p lo y é E n tre p ris e
Tra va ille r d a n s >
E m p lo y é E n tre p ris e
Travaille dansE m ploy é E ntrepris e
Nom d’association
Décoration
UML : Modélisation statique 10
Travaille dans
Fait travailler
E m ploy é E ntrepris e
Rôle
6. 6
GL & MCOO A. Abdellatif
Cardinalités possibles :
Diagramme de classes :
Cardinalités (multiplicité)
Employé
1 Un et un seul
1..1 Un et un seul
0..1 Zéro ou un (optionnel)
m..n De m à n
0..* Zéro ou plusieurs
0..*
1..1
UML : Modélisation statique 11
p
* Zéro ou plusieurs
1..* Un à plusieurs
Entreprise
GL & MCOO A. Abdellatif
Diagramme de classes :
Navigabilité d’association
Chaque sens d’une association binaire peut être navigable
ou non.
La navigabilité est représentée pas une flèche.
La non navigabilité est représentée par une croix.
L’absence de ces deux symbole veut dire que l’association
est navigable dan les deux sens.
0..* 1..*
Commande Article
UML : Modélisation statique 12
Signification :
Une occurrence de Commande stocke une liste des Articles.
Une occurrence d’Article ne stocke pas une liste des
commandes.
7. 7
GL & MCOO A. Abdellatif
Diagramme de classes :
Classe association
Si l’association est porteuse de
données, elle est représentée par une
classe association.
Une classe association peut avoir des
propriétés et des méthodes.
0..* 1..*
Commande Article
UML : Modélisation statique 13
LigcoCommande
+ quantite : int
GL & MCOO A. Abdellatif
Diagramme de classes :
Les contraintes
Lorsque les cardinalités ne sont pas
ffi t t d i l è l dsuffisantes pour traduire les règles de
gestion, un digramme de classe peut
être complété par des contraintes.
{contrainte}
UML : Modélisation statique 14
Une contrainte concerne une ou
plusieurs associations.
8. 8
GL & MCOO A. Abdellatif
Diagramme de classes :
Les contraintes
Toute règle peut être représentée sous
f d iforme de contraintes.
Contraintes couramment utilisée :
{ordonnée} : Signifie l’existence d’une relation
d’ordre entre les objets de la classe indiquée par
la contrainte.
{Sous-ensemble} : Indique qu’une collection
UML : Modélisation statique 15
est incluse dans une autre.
{Ou exclusif} : Signifie la participation
exclusive d’un objet à l’une ou l’autre des
associations.
GL & MCOO A. Abdellatif
Diagramme de classes :
Les contraintes : exemples
1..1 0 *
Livre
Chapitre
1..1 0..
{Ordonnée}
0..1
0..*
1..1
1..*
Inscrit dans
Section Etudiant
{Sous-ensemble}
1..1
0 *
UML : Modélisation statique 16
Représente
1..1
Se déplace 0..*
Reçoit
0..
Equipe Match
{Ou exclusif}
9. 9
GL & MCOO A. Abdellatif
Diagramme de classes :
Association d’agrégation
Une agrégation est une association
qui représente une relation d’inclusion
structurelle ou comportementale d’un
élément dans un ensemble.
0..1
Entreprise Véhicule
Agrégat Agrégé
UML : Modélisation statique 17
0..*
Entreprise
GL & MCOO A. Abdellatif
Diagramme de classes :
Association de composition
Une composition est une association
qui décrit une contenance structurelle
entre instances. Composite
Composants 1..1
1..1
1..1
Vehicule
UML : Modélisation statique 18
Remarque :
La destruction de l’objet
composite entraîne la
destruction des objets
composants
4..41..11..1
Moteur BoiteVitesse Roue
10. 10
GL & MCOO A. Abdellatif
Diagramme de classes :
Association de qualification
Permet de partitionner les objets
d’ l t à t id’une classe par rapport à certaines
propriétés de l’autre classe.
Class_1 Class_2
Clé
UML : Modélisation statique 19
0..*
Répertoire Fichier
Nom_repertoire
GL & MCOO A. Abdellatif
Diagramme de classes :
Association n-aire
Association reliant plus que deux
classes.
A B
UML : Modélisation statique 20
Remarque :
Les associations n-aires
sont généralement
remplacées par une
classe.
Class_assoc
C
11. 11
GL & MCOO A. Abdellatif
Diagramme de classes :
Association n-aire (Exemple)
Section
Module
0 *0 *
1..1
0..*
1..1
0..*
Section
Module
Emploi du temps
+
+
H début
H fin
: int
: int
Replacé par
Salle
Jour
Emploi du temps
+ H début : int
UML : Modélisation statique 21
1..1
0..
1..1
0..
Salle
Jour
+ H fin : int
GL & MCOO A. Abdellatif
Diagramme de classes :
Association d’héritage
Représente une relation d’héritage
entre super classes et sous classes.
A Personne
+
+
+
+
CIN
Nom
Prénom
Date naissance
+ Age () : int
UML : Modélisation statique 22
BC
Pilote
+ Date embauche
Passager
+ Numero billet
12. 12
GL & MCOO A. Abdellatif
Diagramme de classes :
Association d’héritage multiple
Moyen transport
Terrestre Aérien Maritime
UML : Modélisation statique 23
Voiture Avion BateauHydravion
GL & MCOO A. Abdellatif
Diagramme de classes :
Association d’héritage exclusif
Client
{Exclusif}
UML : Modélisation statique 24
Particulier Exclusif
13. 13
GL & MCOO A. Abdellatif
Diagramme de classes :
Association d’héritage :règles
Une association d’héritage ne peut pas
être :
Réflexive :
Symétrique :
Class_1A
B A
UML : Modélisation statique 25
Transitive :
BA C
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:
Système de réservation de vols
Source :
UML par la pratique :
études de cas et
exercices corrigés
Pascal Roques
Eyrolles
UML : Modélisation statique 26
y
14. 14
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:
Système de réservation de vols
Énoncé :
1. Des compagnies aériennes proposent différents vols.p g p p
2. Un vol est ouvert à la réservation et refermé sur ordre de
la compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des
passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un jour et une heure de départ , et un jour et une
heure d’arrivée.
7 Un vol a un aéroport de départ et un aéroport d’arrivée
UML : Modélisation statique 27
7. Un vol a un aéroport de départ et un aéroport d’arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d’arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:
Système de réservation de vols
CompagnieAerienne
nomCompagnie
Client
codeClient
nomClient
infoescale0..*
escale
0..*
relier21..1
arrivee
0..*
relier 11..1
depart
0..*
<concerner
1..1 0..*
effectuer
1..1
0..*
Propose
1..*
1..*
Vol
numeroVol
dateDepart
heureDeprt
dateArrivee
heureArrivee
ouvrirReservation ()
fermerReservation ()
prenomClient
adresseClient
numTel
numFax
Reservation
dateReservation
numeroReservation
confirmer ()
annuler ()
Aeroprt
nomAeroprt
UML : Modélisation statique 28
dessert
0..*
0..*
concerne
0..*
1..1
Passager
nomPassager
prenomPassager
Ville
nomVille
InfosEscale
heureArrivee
heureDepart
{ordonnée}
16. 16
GL & MCOO A. Abdellatif
Diagramme d’objets :
Présentation
C’est un diagramme de classes appliqué
è à l bjconcrètement à quelques objets.
Appelé aussi diagramme d’instances.
Permet de préciser un diagramme de
classes en l’illustrant par des exemples
Permet de vérifier l’adéquation du
diagramme de classes à des cas
UML : Modélisation statique 31
diagramme de classes à des cas
particuliers.
GL & MCOO A. Abdellatif
Diagramme d’objets :
Concepts de base
Le diagramme de classes se base sur les
concepts suivants :
Objet : Description d’un objet du monde réel
(instance de classe).
Lien : Relation sémantique entre deux ou
plusieurs objets (instance d’association).
UML : Modélisation statique 32
Valeur : Valeur d’une propriété relative à un
objet.
17. 17
GL & MCOO A. Abdellatif
Correspondance entre diagrammes
de classes et diagrammes d’objets
1..* 0..*
1
0..*
0..*
1..*
1..*1..*
1..*
0..*
1 *
1..*1..*
Diagramme classes Diagramme objets
LienAssociation
UML : Modélisation statique 33
1 0..*
1..*
1..*
1..*
1..*
ObjetClasse
GL & MCOO A. Abdellatif
Diagramme d’objets :
Représentation d’un objet
N bj t
Trois représentations possibles :
Nom objet Nom objet:Nom classe :Nom classe
Exemples :
Objet nommé
Objet nommé avec sa classe Objet anonyme
UML : Modélisation statique 34
C250 C250:Modèle voiture :Modèle voiture
18. 18
GL & MCOO A. Abdellatif
Diagramme d’objets :
Représentation détaillée d’un objet
Nom objet:Nom classe
Nom propriété = valeur
Nom propriété
de la classe
Valeur
propriété pour
l’objet
UML : Modélisation statique 35
C250:Modèle voiture
Marque
Année
= Mercedes
= 2002
GL & MCOO A. Abdellatif
Diagramme d’objets :
Représentation des liens
Objet 1 Objet 2
Remarques :
•Pas de cardinalités
j j
UML : Modélisation statique 36
•Possibilité de nommer le lien
19. 19
GL & MCOO A. Abdellatif
Diagramme d’objets :
Représentation des liens : exemple
Diagramme de classes :
Diagramme d’objets :
1..*
1..4
1..1
1..1
Vehicule RoueMoteur
Voiture Moteur
UML : Modélisation statique 37
Roue AV D Roue AG Roue AR D Roue AR G
GL & MCOO A. Abdellatif
Diagramme d’objets :
Représentation des liens : exemple
Diagramme de classes :
0..1
Dirige
0..*
Dirigé parEmployé
UML : Modélisation statique 38
Diagramme d’objets :
DirigeMohamed:Employé Ali:Employé
20. 20
GL & MCOO A. Abdellatif
Diagramme d’objets :
Objets multiples
Lorsqu’un objet est lié à plusieurs autres
objets, on peut :
Représenter explicitement tous ces objets :
Objet A
Objet B1
Objet B2
Objet B3
UML : Modélisation statique 39
Représenter ces objets par un objet multiple:
Objet A
:Classe C
GL & MCOO A. Abdellatif
Diagramme d’objets :
Objets multiples : exemple
Diagramme de classes :
0..1
Dirige
0..*
Dirigé parEmployé
UML : Modélisation statique 40
Diagramme d’objets :
DirigeMohamed:Employé
:Employé
21. 21
GL & MCOO A. Abdellatif
Diagramme d’objets :
Objets composites
Un objet composite est une instance
d’une classe ayant une association de
composition.
0..1
Classe A
:Classe A
1:Classe B 2:Classe B 3:Classe B
UML : Modélisation statique 41
0..*
Classe B
1:Classe B 2:Classe B 3:Classe B
GL & MCOO A. Abdellatif
Diagramme d’objets :
Objets composites : exemple
Fenetre
me
s
1
1
1
2 1
1
Zone travailBarre défilement Palette d'outils
F t
Diagramm
declasses
e
UML : Modélisation statique 42
:Fenetre
:Palette d'outils1:Barre défilement :Zone travail2:Barre défilement
Diagramme
D’objets
22. 22
Diagramme de composantsg p
GL & MCOO A. Abdellatif
Diagramme de composants :
Présentation
Un diagramme de composant décrit la
façon selon laquelle les composantes
logicielles seront réalisées.
Il représente les choix de réalisation.
Il est destiné aux réalisateurs
(développeurs)
UML : Modélisation statique 44
(développeurs).
23. 23
GL & MCOO A. Abdellatif
Diagramme de composants :
Concepts de base
Le diagramme de composants se base sur les
concepts suivants :concepts suivants :
Composant : Toute sorte d’élément physique
permettant la réalisation d’un logiciel.
Dépendance entre composants : Relation de
dépendance entre deux ou plusieurs composants.
Programme principal : Constitue le point d’entrée
dans une application.
UML : Modélisation statique 45
Sous-programme : Procédure ou fonction ne
contenant aucune classe.
Sous-système : Regroupement d’un ensemble de
composants.
GL & MCOO A. Abdellatif
Diagramme de composants :
Les composants
Les composants représentent toute sortes d’éléments
physiques permettant la réalisation d’un logicielphysiques permettant la réalisation d un logiciel.
Un composant est appelé aussi module.
Un composant se présente sous forme de fichier.
Dans l’approche objet, chaque classe constitue un
composant.
Chaque classe (composant) est représentée par deux
éléments : une spécification et un corps
UML : Modélisation statique 46
éléments : une spécification et un corps.
24. 24
GL & MCOO A. Abdellatif
Diagramme de composants :
Les composants: représentation
Trois représentations possibles :
Composant A
<<Composant>>
Composant A
UML : Modélisation statique 47
Composant A
xx
GL & MCOO A. Abdellatif
Diagramme de composants :
Les composants: Exemple
<<Composant>>
Vérificateur
d’orthographe
Vérificateur d'orthographe
UML : Modélisation statique 48
Vérificateur
d’orthographe
xx
25. 25
GL & MCOO A. Abdellatif
Diagramme de composants :
Dépendance entre composants
Dans un diagramme de composants, la
l i d dé d ili érelation de dépendance est utilisée pour
indiquer qu’un composant fait référence aux
services offerts par un autre composant.
Cette notion est utile pour représenter a
dépendance de compilation entre
composants.
UML : Modélisation statique 49
composants.
GL & MCOO A. Abdellatif
Diagramme de composants :
Dépendance: représentation
Composant A Composant B
Exemple :
Editeur texte
UML : Modélisation statique 50
Vérificateur d'orthographe Vérificateur grammaire
26. 26
GL & MCOO A. Abdellatif
Diagramme de composants :
Programme principal
Chaque application a un point d’entrée
appelé programme principal (main).
Main
UML : Modélisation statique 51
GL & MCOO A. Abdellatif
Diagramme de composants :
Les sous-programmes
Les sous-programmes regroupent les
procédures et les fonctions qui
n’appartiennent à aucune classe.
F1
UML : Modélisation statique 52
27. 27
GL & MCOO A. Abdellatif
Diagramme de composants :
Les sous-systèmes
Dans le cas de systèmes complexes, un
ensemble de composants peuvent êtreensemble de composants peuvent être
regroupés dans un sous-système.
Constitue la notion de bibliothèque.
Utilise le formalisme de paquetage.
UML : Modélisation statique 53
Sous-système 1
Composant A Composant B
Diagramme de déploiementg p
28. 28
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Présentation
Représente la structure physique du
è i f i l é i i dsystème informatique et la répartition des
composantes logicielles sur ce système.
Constitue un moyen pour représenter les
différentes architectures selon laquelle le
nouveau logiciel peut être déployé :
Architecture centralisée
UML : Modélisation statique 55
Architecture centralisée
Architecture client/serveur à deux niveaux
Architecture client/serveur à trois niveaux
Architecture client/serveur à n niveaux
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Concepts de base
Le diagramme de déploiement se base
sur les concepts suivants :
Noeud : Description d’un dispositif matériel.
Composant : Composante logicielle.
Association de noeud : Relation entre deux
noeuds.
UML : Modélisation statique 56
Instance de noeud : C’est une occurrence
d’un dispositif matériel.
29. 29
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les noeuds
Chaque dispositif matériel est
représenté par un noeud.
Un nœud est décrit par :
Un nom (obligatoire)
Un stéréotype (serveur, client,
imprimante, routeur, …)
UML : Modélisation statique 57
p , , )
Une adresse réseau
Une cardinalité
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les nœuds : représentation
<<Serveur de données>>
SD
190.190.10.10
Nom du noeud
Type de dispositif
UML : Modélisation statique 58
Adresse réseau
1
Cardinalité
30. 30
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les composants
Dans chaque nœud, on peut indiquer
les composants logiciels qui vont y être
installés.
On utilise le même formalisme que
celui du diagramme de composants.
UML : Modélisation statique 59
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les composants: représentation
<<Serveur de données>>
SD
190.190.10.10
UML : Modélisation statique 60
1
SGBD Oracle
31. 31
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les associations
Les nœuds sont inter reliés par des
i iassociations.
Chaque association entre deux nœuds
représente l’existence d’un support de
communication entre eux.
Pour chaque association, on peut préciser :
Le nom
UML : Modélisation statique 61
Le nom
Le rôle de chaque côté
La cardinalité
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les associations:représentation
Nom association
1..1
Rôle 1
1..*
Rôle 2
Noeud 1 Noeud 2
UML : Modélisation statique 62
32. 32
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les associations:exemple
OAS
TCP-IP1..3
1..1
Internet
1..1
Serveur Applications
Serveur de données
SGBD Oracle
IIS
CRM
UML : Modélisation statique 63
0..*
USB
Client Imprimante
Navigateur
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Instances de noeud
Dans un diagramme de déploiement, on peut
é l i d dreprésenter les instances des nœuds.
Cette possibilité est utilisée surtout pour
représenter de façon exhaustive des parties
du diagramme de déploiement.
Les instances de nœuds se distinguent des
nœuds par le fait que leurs noms sont
UML : Modélisation statique 64
nœuds par le fait que leurs noms sont
soulignés.
33. 33
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les associations:représentation
Instance de nœud
UML : Modélisation statique 65
GL & MCOO A. Abdellatif
Diagramme de déploiement :
Les associations:exemple
Serveur app 1
Serveur app 2 Serveur de données
UML : Modélisation statique 66
Serveur app 3
34. 34
GL & MCOO A. Abdellatif
Synthèse
Utiliser les diagrammes de classes pour
décrire des composantes structurelles d’undécrire des composantes structurelles d un
SI.
Utiliser les diagrammes d’objets pour
illustrer et tester les diagrammes de
classes.
Utiliser les diagrammes de composants
pour montrer la façon selon laquelle le
logiciel sera découpé en composantes
UML : Modélisation statique 67
logiciel sera découpé en composantes.
Utiliser les diagrammes de déploiement
pour envisager les différentes façons selon
lesquelles le logiciel peut être exploité.