Vous êtes sur la page 1sur 24

Chapitre II: Diagramme de

classes

Responsable : Achraf MTIBAA


Année Universitaire 2018-2019

1
Chapitre 2 : Les diagrammes de classes
 Les diagrammes de classes expriment la structure statique d’un système en
termes :
 De classes et de relations entre elles et
 Un ensemble d’interfaces et de paquetages ainsi que leurs relations.
 Une classe décrit un ensemble d’objets, une association décrit un ensemble
de liens
 Les objets sont instances des classes et les liens sont instances des
associations
 Un diagramme de classes décrit de manière abstraite les liens potentiels
d’un objet vers d’autres objets. Est une instance de
1,N 0,N
Lien Objet Relation Classe
1, N 1, N
Est une instance de
2
1- Concepts de base
 AVEC UML, UNE CLASSE :
 est un type abstrait avec des caractéristiques communes à un
ensemble d'objets.
 permet de créer des objets ayant ces caractéristiques
 Est représentée par un rectangle avec:
 Propriétés Nom de Classe
 Méthodes et
Propriétés
 Exceptions / Conditions.
Méthodes

Classe = propriétés + méthodes + instanciation


3
Concepts de base

 LES ATTRIBUTS ET LES OPÉRATIONS :


 Sont décrits dans le deuxième et troisième compartiments
 Peuvent être précisés par : attributs et opérations

Nom de Classe
NomAttribut [: type = valeur
initiale]

Opération ()
 Remarques :
 L’ordre opération / attribut = attribut / opération

 Opération = méthode = fonction-membre, …

 Attribut = propriété = donnée-membre, …

4
Concepts de base
 La syntaxe de description des attributs est :

Visibilité NomAttribut [[Multiplicité] : Type [=ValeurInitiale]


[{Propriété}]]

 Visibilité = type d'accessibilité :


Public : visible et modifiable par tout objet du même paquetage
Private : seulement visible et modifiable par les opérations de
l'objet auquel il appartient.
Protected : seulement accessible et modifiable par les opérations
des classes descendantes
 Multiplicité : intervalle ou nombre
 Propriété : mutabilité (gelé, variable, ajout Uniquement, …)

5
2- Les relations entre classes
 Association
 Agrégation
 Composition Remarque : par rapport au modèle E/A de base
 Héritage RC UML + riches sémantiquement et + proches de la réalité
 Les associations :
 Une association exprime une connexion sémantique
bidirectionnelle entre n classes (n>=1).
 Une association est instanciable dans un diagramme d'objets ou
de collaboration sous forme de liens entre objets issus des
classes associées.

ADHERENT
Nom emprunter
EXEMPLAIRE
Prénom
Adresse

6
2- Les relations entre classes
 LES ASSOCIATIONS :
 représentent des relations statiques/conceptuelles entre objets
et à longue durée de vie (n’est pas un lien instantané ni
passager).
 Relient une ou plusieurs classes : arité 1 ou plus
 Par rapport au modèle Entité / Association :

Entité 1 Entité 2
Card1 Card2
Diag. Entité / P11, Ass P21,
Association P12 P22
… …

Card2 Card1
Diag. De CEntité1 CEntité2
classes 7
2- Les relations entre classes
 Arités des associations :
 Une association peut être binaire ou naire.
 Exemple : on désire représenter le fait suivant : un
Professeur enseigne dans une salle des étudiants.
PROFESSEUR

Enseigner
SALLE ETUDIANT
Si on veut matérialiser le cours

COURS
Association porteuse de données
8
2- Les relations entre classes
 Les associations : Nommage
 Une association peut être nommée

[ Nom Association ]
Classe1 Classe2

 Comment justifier la non obligation du nom de l’association :


 Aux niveaux conception et implantation

 Sens de lecture d’une association :


 Association en forme verbale active (ou passive) :

 précise le sens principal de lecture d'une association (>


ou <).
Est Employée Par>
HÔTEL héberge> PERSONNE PERSONNE SOCIÉTÉ

Association en forme verbale active Association en forme verbale Passive


