Académique Documents
Professionnel Documents
Culture Documents
1- Introduction Générale
Données Espace de problème Résultats
Objets du
Algorithme du monde réel Objets de
monde (scénario)
réel l’application
Concepts du
langage de Données
Algorithme informatique
programmation de sortie
Chap.3 : UML 2
a- Historique
Organisation du développement :
• Méthodes fonctionnelles et Systémiques
• SASD, SART, Jackson, …. / Années 60 → 90
• Apparitions de méthodes objets : 90
• Booch, OMT (Rumbaugh), OOSE (Jacobson)
Insuffisances
• Méthodes partielles, cantonnées à des domaines distincts
• La variété des méthodes difficulté de communication
Chap.3 : UML 3
Axes de modélisation d’un système
• diagramme de classes
• diagramme d’objets
•…
Dynamique
(comment le système Fonctionnel
EVOLUE) (ce que le système FAIT)
• diagramme de collaboration
• diagramme d’états-transitions • diagramme de cas d’utilisation
•… •…
Chap.3 : UML 4
Un formalisme & plusieurs vues
Objets du
monde Objets du Objets du
réel logiciel langage
Chap.3 : UML 5
3.1 Notation pour les classes
Nom de la classe
Compte
Opérations
consulterSolde() : entier nom
créditer( somme : entier) paramètre
débiter( somme : entier) type du résultat
Par défaut, les attributs sont cachés et les opérations sont visibles
Chap.3 : UML 6
Notations simplifiées
pour les classes
M1
Compte Compte
numéro Compte
numéro
solde numéro
solde : réel
... solde
Compte découvertMax : entier
...
créditer() consulterSolde() : entier
Compte
débiter() créditer( somme : entier)
Compte créditer() ... débiter( somme )
débiter()
...
Note de style :
• les noms de classes commencent par une majuscule
• les noms d ’attributs et de méthodes commencent par une minuscule
Chap.3 : UML 7
3.2 Notations pour les objets
numéro = 6688
: Compte solde = 5000
découvertMax = -100
leCompteDeAli : Compte
Convention :
• les noms d ’objets commencent par une minuscule et sont soulignés
Chap.3 : UML 8
Classe vs. Objets
M1
M0
leCompteDeSana:Compte leCompteDeAli : Compte
Chap.3 : UML 9
Liens (entre objets)
Un lien indique une connexion entre deux objets
APourCompte
Ali : Client c1 : Compte
APourCompte
Slim : Client c2 : Compte
Note de style :
• les noms des liens sont des formes verbales et commencent par une majuscule
• indique le sens de la lecture (ex: « ali APourCompte c1 »)
Chap.3 : UML 10
Contrainte sur les liens
Chap.3 : UML 11
Contrainte sur les liens
Au maximum un lien d'un type donné entre deux objets donnés*
APourEpouse
Youssef : Personne APourEpouse Sondes : Personne
EstEnfantDe
EstGardePar
Souha : Personne Hédi : Personne
OK
EstEnfantDe
APourCompte
Salah : Client c1 : Compte
titulaire compte
Note de style :
• choisir un groupe nominal pour désigner un rôle
• si un nom de rôle est omis, le nom de la classe fait office de nom
Chap.3 : UML 13
3 noms pour 1 concept
APourCompte
R Salah : Client c1 : Compte
a b titulaire compte
g f
Chap.3 : UML 14
3.3 Associations (entre classes)
Une association décrit un ensemble de liens de même "sémantique"
APourCompte
Diagramme
Client Compte de classes
titulaire compte
(modélisation)
M1
M0
APourCompte>
Ali : Client c1 : Compte
Diagramme
APourCompte>
Salah : Client c2 : Compte d ’objets
(exemplaires)
Sana: Client c3 : Compte
Chap.3 : UML 15
Association vs. Liens
association
classe APourCompte>
M1
Client Compte
c2 : Compte
Chap.3 : UML 16
Nommer les associations
Compte Banque
Compte Banque
banqueGérante
Plusieures façons de
nommer une association
Compte mais respecter la cohérence Banque
comptesGérés
entre identificateurs
Gère
Compte Banque
EstGéréPar
Compte Banque
comptesGérés banqueGérante
Chap.3 : UML 17
Utiliser les rôles pour
«naviguer»
APourCompte
Client Compte
titulaire comptes
APourCompte>
titulaire
ali : Client c1 : Compte
comptes
ali.comptes = {c1}
salah.comptes = {c2,c3} titulaire APourCompte>
comptes
sana.comptes ={} salah : Client c2 : Compte
1 APourCompte 0..*
Client Compte
titulaire comptes
APourCompte>
ali : Client c1 : Compte
APourCompte>
salah : Client c2 : Compte
Chap.3 : UML 19
Exemple de lecture d’un diagramme
Un box peut être loué par au
maximum
Un contrat un seul contrat
concerne ou peut
la location d'un
seul box rester non loué.
à la fois.
UnUn
boxvéhicule
peut être
estvide
autorisé
ou contenir
à aller au
dans
maximum
un box (au
2 véhicule.
minimum) ou plus.
Un
Unlocataire peut
contrat ne souscrire
concerne plusieurs
qu'un seul
contrat mais doit en avoir souscrit au
locataire.
moins un.
Chap.3 : UML
Exercice de lecture d’un
diagramme de classes
Compte Banque
1..4 0..* 1..* 1..*
Client numéro numéro
titulaires solde nom
1 signataire ... 0..*
1
Consortium
CarteBleue
0..* * 1
Code
retraitMax EstAcceptéPar> 0..*
Distributeur
1..*
Chap.3 : UML 21
Exercice n°2
Contenus
<Contient
0..*
1..*
1..1 Est propriétaire de>
Contenant
Utilisateur Répertoire 0..1
EstAcceptéPar>
: Distributeur
: CarteBleue
signataire
titulaires
fred : Client c4 : Compte : Banque : Consortium
: CarteBleue
signataire
titulaires
salah : Client c2 : Compte
: Consortium
titulaires
sana : Client c3 : Compte : Banque
signataire
: CarteBleue
EstAcceptéPar>
sophie : Client : Distributeur
EstAcceptéPar>
Chap.3 : UML 24
Diagrammes de classes vs.
d’objets
Compte
Banque
1..4 0 1 1
. . .
. . .
Client * * *
numéro
solde
... numéro
titulaires nom
Consortium
0
.
.
*
•
CarteBleue
Code
retraitMax
EstAcceptéPar> 0
.
.
Distributeur *
•
1
.
Un diagramme d’objets s
i
g
n
a
t
a
i
ali :
Client
t
:
Carte
Bleue
c1 :
Comp
te
:
•
i a
r t n
e u q
l u
a e
i
•
i : q
g e u
Carte
n s e
Bleue
a EstA
t ccept
a éPar
• expliquer un diagramme de classe (donner un exemple)
• valider un diagramme de classe (le "tester")
Chap.3 : UML 25
Diagrammes de classes vs.
d’objets
Compte Banque
1..4 0..* 1..* 1..*
Client numéro
titulaires numéro
solde
nom
...
1 signataire 0..*
1
Consortium
CarteBleue
0..* * 1
Code
retraitMax EstAcceptéPar> 0..*
Distributeur
1..*
> >
: :
>
: : :
: Client : : : Consortium
: :
...
:
: Compte : : Compte :
Banq Banq
t ue t ue
: Compte :
i i
t t Banq
t ue
u u
l l i
a a t
i i u
r r l
e e a
t
s s i
i
: Client : Compte : Client : Compte r
t
: Consortium : Consortium e
u
s
l
a : Compte
i : Consortium
r
e
s
t t t
i i i
t t t
: Client : Compte : Client : Compte
u u : : u : t
l l Banq Banq l Banq i
a a ue ue a ue t
: Client : Compte
u :
i i i
l Banq
r r r
sign a ue
e e e
s atair s s i
e : : r
e
s
:
> >
: Client : Distributeur
> >
>
t1 t2 t3
Chap.3 : UML 26
Rappel
Algorithme Algorithme
Objets du du monde réel du logiciel
scénario) Objets du (scénario) Objets du
monde
logiciel langage
réel
Chap.3 : UML 28
Agrégation
Agrégation =
cas particulier d’association
+ contraintes décrivant la notion d'appartenance... ?
* Point
Figure *
x
y
Appartenance faible =
Partage possible du composant avec d’autres Agrégat/Eléments Agrégés
Une instance agrégée peut exister sans son agrégat et inversement
1
Pneu
4
Voiture Roue 1
Jante
composition =
cas particulier d’association
+ contraintes décrivant la notion de "composant"...
Chap.3 : UML 30
Composition
1
Pneu
4
Voiture Roue 1
Jante
Remarque :
i. Agrégation avec relation d'appartenance forte et coïncidence des durées de vie
ii. Les composants peuvent être créés après le composite, mais après création ils ont
la même durée de vie
iii. Les composants peuvent être enlevés avant la mort du composite
Dépend de la situation modélisée !
(Ex: vente de voitures vs. casse)
Chap.3 : UML 31
Composition
1..* 1..*
Chapitre Section
Document
0..*
Figure
0..1
Chap.3 : UML 32
Composition
1 1..* 1..*
Chapitre Section
Document
0..*
Figure
M1
1..*
M0 : section
: chapitre
: section Contrainte :
: figure le graphe d'objets
: document forme un arbre
: chapitre : section (ou une forêt)
: figure
Chap.3 : UML 33
Composition
Point Cercle
3..* 1
Polygone x rayon
y
M1
M0
Chap.3 : UML 34
Composition
Point Cercle
3..* 1
Polygone x rayon
y
M1
c1 : Cercle
M0
: Polygone rayon = 5
: : : :
Point
x=0 Point
x=0 Point
x = 10 Point
x = 10
y = 10 y=0 y=0 y=0
Chap.3 : UML 35
3.6 Classes associatives
employés sociétés
Personne 0..2 Société
*
Emploi
salaire
augmenter()
Chap.3 : UML 36
Classes associatives
employés sociétés
Personne Société
* 0..2
Emploi
M1 salaire
augmenter()
M0 e1
salaire
salaire==1500
1500
xerox
Le salaire est une information correspondant
employé
e2 • ni à une personne,
employé
salaire = 5000
• ni à une société,
Mark ST mais à un emploi (un couple personne-société).
e3
salaire = 1000
sana employé
Chap.3 : UML 37
Classes associatives
Emploi>
p1 Emploi> s1
Cette contrainte reste vraie dans le cas où l’association est décrite à partir
d ’une classe associative.
: Emploi
salaire = 1500
p1 s1
: Emploi
salaire = 700
Chap.3 : UML 38
Classes associatives
employé sociétés
Personne 0..2 Société
*
Emploi e1
salaire p1 s1
Ci-dessus, une personne peut avoir deux emplois, mais pas dans la même société
e1
p1 s1
e2
Virement Virement
montant montant
Ou ?
* *
compteDébité * compteDébité 1 1 compteCrédité
{non unique}
Compte * Compte
M1 compteCrédité
M0 v1
compteDébité compteCrédité Peut-on avoir plusieurs
Situation virements entre deux
c1 c2
possible ? comptes ?
compteDébité compteCrédité
v2
Chap.3 : UML 40
Exemple 2
Participation
nbDeButs
joueurs matchs
Joueur * Match
*
M0 p1
joueur match Un joueur peut il avoir
Situation ali plusieurs participations à un
finale
possible ? match donné ?
joueur match
p2
Chap.3 : UML 41
Exemple 3
CarteGrise
dateDélivrance
propriétaires voitures
Personne Voiture
* {non unique} *
M0 cg1
propriétaires voitures
Situation ali la106
possible ?
propriétaires voitures
cg2
Chap.3 : UML 42
Exemple 4
Veuvage Veuvage
date date
montantAssurance Ou ? montantAssurance
conjointLaisséVeuf
* 0..1
0..1
conjointLaisséVeuf 1 1 conjointDécédé
Personne *
conjointsDécédés Personne
M0 v1
conjointLaisséVeuf conjointsDécédés Peut on toucher deux
Situation ali sana fois l'assurance ?
possible ?
conjointLaisséVeuf conjointsDécédés
v2
Chap.3 : UML 43
Classes associatives
Les classes associatives sont des associations mais aussi des classes.
Elles ont donc les mêmes propriétés et peuvent par exemple être liées par des
associations.
employé société
Personne 0..2 Société
*
Emploi
* salaire
FicheDePaye
augmenter()
Chap.3 : UML 44
Associations n-aires
Salle Filière
Enseignant
Chap.3 : UML 45
3.7 Associations qualifiées
Repertoire Fichier
*
Chap.3 : UML 46
Exemple
* membres * <<enumeration>>
Titre
Personne Secretaire
Association1901 titre:Titre President
* 0..1 Tresorier
membres
Anis
membres
sylvia
ass1 Tresorier
President ahmed
Secretaire Taha
ass2 President
Chap.3 : UML 47
Cardinalité des Associations Qualifiées
0..1
Banque nc Compte
0..1
Cas plus rare: cardinalité * (pas de contrainte particulière exprimée)
nl : NumLigne
Echiquier nc : NumCol Case
1 1
0 comme cardinalité minimale, sauf si le domaine de l'attribut qualifieur est fini et
toutes les valeurs ont une image.
Chap.3 : UML 48
Attributs de l'association
nom="a" f1
r1
nom="b"
r2 nom="f" f2
r2
Solution correcte:
2 erreurs communes:
Contient
Repertoire nom Fichier
* 0..1
Repertoire Fichier
* *
Un répertoire contient 0 ou 1
fichier pour un nom donné
Chap.3 : UML 51
Synthèse sur les associations
sens de
lecture
Nom de rôle Nom d ’association
Cardinalités
AssociationX
Composition
attributZ Navigation
(ou agrégation )
Classe associative
Chap.3 : UML 52
3.8 Généralisation /Spécialisation
"Super classe"
Personne Cas général Compte
"Sous classes"
Homme Femme Compte
Cas spécifique
Epargne
Chap.3 : UML 54
Relation d'héritage
Compte
* Banque
solde
CompteEpargne
créditer()
solde * Banque
débiter() {inv: solde > -5000}
tauxIntérêt
créditer()
débiter()
CompteEpargne calculIntérêts ()
Chap.3 : UML 55
Relation d'héritage et
redéfinitions
Compte
Une opération peut être
"redéfinie" dans les sous-classes solde
créditer()
débiter()
Chap.3 : UML 56
Relation de sous-typage, Vision
ensembliste
Compte
Compte
M1 Epargne
M0
tout objet d’une sous-classe c3
appartient également à la c4
super-classe ce1
ce3 c4 c2
ce2
c1
Compte CompteEpargne
Chap.3 : UML 57
Synthèse des concepts de base
M1
M0 o1 o1
o3 o1
o2
o4
o2 o3
o2
o5
Chap.3 : UML 58
Contraintes
Chap.3 : UML 59
Contraintes
Contraintes