Académique Documents
Professionnel Documents
Culture Documents
Diagramme de classe
S.Bouzidi-Zouaoui
INSAT
Objectif
1
24/02/2011
Diagramme de classes
C’est l’un des éléments majeurs de la modélisation:
Concept de classe + association pour décrire l’aspect statique des
données et des traitements,
Ce diagramme est défini par trois concepts importants:
L’objet (abstraction ou chose qui a un sens dans le contexte du
système),
La classe avec ses attributs et opérations:
L’attribut est qualifié par son nom, son type, sa valeur initiale, son
caractère multivalué ([]) et calculé (/).
L’opération est qualifiée par son nom, sa liste de paramètres et
son type de résultat.
Les associations entre classes: c’est une connexion physique ou
conceptuelle entre instances de classes.
Notation de base
Classe
Classe
Une description d’un
ensemble d’objets qui
partage les mêmes
attributs, opérations,
méthodes, relations et
contraintes Objet de type Classe
Objet
Une entité avec une limite
et une identité bien
définies. Un objet est une
instance d’une classe.
2
24/02/2011
Notions de base
Nom de la classe
Personne
Nom attribut: type = [valeur initiale]
-nom:chaîne
-prénom: chaîne
Nom opération(paramètres)[: typ résultat] -date naissance: date
+ GetNom()
+ GetDateNaissance()
Association
Exprime une connexion sémantique bi-directionnelle entre
classes
Le sens d ’une association peut-être précisé par une flèche
Association binaire = Association entre 2 classes. Cas
particulier d ’association n-aire
Rôle = rôle joué par une classe dans une association
Multiplicité = indique le nombre d’instances d ’une classe qui
peut être mise en relation avec une seule instance de la classe
associée
1 : obligatoire (1 et un seul)
0..1 : optionnel
0..* ou * : plusieurs
1..* : au moins 1
1..5, 10 : entre 1 et 5, ou 10
3
24/02/2011
Exemple Rôle
P e rs o n n e Nom E n tr e pr is e
- e m p lo y é e m p lo i e - e m p lo y e u r
Nom R a is o n S o c ia le
P ré n o m A c tiv ité
1 ..* 0 ..1
Sens
Classe
Multiplicité
Note
•Note = Commentaire placé sur un diagramme
C ommentaire sur
une asso ciatio n
P ersonne E ntreprise
C o mm enta ire
sur une classe
4
24/02/2011
Contrainte
Contrainte = relation sémantique entre éléments de modèle qui
spécifie des conditions ou propositions devant rester vraies pour que
le modèle soit valide
{ contrainte }
Contraintes Pré
Pré--Définies
Inclusion
membre 0..*
Personne Club
1..*
{subset]
1..1
président 0..*
Contrainte
Exclusion
titulaire Personne
0..* 1..1
Compte
{or}
titulaire Société
0..* 1..1
Contraintes
Ordre
Contrainte
5
24/02/2011
Attribut d’Association
N° de Contrat
Attribut
Attribut Note
Classe d’Association
Classe d’association = Elément ayant à la fois les propriétés
d ’une classe et d ’une association
Société
Personne
nom
nom travaille capital
age
0..* 0..* embaucher( )
prendre retraite( déposer bilan(
Contrat de Travail
date Convention Collective
salaire respecte - référence
1..* 1..1
augmenter( ) + renégocier( )
résilier( )
Classe
6
24/02/2011
Association n-aire
Association n-
n-aire = Une association parmi 3 classes ou plus.
Chaque instance de l’association est un n-tuple de valeurs des
classes respectives.
Salle
lieu 1
Cours
Professeur 1 Elève
1..*
Heure de début
Heure de fin
Association réflexive
L'association la plus utilisée
est l'association binaire
(reliant deux classes).
Parfois, les deux extrémités
de l'association pointent vers
la même classe. Dans ce cas,
l'association est dite réflexive
7
24/02/2011
Agrégation
Une agrégation est une forme
particulière d'association. Elle
représente la relation d'inclusion
d'un élément dans un ensemble.
On représente l'agrégation par
l'ajout d'un losange vide du côté de
l'agrégat.
Une agrégation dénote une relation
d'un ensemble à ses parties.
L'ensemble est l'agrégat et la partie
l'agrégé
Composition
8
24/02/2011
Agrégation ou composition?
La composition est aussi dite agrégation forte .
Pour décider de mettre une composition plutôt qu'une agrégation,
on doit se poser les questions suivantes :
Est-ce que la destruction de l'objet composite (du tout) implique
nécessairement la destruction des objets composants (les parties) ?
C'est le cas si les composants n'ont pas d'autonomie vis-à-vis des
composites.
Lorsque l'on copie le composite, doit-on aussi copier les composants, ou
est-ce qu'on peut les réutiliser , auquel cas un composant peut faire
partie de plusieurs composites ?
Si on répond par l'affirmative à ces deux questions, on doit utiliser
une composition.
Héritage
Généralisation = relation ente un élément plus général et un
élément plus spécifique qui est entièrement conforme avec le
premier élément, et qui ajoute de l ’information supplémentaire
Spécialisation = mécanisme par lequel des éléments plus
spécifiques incorporent la structure et le comportement
d’éléments plus généraux (notion d’héritage
d’héritage).
Avion Discriminant
Généralisation
A320
Spécialisation
Héritage multiple
9
24/02/2011
Terminologie de l'héritage
Une classe enfant peut redéfinir (même signature) une ou
plusieurs méthodes de la classe parent.
Toutes les associations de la classe parent s'appliquent, par
défaut, aux classes dérivées (classes enfant).
Principe de substitution : une instance d'une classe peut être
utilisée partout où une instance de sa classe parent est attendue.
Par exemple, toute opération acceptant un objet d'une classe Animal doit
accepter tout objet de la classe Chat (l'inverse n'est pas toujours vrai).
L’encapsulation
L'encapsulation est un principe de
conception consistant à protéger le coeur
d'un système des accès intempestifs
venant de l'extérieur. Fenetre
Caractéristiques de classes: + taille : Rectangle = 100,100
- visible : Boolean = true
Visibilité des attributs et couleur : Color = blue
opérations: # tailleMax : Rectangle
Public (+) # tailleMin : Rectangle
Protégé (#) /# tailleMoyenne : Rectangle
Privé (-)
+ afficher() : Position
+ cacher()
# setTaille(taille : Rectangle)
10
24/02/2011
Pour Structurer
Package Parent
Classes abstraites
Une méthode est dite abstraite lorsqu'on connaît son entête
mais pas la manière dont elle peut être réalisée.
Il appartient aux classes enfant de définir les méthodes
abstraites.
Une classe est dite abstraite lorsqu'elle définit au moins une
méthode abstraite ou lorsqu'une classe parent contient une
méthode abstraite non encore réalisée.
11
24/02/2011
Interface
Le rôle d'une interface est de regrouper un ensemble
d'opérations assurant un service cohérent offert par une classe
Une interface est définie comme une classe, avec les mêmes
compartiments. On ajoute le stéréotype interface avant le nom
de l'interface.
On utilise une relation de type réalisation entre une interface et
une classe qui l'implémente.
Les classes implémentant une interface doivent implémenter
toutes les opérations décrites dans l'interface
12
24/02/2011
Exemple d'interface
13
24/02/2011
Diagramme d’objets
Objectif
Le diagramme d'objets représente les objets d'un
système à un instant donné. Il permet de :
Illustrer le modèle de classes (en montrant un exemple
qui explique le modèle) ;
Préciser certains aspects du système (en mettant en
évidence des détails imperceptibles dans le diagramme
de classes) ;
Exprimer une exception (en modélisant des cas
particuliers, des connaissances non généralisables. . . ).
Le diagramme de classes modélise des règles et
le diagramme d'objets modélise des faits
14
24/02/2011
Diagramme de classes et
diagramme d'objets
15
24/02/2011
Diagramme de classes et
diagramme d'objets
Liens
Un lien est une instance d'une association.
Un lien se représente comme une association
mais s'il a un nom, il est souligné.
Attention
Naturellement, on ne représente pas les
multiplicités qui n'ont aucun sens au niveau
des objets
16
24/02/2011
17