Académique Documents
Professionnel Documents
Culture Documents
Dr Ibrahima Gueye
igueye@ept.sn
Diagramme de Classe (DCL)
Unified Modelling Language Diagramme de classes (1/2)
q Considéré comme le plus important de la modélisation orientée
objet, il est le seul obligatoire lors d’une telle modélisation
q Diagramme de cas d’utilisation montre le système du point de
vue des acteurs,
q Le diagramme de classes montre la structure interne du système
3
Unified Modelling Language Diagramme de classes (2/2)
q Le DCL permet de modéliser les classes du système et leurs
relations, indépendamment d’un langage de programmation
particulier.
4
Unified Modelling Language Représentation d’une classe
q Une classe est représentée à l’aide d’un rectangle comportant
trois compartiments de base
q Le nom
§ Doit évoquer le concept qui décrit la classe
§ Commence par une majuscule
Nom Voiture
q Les attributs
matricule
§ Décrivent les caractéristiques des objets attributs marque
§ Captent l’information qui décrit et identifie vitesse
une instance spécifique d’une classe nbportes
démarrer()
q Les opérations
§ décrivent ce qu’une classe peut faire opérations
et quels services offre-t-elles aux autres classes.
5
Unified Modelling Language Attributs d’une classe
q Un attribut est une propriété commune à tous les objets
d’une classe.
q Ils représentent les données encapsulées dans les objets
d’une classe.
q Chaque attribut est définie par un nom, un type de
données, une visibilité et peut être initialisé.
q Le nom de l’attribut doit être unique dans la classe
q La syntaxe de la déclaration d’un attribut est la suivante :
<visibilité> [/] <nom_attribut>:<Type>
6
Unified Modelling Language Méthodes d’une classe
q Méthode: fonction assurée par une classe
§ 2 types:
Ø de classe: Elle ne peut manipuler que des attributs de la
classe et ses propres paramètres.
Ø abstraite: on connaît son entête mais pas la manière dont
elle peut être réalisée (i.e. on connaît sa déclaration mais pas
sa définition).
Doit être redéfinie dans une autre classe avant d’être
utilisée
§ Unicité
Ø Une opération (même nom et mêmes types de paramètres)
doit être unique dans une classe.
7
Unified Modelling Language
Accessibilité des attributs et des opérations
q Il existe trois niveaux de visibilité:
§ Public (+) : attribut ou opération visible par tous.
§ Protégé (#) : attribut ou opération visible seulement
à l’intérieur de la classe et par les sous classe de la
classe.
§ Privé (-) : attribut ou opération visible à l’intérieur
de la classe.
Personne
travailler pour > Entreprise
1..* 1..1
employÈ employeur
10
Unified Modelling Language Types d’associations
q Les relations suivantes peuvent exister entre des classes :
§ L’association simple: lien entre instances de
classes.
1 Un et un seul
0..1 zéro ou un
n n (entier naturel)
m..n De m à n (entier naturel)
* plusieurs
0..* De zéro à plusieurs
1..* De un à plusieurs
12
Unified Modelling Language Multiplicité (2/2)
q Association binaire: la multiplicité sur la terminaison
cible contraint le nombre d’objets de la classe cible pouvant
être associés à un seul objet donné de la classe source (la
classe de l’autre terminaison de l’association).
q Association n-aire: la multiplicité apparaissant sur le lien
de chaque classe s’applique sur une instance de chacune des
classes, à l’exclusion de la classe-association et de la classe
considérée.
Personne
travailler pour > Entreprise
1..* 1..1
employÈ employeur
14
Unified Modelling Language Documentation d’une association (2/2)
q Navigabilité: indique s’il est possible de traverser une
association.
q La navigabilité est représentée graphiquement par une flèche du
côté de la terminaison navigable et on empêche la navigabilité
par une croix du côté de la terminaison non navigable
* Être constituée *
commande produit
15
Unified Modelling Language Association réflexive
q Une association est dite réflexive quand les 2 extrémités pointent vers le même
classeur.
q Elle a pour principale fonction de structurer les objets d’une même classe.
§ Association asymétrique: permet de hiérarchiser les objets. Il est conseillé
d’ajouter les rôles aux extrémités
§ Association symétrique et transitive: permet de regrouper les objets
d’une même classe en classes d’équivalence.
§ Association symétrique et non transitive: partitionne les objets de la
classe.
a le même
age
0..1 0..*
Personne
*
*
enfant
amie de
2 *
Parent
16
Classe-association
Unified Modelling Language
q Une association peut avoir ses propres propriétés.
q Ses propriétés ne sont disponibles dans aucune des classes qu’elle lie.
q possède à la fois les caractéristiques d’une association et celles d’une classe.
q se connecte à deux ou plusieurs classes et peut posséder des attributs et des
opérations.
q Elle est caractérisée par un trait discontinu entre la classe et l’association
qu’elle représente
q Exemple: Les personnes qui travaillent dans une entreprise occupent un poste.
Le salaire d’un employé est lié au poste.
Personne Entreprise
* 1..1
employÈ employeur
17
Unified Modelling Language Association n-aire
q Une association peut relier plus de deux classes; elle est dite dans
ce cas n-aire
§ On représente une association n-aire par un grand losange avec
un chemin partant vers chaque classe participante.
§ Le nom de l’association, le cas échéant, apparaît à proximité du
losange.
Professeur Salle
1 1
Exemple
d’association
ternaire
1..n
Etudiant
18
Unified Modelling Language Classe d’association
q Les associations ternaires sont difficiles à déchiffrer et peuvent
induire en erreur. Mieux vaut utiliser des associations binaires
combinés avec des contraintes.
*
Professeur Cours Salle
1..1
0..*
1..1
0..*
1..*
Etudiant
19
Unified Modelling Language Qualification (1/2)
q Une classe rassemble un ensemble d’éléments (d’objets).
q On peut faire une restriction de la portée de l’association à
quelques éléments ciblés (comme un ou plusieurs attributs)
d’une classe. Ces éléments ciblés sont appelés un
qualificatif.
q Un qualificatif permet de sélectionner un ou des objets dans
le jeu des objets d’un objet (appelé objet qualifié) relié par
une association à un autre objet.
q L’objet sélectionné par la valeur du qualificatif est appelé
objet cible. L’association est appelé association qualifiée.
banque * * personne
0..2
banque #compte * personne
0..2
examen #échecs * étudiant
21
Agrégation (1/2)
Unified Modelling Language
q C’est une association asymétrique dans laquelle l’une
des extrémités joue un rôle prédominant par rapport à
l’autre.
q Elle représente une relation d’inclusion structurelle ou
comportementale d’un élément dans un ensemble
q Elle 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.
q Pour la représenter, on ajoute un losange vide du côté de
l’agrégat
22
Unified Modelling Language Agrégation (2/2)
Salle Chaise
Ecole
* *
1
2..*
1..1
23
Unified Modelling Language Composition (1/2)
q C’est un cas particulier de l’agrégation avec une contrainte de
durée de vie entre la classe composite et la ou les classes
composées.
q La destruction de l’agrégat implique automatiquement la
destruction de tous ses composants.
q Elle implique une contrainte sur la valeur de la multiplicité du
côté de la classe composite qui doit être 0 ou 1.
1
tête Règles obligatoires pour la composition
• La suppression du composite entraîne
1 la suppression des composants
corps • Les attributs du composite sont
utilisés dans les composants
personne 2 • Un composant ne peut pas être en
main relation avec d'autres classes externes
2 au composite.
pied
24
Composition (2/2)
Unified Modelling Language Porte FenÍ tre
1 *
On peut compléter
l’exemple sur 0..1 0..1
l’agrégation en Ecole
1
Salle
* *
Chaise
salle est
composée d’une 1
porte et de
plusieurs fenêtres 1
Projecteur
NB: La composition
Salle
étant structurelle, on
peut alors adopter la
représentation ci-contre
FenÍ tre *
Porte 1
25
Unified Modelling Language Généralisation et héritage
q La généralisation est la relation qui existe entre une classe générale
(super classe) et plusieurs autres classes (sous-classes) plus spécifiques.
q Les attributs et les opérations d’une super classe sont transmis aux
sous-classes par héritage.
q Une sous-classe possède toutes les propriétés de la super classe, mais
elle ne peut accéder aux propriétés privées de celle-ci.
q Une sous-classe peut redéfinir (même signature) une ou plusieurs
méthodes de la super classe.
q Toutes les associations de la super classe s’appliquent aux sous-classes.
q Une instance d’une sous-classe peut être utilisée partout où une
instance de sa super classe est attendue.
q Une classe peut avoir plusieurs parents, on parle alors d’héritage
multiple.
26
Unified Modelling Language Héritage multiple
{OU Inclusif} ou {overlaps} pour
montrer que les classes « Véhicule
terrestre » et « Véhicule Marin » ne
sont pas disjointes
27
Relation de dépendance
Unified Modelling Language
q Relation unidirectionnelle exprimant une dépendance sémantique
entre éléments du modèle.
§ Indique que la modification de la cible implique le changement
de la source.
§ Représentée par un trait discontinu orienté
§ Elle est souvent stéréotypée pour mieux expliciter le lien sémantique
entre les éléments du modèle
Ø Stéréotypes:
«friend»: on accorde une visibilité spéciale à la classe
source dans la classe cible
«dérive»: source calculée à partir de la cible
« appel », « send », « copie », « create »
Emploi du temps Cours
28
Unified Modelling Language Classe abstraite
q Une classe est abstraite si elle dispose d’un attribut ou
d’une méthode abstraite
q Une classe abstraite n’est pas instanciable.
Media
{abstract}
Auteur
Titre
dateCreation
Transporter( )
Dupliquer( )
Afficher( ) {abstract}
interface
Classe A Classe B
(implémente) (exige)
30
Unified Modelling Language Interface (2/3)
q Pour montrer les opérations dans une interface, on la
spécifie comme une classe avec le stéréotype
«interface».
autorisation
Fenêtre Mot de passe
code Numéro
Ouvrir( ) 1 contrôler( )
1..* Donner accès à
Fermer( )
« interface »
Autorisation
+Ouvrir( )
32
Unified Modelling Language Élaboration d’un DCL
q Trouver les classes du domaine étudié: Les classes
correspondent généralement à des concepts ou des
substantifs du domaine.
q Trouver les associations entre classes: les associations
correspondent souvent à des verbes, ou des constructions
verbales, mettant en relation plusieurs classes, comme « est
composé de », « pilote », « travaille pour ».
33
Unified Modelling Language Élaboration d’un DCL
q Trouver les attributs des classes: les attributs
correspondent souvent à des substantifs, ou des groupes
nominaux. N’espérez pas trouver tous les attributs dès la
construction du diagramme de classes.
q Organisation et simplification du modèle: éliminer les
classes redondantes en utilisant l’héritage
q Vérifier les chemins d’accès aux classes.
q Itérer et raffiner le modèle. Un modèle est rarement
correct dès sa première construction. La modélisation objet
est un processus non pas linéaire mais itératif
34
Diagramme d’Objet
(DOB)