0% ont trouvé ce document utile (0 vote)
13 vues73 pages

Diagramme de classes UML et concepts clés

Le document présente une introduction aux diagrammes de classes UML, en expliquant les notions de base comme les classes, objets, associations et héritage. Il aborde également des concepts avancés tels que les contraintes entre associations, la généralisation/spécialisation et l'importance de tester les modèles pour assurer leur conformité. Enfin, il souligne l'usage pratique des diagrammes dans la modélisation de systèmes métiers.

Transféré par

med.harrane
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues73 pages

Diagramme de classes UML et concepts clés

Le document présente une introduction aux diagrammes de classes UML, en expliquant les notions de base comme les classes, objets, associations et héritage. Il aborde également des concepts avancés tels que les contraintes entre associations, la généralisation/spécialisation et l'importance de tester les modèles pour assurer leur conformité. Enfin, il souligne l'usage pratique des diagrammes dans la modélisation de systèmes métiers.

Transféré par

med.harrane
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MCDC -

Diagramme de classes
Ileana Ober
Université Paul Sabatier
IRIT
[Link]

Année Universitaire 2023-2024


©Ileana Ober
Une démarche

(classes métier)
+ diags activité
(processus métier)

Adapté de
"UML : modéliser un site e-commerce",
Pascal ROQUES, Eyrolles, 2002
Plan

✤ Notions de base

✤ Conformité
diagramme de classes - système modélisé,
diagramme d’instances - diagramme de classes

✤ Concepts avancés

✤ Usage des diagrammes de classes


Notions de base

✤ Classe

✤ Objet

✤ Association

✤ Héritage

✤ Contrainte
Classe UML

Compte Nom de la classe

Attributs
découvertMax : Entier
nom : type
solde : Réel
Opérations
consulterSolde : Réel nom
créditer (somme:Réel) liste paramètres
(avec leur types)
type de retour
inv: solde > découvertMax
Notations pour la classe

Compte Compte Compte

découvertMax : Entier consulterSolde : Réel


Compte solde : Réel créditer (somme:Réel)

✤ noms de classes (et types) en majuscule

✤ nom d’attributs et opérations en minuscule


Objet UML

comptePaul:Compte :Compte comptePaul

comptePaul:Compte

découvertMax = 1000
solde =456

✤ noms d’objets commencent par une minuscule

✤ nom soulignés = noms d’instance


Classe et Objet
Compte
découvertMax : Entier
✤ Une classe spéci e la structure et le
solde : Réel
comportement d’un ensemble d’objets
consulterSolde : Réel
✤ La structure d’une classe est constante créditer (somme:Réel)
comptePaul:Compte
✤ Une classe existe pendant toute l’exécution
découvertMax = 1000
✤ Les objets sont crées ou détruits pendant solde =456
l’exécution compteMarie:Compte
✤ La valeur des attributs des objets varie découvertMax = 1500
solde =345
fi
Lien - connexion entre objets

titulaire
marie: Personne c1: Compte
compte

pierre: Personne titulaire compte c2: Compte

titulaire

anna: Personne c3: Compte


compte
Liens

titulaire compte
marie: Personne compte c1: Compte
titulaire
épouse époux
épouse époux
marie: Personne paul: Personne

épouse époux
Au maximum un lien d’un type donné entre les
mêmes deux objets
(contrainte qui pourra être relachée plus tard)
Rôles
aPourCompte▶
marie: Personne titulaire compte c1: Compte

✤ Chacun des deux objets joue un rôle dans le lien

✤ Le nom de ce rôle apparaît sur le lien du côté de l’objet

marie est titulaire du compte c1


c1 est le compte de marie

✤ Si le nom de rôle est omis on utilise le nom de la classe


Associations
✤ Une association regroupe un ensemble de liens

aPourCompte classes+
Personne Compte associations

marie: Personne aPourCompte▶ c1: Compte

pierre: Personne aPourCompte▶ c2: Compte


objets+ liens
anna: Personne aPourCompte▶ c3: Compte
Association - Lien
✤ Un lien relie 2 objets
✤ Une association relie 2 classes

✤ Un lien est une instance d’association