9
2- Les relations entre classes
 Association à navigabilité restreinte :
 Par défaut, une association est navigable dans les deux sens.
 On peut la limiter à un seul sens dans un modèle (et non lors de
d'implémentation).
 indique que les instances d'une classe ne "connaissent" pas les
instances d'une autre.
ELECTEUR vote CANDIDAT
Connaître
ETUDIANT ENSEIGNANT
 Les associations : Notion de rôle
 Rôle des associations (utilisé pour les associations ambiguës) :
 spécifie la fonction d'une classe pour une association donnée

Client Parents
HÔTEL PERSONNE PERSONNE
Directeur Enfants
10
2- Les relations entre classes
 La notion de rôle :

[ Nom Association ]
Classe1 Classe2
[Rôle1] [Rôle2]

 Rôle 1 : le rôle joué par Classe 1 dans l’association


 Rôle 2 : le rôle joué par Classe 2 dans l’association

Professeur Etudiant
Enseigne Est Enseigné

11
2- Les relations entre classes
 LES ASSOCIATIONS : CARDINALITÉS
 précisent le nombre d'instances qui participent à une relation.
 Combien d’objets de la classe considérée peuvent être liés à
un objet de l’autre classe?

1 Un et un seul
0 .. 1 Zéro ou un
N N (entier naturel)
M .. N De M à N (entiers naturels)
* De 0 à plusieurs
0 .. * De 0 à plusieurs

1 .. * De 1 à plusieurs
12
Un exemple illustratif

13
2- Les relations entre classes
 L’agrégation :
 Est une association non symétrique,
 Exprime un couplage fort et une relation de subordination.
 Représente une relation de type "ensemble/élément".
 Peut notamment (mais pas nécessairement) exprimer :
 qu'une classe (un "élément") fait partie d'une autre
("l'agrégat"),
 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.
 Une instance d'élément agrégé peut :
 être liée à plusieurs instances d'autres classes :
 l'élément agrégé peut être partagé (dans le temps)
 exister sans agrégat (et inversement)
 les CV de l'agrégat et de ses éléments agrégés peuvent être
indépendants :
 La création de l’un n’implique pas celle de l’autre

14
2- Les relations entre classes
 Composition :
 La composition est une agrégation forte.
 Les cycles de vie des éléments (les "composants") et du
composé coïncident :
 si le composé est détruit (ou copié), ses composants le sont
aussi.
 une instance de composant ne peut être liée qu'à un seul
composé.
 Les "objets composites" sont des instances de classes
composées.

COUVERTURE LIVRE CHAPITRE

Agrégation Composition
Remarque : toutes les conventions relatives aux cardinalités restent
valables pour les Agrégations et les compositions
15
Propriétés de la composition
 La composition implique une contrainte sur la valeur de
la multiplicité du côté de l’agrégat : elle ne peut prendre
que les valeurs 0 ou 1.
 La composition et les attributs sont sémantiquement
équivalents.

Cylindre

Immeuble Chambre
Voiture Moteur
Cercle

Carburateur

Point
Rectangle

16
2- Les relations entre classes
 LA GÉNÉRALISATION :
 L’héritage, avec UML, est désigné par GENERALISATION
 Elle représente une relation de classification entre élément plus
général et un élément plus spécifique.
 Elle peut être appliquée aux classes, aux paquetages et aux cas
d’utilisations
 La généralisation peut être
 Simple ou
GENARALISATION

SPECIALISATION

Remarque : une classe généralisée peut être spécialisée selon ≠ critères


 Multiple :
 La spécialisation a plus qu’une généralisation
17
2- Les relations entre classes
 Contraintes et propriétés de la généralisation :
 Les attributs, les opérations, les relations et les contraintes définies
dans les super-classes sont hérités dans les sous-classes
 La contrainte exprimée par le mot-clé {disjoint}
 Tout objet est au plus instance d’une seule sous-classe

 La généralisation, par défaut, symbolise une décomposition


exclusive.
 La contrainte exprimée par le mot-clé {chevauchement}
 Une classe descendante  au produit cartésien de ses classes
généralisées
VEHICULE
Premier Deuxième
critère critère
Motorisation Milieu
{chevauchement}
A VOILE A MOTEUR TERRSETRE MARIN

18
LES DEUX
2- Les relations entre classes

 Contraintes et propriétés de la généralisation :


 La contrainte exprimée par le mot-clé {complet}
 Indique que la généralisation est terminée :

 Il n’est pas possible d’ajouter d’autres sous-classes

 La contrainte exprimée par le mot-clé {incomplet}


 Indique que la généralisation est extensible : elle peut avoir
d’autres spécialisations
COURS

{incomplet}

COOSI IA GL BDA

19
2- Les relations entre classes
 LES ASSOCIATIONS : CONTRAINTES
 La multiplicité représente un exemple de contrainte sur le nombre de
liens qui peuvent exister entre deux objets.
 permettent d'étendre ou de préciser la sémantique
 permettent de restreindre le nombre d'instances visées
 peuvent s'exprimer en :
 Langage Naturel ou
 graphiquement avec un {texte} ou
 En OCL (Object Constraint Language)
 Les types de contraintes exprimables sur les associations :
 Ordonné;

 Sous-ensemble;

 Ou-exclusif, …
20
2- Les relations entre classes
 Les associations : Contraintes
 Ordonné :

PERSONNE 1 0..* COMPTE


{ordonné}

 La collection des comptes d’une personne est triée

 Sous-ensemble :
SERVICE 1 affecter 1..* EMPLOYE
Numéro_S Numéro
{sous-ensemble} Nom
Nom_S
... ....
0..1 diriger 1

21
2- Les relations entre classes
 Les associations : Contraintes
 Ou-exclusif :
Indique que pour un objet donné, une seule association est valide

BATTERIE
PORTABLE {Ou-exclusif}

Alimenter SECTEUR

Cette contrainte permet d’éviter l’introduction de classes artificielles

Alimenter ENERGIE
PORTABLE
SECTEUR BATTERIE
22
2- Les relations entre classes
 Classe d'association :
 est une classe qui réalise la navigation entre les instances d'autres
classes.
 représente les associations porteuses de données.
Passe >
ETUDIANT EXAMEN

NOTE

 Remarque : classe d’association (Cde, Client, Facture)& attribut de


lien (Cde, produit, QteCdée)
 Qualification :
 permet de sélectionner un sous-{} d'objets, parmi ceux participant à une
association.
 est définie par une clé, qui permet de sélectionner les objets ciblés.

Personne 0..1 E-mail Réseau


23
Grammaire OCL : Object Constraint
Language
 Langage formel pour l’expression de contraintes, standardisé par
l’OMG.
 Supprimer des ambiguïtés en se basant sur une grammaire précise.
 OCL permet l’expression des contraintes suivantes :
- Les invariants au sein d’une classe ou d’un type,
- Les contraintes au sein d’une opération,
- les pré- et post-conditions d’opération
 Chaque contrainte OCL est liée à un contexte définissant le type
auquel la contrainte se rapporte.
 Exemple :
Context Classe d’école : : ajouter (unElève : Personne)
pre classeD’écoleNonSurchargée : nbr_élèves <=25
Post : élévesexists (unElève)

24

Vous aimerez peut-être aussi