Académique Documents
Professionnel Documents
Culture Documents
I. Introduction :
Le diagramme de classe (DCL) constitue l’un des diagrammes pivots nécessaire à toute
modélisation objet UML. Il représente l’aspect statique du système. Cette représentation est basée
sur les concepts de classe et d’association.
II.1. Classe : C’est la description d’une collection d’objets qui partage des attributs, des
comportements ou des associations communs ou plus globalement, une sémantique commune.
La classe est une abstraction de l’objet et l’objet est une instanciation de la classe.
En phase d’analyse d’un système informatique, l’intérêt du DCL est de modéliser les entités
informationnelles. Toute information mémorisée, manipulée, transformée ou partagée doit figurer
quelque part dans le DCL. Les informations sont structurées et regroupées en classes.
Représentation :
Remarque :
- Une classe peut être représentée par un rectangle à 01, à 02 ou à 03 compartiments ou plus.
L’absence d’un compartiment <<attribut>> ou <<comportement>> ne signifie pas que la
classe n’en possède pas. Cela signifie juste que ce n’est pas encore défini.
- En début de la phase d’analyse, il est fréquent de ne donner que le nom de la classe et de
différer la définition des attributs et des opérations à de prochaines étapes.
Exemple :
II.1.1. Attribut :
La classe est un concept global d’information. Elle se compose d’un ensemble d’informations
élémentaires qui caractérisent la classe. Ces informations élémentaires sont les attributs.
Un attribut est défini par un nom, un type et même une valeur initiale.
Visibilité d’un attribut :
UML définit 03 niveaux de visibilité :
- Privé : l’attribut n’est visible que dans sa classe.
+ Publique : l’attribut est visibles par toutes les autres classes.
# Partagé : l’attribut est visible par sa classe et ses classes filles.
En UML un attribut est généralement privé car le concept de l’encapsulation le rend accessible
uniquement via les opérations publiées de l’objet
Attribut dérivé :
Il est possible de définir un attribut dont la valeur peut être déduite d’un ou de plusieurs autres
attributs de la classe. Il contient alors le résultat d’un calcul effectué sur les autres attributs.
Représentation : La présence d’un attribut dérivé en UML doit être signalée par le symbole « / »
Exemple :
Age et montant-TTC peuvent être calculés à partir d’autres attributs de leurs classes respectives
(date-naiss , montant-HT).
En phases plus avancées d’analyse ou de conception, le concepteur remplacera l’attribut dérivé par
une opération qui le calcule. Il peut le garder exceptionnellement.
Identifiant d’une classe:
C’est un attribut qui doit être défini et qui permet d’identifier de manière unique chaque objet
instance de la classe. S’il est correctement défini, une dépendance fonctionnelle doit exister entre
cet attribut et chacun des autres attributs de la classe. L’existence de cette Df justifie le
regroupement des attributs dans une classe.
II.1.2. Opération :
Une opération est une fonction applicable aux objets de la classe. Elle permet de décrire le
comportement d’un objet. L’opération est ensuite implémentée par une méthode.
Chaque opération est désignée soit par un nom uniquement, soit pas son nom suivi d’une liste de
paramètres. Elle peut avoir un type du résultat qu’elle retourne.
Représentation :
[visibilité] nom-opération({paramètre :type}) [ : type résultat]
UML définit 03 niveaux de visibilités pour les opérations identiques à ceux définis pour les
attributs :
+ publique : l’opération est invocable de l’intérieur ou de l’extérieur de l’objet
# partagé : L’opération est partagée entre une classe mère et ses filles seulement
- privée : L’opération est privée et n’est invocable que par les autres opérations de l’objet.
Par définition les opérations sont publiques (+) ce sont elles, qui constituent l’interface de l’objet à
travers laquelle il est invocable.
Exemple :
Il y a des opérations triviales qui ne peuvent ne pas exister dans la spécification d’une classe :
Constructeur : Qui permet de créer un objet instance de la classe et qui peut être : créer(), inscrire(),
ajouter(), recruter()...
Destructeur : qui permet de supprimer les objets instances de la classe qui doivent sortir du système.
Cela peut être : supprimer(), renvoyer(), ...
Les opérations de modification, de màj, ou de consultation d’un ou de plusieurs attributs sont aussi
généralement à considérer.
II.2. Association
Un lien est une connexion sémantique entre instances de classes. Dans le monde réel, les
informations sont hautement liées entre elles. A une phase d’analyse, il est important d’identifier les
liens pertinents pour le système étudié.
L’association est l’abstraction d’un ensemble de liens. Et un lien est une instance de l’association.
Représentation : UML représente une association par un trait plein qui lie les classes participantes.
Une association doit avoir un nom sous forme d’un verbe conjugué ou pas, en mode actif ou passif.
Il est important d’indique aussi le sens de lecture. UML représente ce sens de lecture par
Exemple
Une association reliant des classes possède une signification ou sémantique. Il peut exister plusieurs
associations de sémantiques différentes entre les mêmes classes
Exemple :
Un enseignant peut être en relation avec un binôme en tant qu’encadreur. Et un enseignant peut
aussi, en fin de semestre, être en relation avec un binôme en tant que jury.
Identifiant d’une association : Il n’est pas nécessaire d’indiquer clairement l’identifiant d’une
classe car il est évident. C’est la concaténation des identifiants des classes participantes.
Exemple : Pour l’association encadrer l’identifiant sera :
identifiant enseignant+identifiant binôme.
Classe association :
Une classe association est une classe porteuse d’attributs. Ces attributs ne sont propres à aucune
des classes participantes. Ce sont des attributs qui caractérisent et décrivent l’association. Ils sont
alors représentés dans l’association qui prendra alors la forme d’une classe.
Représentation : UML représente la classe association par un rectangle compartimenté portant le
nom de l’association (verbe) avec la liste de ses attributs. Ce rectangle est relié à l’association par
un trait en tirets.
Exemple
Arité = 1 : L’association est dite réflexive ; elle met une classe en relation avec elle-même. Au
niveau objet, elle se traduit par un lien entre instances différentes d’une même classe.
Exemple
Arité = 2 : L’association est dite binaire, elle met en relation exactement 02 classes. Dans un DCL
la plupart des associations sont binaires.
Arité = 3 : L’association est dite ternaire, elle met en relation 3 classes. Il est fréquent qu’elle soit
une classe association.
Exemple :
Remarques : Au-delà de 3, l’association est inacceptable. Il faut la remplacer par des associations
binaires et ternaires.
Exemple :
b/ Contrainte d’exclusion :
La contrainte d’exclusion entre deux associations exprime que l’existence d’une instance d’une
association exclut l’existence d’une instance de l’autre association entre les mêmes classes.
Exemple : Pour exprimer que l’enseignant qui encadre un binôme ne peut en aucun cas être
l’enseignant qui jugera le même binôme.
c/ Contrainte de tri : Cette contrainte impose de maintenir les liens instances de l’association en
état de tri. Il ne peuvent être manipulés ou consulté que triés.
Exemple :
Agrégation / Composition
a/ agrégation :
L’agrégation est une association qui permet de représenter un lien de type « ensemble » comprenant
des éléments. L’ensemble est appelé « agrégat » et l’élément est appelé « agrégé »
L’agrégation est une association qui relie une classe (agrégat) et 1 à n classes (agrégés).
Remarque : Les cycles de vies des objets agrégat et agrégés sont complètement indépendants dans
le système
b/ La composition :
La composition est une agrégation particulière dans laquelle une contrainte de durée de vie existe
entre la classe «composé» et la classe «composant » : la suppression de la classe composée dans le
système implique la suppression de la classe composant.
Spécialisation généralisation :
La spécialisation/généralisation permet d’identifier parmi les objets d’une classe générique, des
sous ensembles d’objet ayant des définitions spécifiques (classes spécialisées).
a/ Généralisation : création d’une nouvelle classe pour généraliser la définition des classes déjà
existantes. Cette nouvelle classe est la super classe ou classe mére.
La généralisation permet de mettre en facteur des descriptions communes (attributs, méthodes ou
attributs et méthodes)
b/ spécialisation : création de classes spécialisées pour mieux préciser ou spécifier le modèle. Ces
nouvelles classes sont les sous-classes ou classes filles.
La spécialisation permet de préciser de nouvelles caractéristiques propres à la sous-classe
Les attributs et opérations de la super classe sont transmis aux sous-classes par héritage.
Exemple :