✤ Une association donne le type d’un ensemble de liens

✤ Un lien peut être crée détruit pendant l’exécution


✤ Une association ne varie pas à l’exécution

titulaire
Personne Compte
compte

marie: Personne titulaire c1: Compte


compte
Nom des associations
aPourCompte▶
Personne Compte
titulaire comptes être cohérent
Personne Compte

Personne Compte
titulaire comptes
privilégier les
Personne noms de rôle
Compte
titulaire
aCommeClient
Personne Compte
titulaire comptes
aPourCompte▶
Personne Compte
privilégier les
Rôles et navigation noms de rôle

aPourCompte▶
Personne Compte
titulaire comptes

marie: Personne titulaire aPourCompte▶ comptes c1: Compte


[Link] = {c1}
titulaire aPourCompte▶
[Link] = {c2, c3} pierre: Personne
comptes
c2: Compte
titulaire
[Link] = ∅ anna: Personne aPourCompte▶ c3: Compte
comptes
[Link] = {marie}
[Link] = {pierre}
[Link] = {anna}
Cardinalité d’une association
✤ précise combien d’objets peuvent être liés (à un certain moment)
✤ donne la cardinalité minimale et maximale
✤ les cardinalités sont des contantes
1 aPourCompte▶ *
Personne Compte
titulaire comptes
Une Personne a 0 ou plusieurs comptes Une Compte a 1 titulaire
marie: Personne titulaire aPourCompte▶ comptes c1: Compte

titulaire aPourCompte▶
pierre: Personne c2: Compte
comptes
titulaire

anna: Personne aPourCompte▶ c3: Compte


comptes
Associations réflexives

✤ Rien n’empêche les parents


associations ré exives
Personne
2
* enfants
✤ Une association ré exive
n’implique pas un lien estParentDe▶
ré exif

ana victor anïssa


parents parents
parents parents parents
parents parents

jo jean myriam farah


parents
fl
fl
fl
Contraintes entre des associations
titulaires
Client Compte Attention aux
1..4 *
1 contraintes évidentes qui
signataire 1
peuvent mener à des mauvais
CarteBleue modèles
* *

titulaires
sarah:Client c1:Compte
signataire
cb1:CarteBleue
titulaires

anïssa:Client titulaires c2:Compte


titulaires
ana:Client c3:Compte
signataire
cb2:CarteBleue
Contraintes entre des associations
titulaires
Client 1..4 * Compte
1 Le signataire de la carte bleue
signataire 1
associée à un compte est l’un
CarteBleue des titulaires de ce compte
* *

titulaires
sarah:Client c1:Compte
signataire
cb1:CarteBleue
titulaires

anïssa:Client titulaires c2:Compte


titulaires
ana:Client c3:Compte
signataire
cb2:CarteBleue
Contraintes entre des associations
titulaires
Client 1..4 * Compte
1 Le signataire de la carte bleue
signataire 1
associée à un compte est l’un
CarteBleue des titulaires de ce compte
* *

✤ Les contraintes peuvent s’exprimer de manière précise avec des


langages de contrainte (OCL - Object Constraint Language)

context CarteBleue
inv: [Link] -> includes [Link]
Généralisation / Spécialisation

✤ Une classe peut généraliser une (ou plusieurs) autre(s) classe(s)

Animal Compte

Vertébré Invertébré CompteEpargné

Mammifère Oiseau Relation d’héritage


Relation de
sous-typage
Héritage
Compte * 1 Banque
découvertMax : Entier
solde : Réel inv: solde > découvertMax
consulterSolde : Réel
créditer (somme:Réel)

CompteEpargne
inv: tauxIntérêt < 100
tauxIntérêt: Réel
Les classes héritent des
attributs, opérations, associations et
ajouterIntérêts()
contraintes des super-classes
Héritage
Compte Banque
découvertMax : Entier * 1
solde : Réel
inv: solde > découvertMax CompteEpargne
consulterSolde : Réel
créditer (somme:Réel) découvertMax:Entier
solde:Réel
CompteEpargne inv: tauxIntérêt < 100
tauxIntérêt: Réel
tauxIntérêt: Réel
consulterSolde : Réel
ajouterIntérêts()
1 * créditer (somme:Réel)
Banque ajouterIntérêts()

