Vous êtes sur la page 1sur 6

Chapitre 3 

: Diagramme de la vue structurelle


Diagramme de classe DCL

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. Concepts de base :


Le DCL est un diagramme essentiel dans la définition de tout système informatique quelque soit sa
taille. Il représente la structure statique en terme d’entité et d’information concernées par le
fonctionnement du futur système. UML définit un ensemble de concept entrant dans la construction
de ce diagramme.

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 :

UML représente une classe par un rectangle compartimenté.


 Un premier compartiment contient le nom de la classe. Ce
dernier doit être un nom et non un verbe. Il exprime ce
qu’est la classe et non ce qu’elle fait.
 Il doit être unique dans un DCL

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

L’attribut peut être définit dans une classe UML :


[visibilité] nom-attribut [multiplicité] [ : type] [= valeur initiale] [{Proprièté}]
La multiplicité permet de définir un attribut composé d’un nombre de valeur (tableau)
Le type peut être entier, réel, caractère ou date...
La propriété peut être constante, variable, incrémental, décrémental...

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.

Règle de non redondance :


Une information élémentaire d’un domaine : attribut ne peut être définie qu’à un seul endroit du
DCL de ce domaine.
Il faut éviter la redéfinition par répétition en identifiant correctement chaque attribut propre à sa
classe. Il faut bien reconnaître les attributs d’association.

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é d’une association


On appelle arité d’une association le nombre de classes qui y participent.

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.

Multiplicité ou cardinalité d’une association


La cardinalité dans une association est une information portée à chaque extrémité, elle indique pour
chaque côté le nombre d’instances de classes participantes dans l’association.
Elle indique pour UN objet instance de la classe origine, combien d’objets instances de la classe
cibles lui seront associés dans cette association.
Le domaine de valeurs représentant la multiplicité peut être de différentes formes :
- un intervalle fermé : 2..10 ou 1..5
- des valeurs bien définies : 2, 5, 4
- Une valeur indéterminée noté * : 1..* ou 0..*
- La multiplicité traduit un choix de gestion. En générale elle prend deux nombres : la
cardinalité minimum requise et la cardinalité maximum autorisée.
Exemple :

Rôle d’une classe :


Le rôle exprime la fonction d’une classe dans une association, il exprime aussi comment une classe
considère la classe en face dans une association.

Exemple :

Contraintes sur les associations :


a/ Contrainte d’inclusion :
La contrainte d’inclusion entre deux association stipule que l’existence d’un lien instance n’est
parmi que si une instance de l’autre association existe déjà.
Exemple : Pour exprimer qu’un étudiant ne peut être délégué d’un groupe que s’il fait partie de ce
groupe, nous représentons :

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 :