inv: solde > découvertMax


inv: tauxIntérêt < 100
Redéfinition des opérations
Polymorphisme
✤ Une opération peut être redé nie dans une sous-classe

✤ Permet d’avoir des méthodes spéci ques dans le contexte de


chaque classe
Animal a;
Animal
if <condition>
cri ()
a = new (Chien)
else
a=new (Chat)
Chien Chat
endif Le corps de cette
cri () cri ()
[Link](); opération est lié
cri() { miaou}
uniquement à l’exécution
cri() { ouaf-ouaf}
fi
fi
Classes abstraites
✤ Certaines classes sont
Animal
présentes uniquement pour
structurer l’hiérarchie
d’héritage =>
Vertébré Invertébré classe abstraite
(antonyme classe concrète)

✤ Une classe abstraite ne peut


Mammifère Oiseau pas être instanciée

✤ Utile pour dé nir un


comportement abstrait
Chien Chat
✤ Notation: nom en italique
fi
Méthodes abstraites

✤ Certaines méthodes sont


présentes uniquement pour
Animal
dé nir un comportement
abstrait
cri ()

✤ Notation: nom en italique

Chien Chat ✤ Elles sont présentes dans des


cri () cri () classes abstraites

cri() { ouaf-ouaf} cri() { miaou}


✤ Doivent être raf nées dans les
classes concrètes
fi
fi
Héritage multiple

Animal

✤ Une classe peut hériter


Herbivore Carnivore
plusieurs super-classes

✤ Interdit en certains langages de


Omnivore programmation (Java, C#)

✤ Autorisé par défaut en UML


Plan

✤ Notions de base

✤ Conformité
diagramme de classes - système modélisé,
diagramme d’instances - diagramme de classes

✤ Concepts avancés

✤ Usage des diagrammes de classes


Conformité
Diagramme instances - diagramme classes

parents
✤ Est-ce que c’est conformé? Personne
2
* enfants
Pas conforme au
diagramme de classes estParentDe▶

ana victor anïssa


parents parents
parents parents parents
parents parents

jo jean myriam farah


parents
Conformité
Diagramme de classes - système modélisé

parents
✤ Est-ce que c’est conformé? Personne
0..2
Conforme au * enfants
diagramme de classes
estParentDe▶
Pas conforme à la
réalité
ana victor anïssa
parents parents
parents parents parents
parents parents

jo jean myriam farah


parents
Rajouter des contraintes

parents
Personne
La relation estParentDe 0..2
* enfants
est acyclique
estParentDe▶

ana victor anïssa


parents parents
parents parents parents
parents parents

jo jean myriam farah


parents
Tester le modèle est indispensable

✤ tester les cardinalités veuve


Personne
*
✤ tester la terminologie
* veuf
✤ identi er les contraintes manquantes

Un modèle non testé est


fort probablement erroné
fi
Tester le modèle est indispensable

✤ tester les cardinalités veuve


Personne
*
✤ tester la terminologie
* veuf
✤ identi er les contraintes manquantes
fi
Tester le modèle est indispensable

✤ tester les cardinalités veuve


Personne
*
✤ tester la terminologie
* veuf
✤ identi er les contraintes manquantes

veuf veuve
victor myriam
veuf
jean farah
veuve
fi
Tester le modèle est indispensable

✤ tester les cardinalités veuve


Personne
*
✤ tester la terminologie
* veuf
✤ identi er les contraintes manquantes

veuf veuve
victor myriam
veuve pierre
veuf veuf
jean farah
veuve
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédé


Personne
*
✤ tester la terminologie
*
✤ identi er les contraintes manquantes

conjointDécédé
victor myriam
conjointDécédé pierre

jean conjointDécédé
farah
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
*
✤ identi er les contraintes manquantes

conjointDécédés
victor myriam
conjointDécédés pierre

jean farah
conjointDécédés
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
* conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
* conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah

sarah conjointVeuf
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
0..1 conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah

sarah conjointVeuf
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
0..1 conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
0..1 conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah
fi
Tester le modèle est indispensable

✤ tester les cardinalités conjointDécédés


Personne
*
✤ tester la terminologie
0..1 conjointVeuf
✤ identi er les contraintes manquantes

conjointDécédés conjointVeuf
victor conjointVeuf myriam
conjointVeuf conjointDécédés pierre

jean conjointDécédés
farah
fi
Contraintes entre des associations
titulaires
Client Compte Attention aux
1..4 *
1 contraintes évidentes qui
signataire 1
peuvent mener à des mauvais
CarteBleue modèles
* *

titulaires
sarah:Client c1:Compte
signataire
cb1:CarteBleue
titulaires

anïssa:Client titulaires c2:Compte


titulaires
ana:Client c3:Compte
signataire
cb2:CarteBleue
Plan

✤ Notions de base

✤ Conformité
diagramme de classes - système modélisé,
diagramme d’instances - diagramme de classes

✤ Concepts avancés

✤ Usage des diagrammes de classes


Concepts avancés

A utiliser en
fonction de l’étape de
développement, la nature du projet,
✤ visibilité les outils de modélisation, ...
✤ énumération

✤ association - notions avancées


(composition, agrégation, classe associative association quali ée)

fi
Visibilité

✤ Une technique permettant de restreindre l’accès à certains éléments


du modèle

+ public visible
# protégé visible dans la classe et les sous-classes
- privé visible uniquement dans la classe
∼ package visible uniquement dans le package

✤ Utile en conception détaillée et implémentation (pas avant!)

✤ N’a pas de sens dans un modèle conceptuel

✤ Sa sémantique peut dépendre du langage de programmation nal

fi
Enumération

<<enumeration>> ✤ pas d’ordre entre les valeurs


Volume
Fort
Moyen Utilisation:
Faible

<<énumération>> ChaineHiFi
PointCardinal
volHPGauche: Volume
Nord
volHPDroit: Volume
Sud
Est
Ouest
Associations - notions avancées

✤ Navigation

✤ Composition, agrégation

✤ Contraintes prédé nies

✤ Classe associative

✤ Association quali ée
fi
fi
Navigation
✤ Association unidirectionnelle

✤ Signi e qu’on peut naviguer dans un seul sens

✤ Rajoute une contrainte

✤ En cas de doute ne pas mettre de navigation


équivalentes
✤ Utile en conception et implémentation
(pas à l’analyse, pas dans un diagramme de classe métier)
saVoiture
*
Voiture Personne
*
propriétaires
fi
Composition

✤ Notion intuitive de “composant” et “composites”

1 1
4
Pneu
Voiture Roue
1 1 1 Jante
Composition - contraintes

Contraintes liées à la composition

[Link] objet composant ne peut être que dans un seul objet composite

2. Un objet composant n’existe pas sans son objet composite

3. Si l’objet composite est détruit, ses composants le sont aussi

Peut dépendre de la
1 1
4
Pneu situation modélisée
Voiture Roue (vente voitures vs. casse)
1 1 1 Jante
Composition - exemple

Contraintes liées à la composition

1. Un objet composant ne peut être que dans un seul objet composite

2. Un objet composant n’existe pas sans son objet composite

3. Si l’objet composite est détruit, ses composants le sont aussi

1 1..*
1 1..* Section
Document Chapitre *
Figure
*

0..1
Composition - exemple
1 1..*
1 1..* Section
Document Chapitre *
Figure
*

0..1

:Section
:Chapitre :Section
:Document :Figure
:Chapitre Les composants
:Section forment un arbre

:Figure
Composition - exemple
1
Polygone 3..* Point Cercle
x
rayon
y
Composition - exemple
1
Polygone 3..* Point Cercle
x
rayon
y

:Polygone :Cercle

:Point :Point :Point

:Point :Point
Composition - exemple
1
Polygone 3..* Point Cercle
x
rayon
y

:Polygone :Cercle

:Point :Point :Point :Point

:Point :Point
Composition -
notations alternatives
1 4 Roue
Voiture r Voiture
1 1 Moteur 4
m
Roue
1
Moteur
Voiture
r : Roue [4]
m : Moteur
Agrégation
✤ cas particulier d’association + contrainte décrivant l’appartenance

✤ pas de sémantique claire

✤ utiliser avec précaution (pas l’utiliser)

3..* 1
Polygone Point Cercle
x
rayon
y
Agrégation - exemple

3..* 1
Polygone Point Cercle
x
rayon
y

:Polygone :Cercle

:Point :Point :Point

:Point :Point
Contraintes prédéfinies
associations
*
Compte OpérationsBancaires
{ordered, addOnly}

Par exemple :

✤ { frozen } : xé lors de la création de l ’objet, ne peut pas changer

✤ { ordered } : les éléments de la collection sont ordonnés (pas triés!)

✤ { nonUnique } : répétitions possibles (UML2.0)

✤ { addOnly } : impossible de supprimer un élément


fi
Classes associatives

✤ Permettent d’associer des attributs et des méthodes aux


associations

Le nom de la
employé employeur
Personne Société classe est le nom de
* 0..2 l’association
Emploi
Les attribues et les
salaire
opérations sont spéci ques à
taxes() l’association et non pas aux
classes
fi
Classes associatives - exemple
employé employeur
Personne Société
* 0..2 Les attribues et les
opérations sont spéci ques à
Emploi
l’association et non pas aux
salaire e1:Emploi
taxes() classes
salaire=1200
sarah:Personne cnes:Société
e2:Emploi
salaire=1300
pierre:Personne
cea:Société
e3:Emploi
salaire=1400
fi
Classes associatives
✤ Un couple d’objets ne peut être connecté que par un seul lien
correspondant à une même association
Emploi▶
sarah:Personne cnes:Société
Emploi▶
✤ Contrainte valide dans le cas des classes associatives
e1:Emploi
salaire=1200
sarah:Personne cnes:Société

e2:Emploi
salaire=1300
Classes associatives
✤ Si la modélisation doit permettre à une personne d’avoir deux
emplois pour la même Société, il ne faut pas utiliser une classe
associative

Personne Société
1 1
employé employeur
Emploi
salaire
0..2
taxes() *
Classes associatives

✤ Peuvent être utilisées comme des classes, i.e. participer à des


associations

employeur
Personne Société
* 0..2

Emploi
*
FicheDePaye salaire
{ordered}
taxes()
Associations qualifiées

✤ Un quali er est un (ensemble de) attribut(s) dont la valeur sert à


ltrer l’ensemble des instances associées via une association

Répertoire nom Fichier


0..1

Banque noCompte Compte


0..1
fi
fi
Vue générale sur les associations

Nom association Nom de rôle


Direction de
lecture
Nom de rôle Navigation
roleA Assoc ▶ roleB
ClasseA q:string ClasseB
{ordered} *

Quali cateur Assoc Multiplicité

attr
Composition
oper()
Contrainte
Classe associative
fi
Plan

✤ Notions de base

✤ Conformité
diagramme de classes - système modélisé,
diagramme d’instances - diagramme de classes

✤ Concepts avancés

✤ Usage des diagrammes de classes


Usage des diagrammes de classes

Syntaxe identique
✤ En modélisation métier
Diagramme de classes du domaine

✤ En conception objet préliminaire


Diagramme de classes participantes - pour chaque réalisation des
cas d’utilisation
Niveau de détail
✤ En conception objet détaillée différent
Diagramme de classes de la conception
Modélisation métier

Buts:

✤ Comprendre la structure statique et dynamique d’une organisation


✤ S’assurer que les clients, utilisateurs et développeurs ont la même
compréhension de l’organisation
✤ Déduire des besoins système pour supporter l’organisation
Une démarche

(classes métier)
+ diags activité
(processus métier)

Adapté de
"UML : modéliser un site e-commerce",
Pascal ROQUES, Eyrolles, 2002
Transparents élaborés à partir des supports réalisés par

Jean-Marie Favre, Université Joseph Fourier, Grenoble


Henri Massié, Université Paul Sabatier, Toulouse
Joannis Parissis, Université Joseph Fourier, Grenoble

Vous aimerez peut-être aussi