M.E.D.A.L.
Licence Informatique 3ème année
Diagramme de classes
Module d’Enseignement à Distance
pour l’Architecture Logicielle
Diapositive n° 1
Université de NANTES
Alain VAILLY
AVERTISSEMENT
L’usage de ce document, sous quelque forme que ce soit (électronique,
papier…), à titre personnel ou devant des étudiants, est autorisé et libre de
droits, à la condition expresse qu’il soit conservé dans l’état (et notamment
qu’il comporte la page de garde et cet avertissement).
Tout autre usage, notamment commercial, toute diffusion via un serveur
informatique, une liste de diffusion… est soumis à l’accord PRÉALABLE
de son auteur.
Ce document constitue un TOUT. Toute coupe, toute modification non
autorisée par son auteur sera assimilée à une atteinte aux droits de l’auteur
et poursuivie comme telle devant les tribunaux.
Diapositive n° 2
Université de NANTES
Alain VAILLY
Projet ENRC
DVD MIAGE
Projet soutenu par le
Conseil Régional des Pays de La Loire
dans le cadre des projets ENRC 2007-2008
Thématique : Passerelles vers et dans l’enseignement supérieur
Diapositive n° 3
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Evaluation
Contexte
Etudes de cas
Diapositive n° 4
Cours magistral
Références
MEDAL
Auto-évaluation
Université de NANTES
Exercices
Corrigés
des
exercices
Alain VAILLY
M.E.D.A.L.
Cours magistral
- Introduction
- Analyse des besoins
- Analyse
- Conception
PLAN
1) Introduction
2) Approche pragmatique des classes
- Processus
3) Diagramme de classes
- Outils
4) Utilisation du diagramme de classes
5) Conclusion
- Conclusion
Diapositive n° 5
Université de NANTES
Alain VAILLY
M.E.D.A.L.
1) Introduction
Objets métiers
L’activité d’analyse construit la structure conceptuelle du
système en terme de classes. La fin de l’activité précédente,
celle d’analyse des besoins, se termine fréquemment par un
modèle du domaine (Domain Model). Ce dernier est bâti à
partir de classes.
Nous commençons donc ce chapitre par l’étude de ce type de
diagramme ; après avoir regardé comment l’on passe d’un
schéma E-A-P à un ensemble de classes, nous passons en
revue les différentes notions utilisables et terminons par une
discussion autour de l’usage que l’on peut (et que l’on doit)
faire de ce type de schémas.
Diapositive n° 6
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Nom de la
classe
Une classe est définie par un ensemble de caractéristiques
(attributs et opérations) optionnellement typés.
Attributs de la
classe
Opérations de la
classe
Les caractéristiques de la classe sont partagées par toutes les
instances de la classe.
Il y en a d’autres.
Diapositive n° 7
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Le passage d’un schéma E-A-P (entités-associationspropriétés) de type Merise se fait, pour l’essentiel,
simplement mais au prix de quelques « difficultés » :
- Il n’y a pas d’identifiant dans un diagramme de classes ;
- Les cardinalités sont positionnées à l’envers par rapport au
schéma d’origine ;
- Un schéma Merise ne contient que des informations ; la
partie opérations du diagramme de classes est donc non
concernée par cette traduction.
Diapositive n° 8
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
On peut y
remédier.
Ent_1
Personne
NumŽ
ro
Nom
PrŽ
nom usuel
Adresse
Code postal
Ville
TŽ
lŽ
phone
Date naissance
Lieu naissance
Le passage se fait sans perte d’information…sauf celle relative
au fait que le numéro sert d’identifiant.
Diapositive n° 9
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Un diagramme de classes est un réseau de classes, dans lequel
les nœuds correspondent aux classes et les arcs aux relations
existant entre ces classes.
Il y a (principalement) trois types de relations : association,
spécialisation et dépendance.
- L’association est une abstraction d’un ensemble de liens entre
objets ;
- La dépendance définit une causalité générale entre classes ;
- La spécialisation correspond à l’héritage.
Mais encore ?
Diapositive n° 10
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Ces relations sont
modélisées de la façon
suivante (dans l’ordre
d’apparition) :
- association « simple »
- association orientée
- agrégation
- composition
- spécialisation
- dépendance
- réalisation
Diapositive n° 11
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Lors de la traduction, les associations perdent… du « poids ».
Personne
NumŽ
r o_INSEE
Conduit
0,n
Voiture
0,n
Immatriculation
Nom
Marque
PrŽ
nom
Diapositive n° 12
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
sauf dans le cas d’associations n-aires (avec n > 2) :
Ceci a été ajouté « à la main », car non disponible
dans la palette graphique de l’outil utilisé.
Diapositive n° 13
Université de NANTES
Alain VAILLY
M.E.D.A.L.
On a là ce que l’on appelle
une classe-association.
2) Approche pragmatique des classes
ou des associations porteuses d’information(s) :
Personne
NumŽ
r o_INSEE
Conduit
0,n
Voiture
0,n
Date
Nom
Immatriculation
Marque
PrŽ
nom
Diapositive n° 14
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Personne
Conduit
1,n
Voiture
0,n
Les cardinalités sont inversées (comme dans toutes les
notations d’origine anglo-saxone).
Diapositive n° 15
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Le vocabulaire pour noter les cardinalités est (un peu) plus
riche que celui employé dans Merise :
1
0..1
N
M..N
*
0..*
1..*
Diapositive n° 16
un et un seul
zéro ou un (de zéro à un)
N (entier naturel)
de M à N (entiers naturels)
de zéro à plusieurs
de zéro à plusieurs
de un à plusieurs
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
L’inversion des cardinalités rend leur interprétation
particulièrement difficile dans le cas des associations n-aires.
1
Cela concerne quelle classe ?
Diapositive n° 17
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
De fait, UML privilégie les associations binaires, quitte à
transformer les classes-associations en classes :
Diapositive n° 18
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
Permis
Est d'un
0,n
NumŽ
r o permis
0,n
Ty pePermis
Type permis
LibellŽ
0,n
Voiture
Nb places assises
PossŽ
de un
Tracteur
Puissance
Charge utile
Nb points
0,n
Conduit une
0,n
tuteur
0,n
est parrain
Est responsable de
0,n
Personne
X
XT
0,n
apprenti
NumŽ
r o personne
Nom personne
0,1
PrŽ
nom personne
0,n
VŽ
hicule
Est propriŽ
t aire de
1,1
est f illeul
Immatriculation
Marque
Diapositive n° 19
Université de NANTES
Alain VAILLY
M.E.D.A.L.
2) Approche pragmatique des classes
0..1
0..*
Diapositive n° 20
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une classe se compose d’un ensemble d’attributs, d’un
ensemble d’opérations. Elle a un nom qui définit ce qu’elle est
et non ce qu’elle fait. Il est possible de lui ajouter un ensemble
d’exceptions et un ensemble de responsabilités.
<<stéréotype>>
Nom classe
Un stéréotype
(une sorte de
comportement
standard) peut lui
être accolé.
Attributs
Opérations
Exceptions
Responsabilités
Diapositive n° 21
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe officielle
3) Diagramme de classes
Les attributs sont notés comme ceci :
Visibilité Nom_attribut [ ‘[‘ Multiplicité ’]’ ’:’
Type_attribut [ ‘=‘ Valeur_initiale ] { ‘{‘ Propriété ‘}’} ]
Visibilité ::= ‘+’ | ‘-’ | ‘#’
Multiplicité ::= (Intervalle | Nombre) [ ‘,’ Multiplicité]
Intervalle ::= Limite_inférieure ‘..’ Limite_supérieure
Nombre ::= Entier_positif | ‘*’ (illimité)
Entier_positif : entier naturel
Type_attribut : spécification du
type de l’attribut
Valeur_initiale : expression qui définit la valeur initiale
d’un objet nouvellement créé
Propriété : une propriété et sa valeur
Diapositive n° 22
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
+ (valeur par défaut)
Un attribut ou une opération sera plus ou moins visible selon la
valeur donnée à la propriété Visibilité. UML définit trois niveaux
de visibilité :
-un attribut public est visible de tous les « clients » de la classe ;
- un attribut privé ne sera visible que de la classe ;
- un attribut protégé ne sera visible que de la classe et de ses
sous-classes.
-
Certains outils ajoutent un quatrième niveau, celui du package.
Un attribut ayant ce niveau de visibilité sera visible de toutes les
classes du package (paquetage en français).
#
Diapositive n° 23
c’est quoi un paquetage ?
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Les paquetages permettent de structurer les modèles et le
diagramme de classes en particulier. Chaque paquetage contient
un ou plusieurs diagrammes de classes. Il contient
éventuellement d’autres types de diagrammes.
Le découpage en paquetages correspond à une structuration
verticale des applications.
Diapositive n° 24
Université de NANTES
Alain VAILLY
M.E.D.A.L.
dépend
3) Diagramme de classes
Les participations entre paquetages sont modélisées grâce aux
relations de dépendance.
La gestion des contrats nécessite, implique, fait appel à la
gestion des auteurs signant les contrats.
Diapositive n° 25
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
On peut associer à cette relation de dépendance entre paquetages
deux stéréotypes :
-« importe » : les classes (et les autres éléments) du paquetage
de destination sont ajoutées à l’espace de nommage défini par le
paquetage source.
Les classes visibles du paquetage de droite sont accessibles aux
classes de gauche.
Diapositive n° 26
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
On peut associer à cette relation de dépendance entre paquetages
deux stéréotypes :
-« accède » : les classes (et les autres éléments) du paquetage de
destination peuvent être référencées par les classes du paquetage
source.
Les classes visibles du paquetage de droite sont référençables
par les classes de gauche. La dépendance « accède » n’est pas
transitive.
Diapositive n° 27
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
privée
Par défaut, tout est
public.
Diapositive n° 28
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Ces liaisons entre paquetages ne doivent pas être circulaires :
NB : ce schéma a pourtant été accepté par StarUML...
Diapositive n° 29
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il faut également éviter des dépendances circulaires transitives
comme celle ci-dessous :
Diapositive n° 30
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Revenons à la propriété de visibilité. Il est possible de définir la
visibilité d’une classe ou d’une association, comme le montre
l’exemple ci-après :
Par défaut, tout est
public.
privée
Diapositive n° 31
Nous reviendrons sur cet exemple.
Université de NANTES
Alain VAILLY
M.E.D.A.L.
attribut de classe
3) Diagramme de classes
Par défaut, la portée lexicale d’un attribut ou d’une opération est
celle de l’instance d’une classe.
Il est possible d’étendre
cette portée en définissant
des attributs et des
opérations de classe. Ceci
autorise toutes les
instances de la classe à
partager ces attributs et
opérations. Ces attributs
et opérations de classe
seront soulignés.
Diapositive n° 32
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Le type des attributs peut être une classe, un type primitif
(Entier, Chaîne...) ou une expression complexe dont la syntaxe
n’est pas précisée par UML (Tableau[x] de Points...).
La propriété associée aux attributs exprime les possibilités de
changements liés à ceux-ci, par le biais des valeurs suivantes :
: attribut non modifiable ;
- variable : propriété par défaut d’un attribut modifiable ;
- ajoutUniquement : seul l’ajout d’une valeur est possible (ne sert
que pour un attribut dont la multiplicité est supérieure à 1).
- gelé
Diapositive n° 33
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
{gelé}
Diapositive n° 34
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est possible, en UML, de définir des propriétés calculables.
Ce qui était complètement interdit dans un schéma entitésassociations-propriétés (E-A-P) de type Merise est autorisé
dans un diagramme de classes UML.
Il est conseillé de donner, dans une note, la formule de calcul.
Diapositive n° 35
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Ces propriétés calculables seront remplacées, lors de la
conception, par des opérations. Il est possible (ie. conseillé) de
le faire tout de suite si l’on peut.
Diapositive n° 36
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe officielle
3) Diagramme de classes
Les opérations sont notées comme ceci :
Visibilité Nom_opération ’(‘ [Arguments] ’)’ [ ’:’
Type_retourné { ‘{‘ Propriété ‘}’} ]
Visibilité ::= ‘+’ | ‘-’ | ‘#’
Arguments ::= Direction Nom_argument ‘:’ Type_argument
[‘=‘ Valeur_par_défaut] [‘,’ Arguments]
Direction ::= in | out | inout
Nom_argument : nom de l’argument
: spécification du type de l’argument
Valeur_par_défaut : valeur donnée par défaut à l’argument
Type_retourné : précise le type retourné par l’opération
Propriété : une propriété et sa valeur
Type_argument
Diapositive n° 37
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Parmi les propriétés qu’il est possible d’affecter à une
opération, on peut citer :
abstraite : l’opération est abstraite, c’est-à-dire qu’elle n’a pas
de corps. Elle n’est pas implémentée dans la classe.
estFeuille : l’opération ne peut pas être redéfinie dans une
sous-classe.
estRacine : l’opération est définie pour la première fois.
Diapositive n° 38
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est possible de stéréotyper les opérations, ce qui permet de
les ranger en fonction de leur effet :
Diapositive n° 39
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
? à la fin des opérations
de type Question
Attention, toutefois, aux noms de ces opérations :
stéréotypes ayant des
noms significatifs
Diapositive n° 40
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
abstraites
Diapositive n° 41
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est aussi possible de stéréotyper les attributs, ce qui peut
permettre de « régler » le problème, évoqué précédemment, de
la perte de l’information relative à la qualité d’identifiant d’un
attribut.
Personne
NumŽ
ro
Nom
PrŽ
nom
Adresse
Code postal
Ville
TŽ
lŽ
phone
Date naissance
Lieu naissance
Diapositive n° 42
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il y a plusieurs forme de classes :
- Une classe abstraite est une classe qui ne peut avoir
d’instances :
Nom en italique
Diapositive n° 43
Université de NANTES
À quoi ça sert ?
Alain VAILLY
M.E.D.A.L.
relation de
spécialisation
3) Diagramme de classes
Les classes abstraites sont souvent utilisées pour structurer un
graphe de spécialisation / généralisation.
Elles servent
à mieux
factoriser
attributs et
opérations.
Diapositive n° 44
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une classe abstraite peut posséder des attributs, des opérations.
Ses opérations ne sont pas forcément abstraites. Elles peuvent
donc avoir une implémentation (un corps, une méthode).
Une classe abstraite peut être impliquée dans des associations
avec d’autres classes, abstraites ou non. Elle peut être privée
ou protégée (comme elle peut être publique).
Une classe abstraite ne peut pas être une classe interface (car
elle a des attributs et elle est peut être impliquée dans des
associations). Une classe abstraite ne peut pas être réalisée.
Diapositive n° 45
Université de NANTES
Alain VAILLY
M.E.D.A.L.
relation de
dépendance
3) Diagramme de classes
- Une métaclasse est une classe dont les instances sont des
classes et non pas des objets.
Elle contiendra des attributs et des opérations qui
concernent la classe plutôt que les instances de la classe.
Diapositive n° 46
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
- Un interface est un moyen, pour une classe, de rendre visible
les opérations qu’elle propose, sans pour autant en révéler
l’implantation. Un interface correspond donc au comportement
visible de la classe. Il n’y a pas d’attribut dans un interface. Il
ne peut pas non plus être impliqué dans des associations.
syntaxe StarUML
(pas terrible !)
Diapositive n° 47
Université de NANTES
Alain VAILLY
M.E.D.A.L.
relation de
réalisation
3) Diagramme de classes
La classe qui réalise l’interface propose une implémentation
-une méthode- de tout ou partie des opérations de cet
interface.
La classe X réalise
une partie de
l’interface A et tout
l’interface B. Celuici est également
réalisé par la classe
Y (de façon
différente de la
classe X).
Diapositive n° 48
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Ce « service » proposé est décrit dans la partie opérations de
la classe « réalisatrice ». Il pourra être mis en oeuvre par
une ou plusieurs réalisations et utilisé par une ou plusieurs
classes :
Diapositive n° 49
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Les classes Banque et Assurance sont des interfaces (elles
offrent au « public » des opérations). Les classes Entreprise
et Client utilisent certaines de ces opérations. La classe
Banque propose en plus une implémentation de certaines
des opérations de Assurance.
Diapositive n° 50
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
- Une classe active est une classe qui met en oeuvre un ou
plusieurs flots de contrôle. Elle a son propre comportement
(celui-ci sera représenté par un ou plusieurs diagrammes
d’activités).
active
passive
Une classe active est une classe à part entière.
Diapositive n° 51
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
En général, un compartiment est ajouté à la classe, pour mettre
en évidence les événements émis ou signaux traités. On peut
aussi stéréotyper les opérations correspondantes.
événement
émis par la
classe
signal reçu
et traité par
la classe
Diapositive n° 52
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Les classes peuvent être reliées entre elles par des associations.
Celles-ci représentent une relation existant entre ces classes,
relation pouvant s’exprimer par un verbe, à la voix active ou
passive.
Un client passe une commande ; celle-ci comprend des articles.
Diapositive n° 53
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Ces associations sont binaires (recommandé par UML), en
boucle ou bien présentant une arité supérieure.
Diapositive n° 54
Université de NANTES
Alain VAILLY
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Les associations peuvent être nommées :
Ces noms n’étant pas toujours très parlants, il est possible d’en
renforcer l’expressivité en ajoutant le sens de lecture des noms.
sens de lecture
Diapositive n° 55
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est également possible de donner des noms aux rôles joués
par les classes dans l’association.
Ces noms peuvent être « cumulés », une même association
ayant un nom et deux rôles (pour une association binaire).
pas recommandé
Diapositive n° 56
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Outre le nom, un rôle peut être affublé de propriétés :
-ordonné : les objets de la classe qui sont impliqués dans
l’association sont rangés d’une certaine façon. Le ou les
critères de tri ne sont pas précisés.
- modification : cette propriété peut prendre trois valeurs,
variable (l’instance de la classe peut être modifiée), gelé
(l’instance n’est pas modifiable) ou ajoutUniquement (il est
possible d’ajouter des instances mais pas d’en retirer).
Diapositive n° 57
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Ces associations peuvent être porteuses d’informations, cellesci étant relatives (ie. ayant du sens par rapport) à l’ensemble
des classes participant à cette association.
Classe
association
Diapositive n° 58
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Bien qu’ayant l’apparence (?) d’une association, il s’agit bien
d’une classe, avec la possibilité d’avoir des attributs, des
opérations...
Une classe association n’est pas obligatoirement nommée. Elle
peut, par contre, avoir un nom. Seules les classes associations
qui ne participent pas à d’autres associations et qui ont des
attributs sont appelées associations attribuées. Elles n’ont
alors pas de nom.
Diapositive n° 59
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
association
attribuée
Diapositive n° 60
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une association n-aire ou une association binaire porteuse
d’informations (attributs) peuvent toujours être transformées
en un ensemble d’associations binaires.
Diapositive n° 61
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Contrairement au schéma E-A-P,
cette transformation est gratuite.
Il n’y a pas d’attribut à ajouter.
Ce n’est pas la même chose !
Diapositive n° 62
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est possible de « placer » plusieurs associations
différentes entre deux classes, à la condition expresse
qu’elles expriment des concepts structurels différents.
Il n’y aura pas multiples associations si ces lois
expriment simplement des messages transitant d’une
classe à l’autre.
Diapositive n° 63
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une association entre des classes correspond à une
structure statique. C’est également le support de la
collaboration entre les objets des classes.
Autrement dit, une association correspond à une sorte
de tuyau par lequel les messages vont passer.
asso
message 1
message 3
message 2
asso
message 2
message 3
message 1
Par une seule association, plusieurs messages passeront.
Diapositive n° 64
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Cette notion de tuyau est renforcée par celle de
navigabilité. Les associations peuvent être vues comme
des canaux de navigation entre les objets. Ces canaux
permettent de se déplacer dans le modèle.
Par défaut, les associations sont navigables dans les
deux directions. Il est possible de restreindre cette
navigabilité à une seule direction :
sens unique
Diapositive n° 65
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Toutes les instances de A ont un « accès » aux instances de B ;
toutes les instances de B ont un « accès » aux instances de A.
Toutes les instances de A ont un « accès » aux instances de B ;
aucune instance de B n’a « accès » aux instances de A.
Diapositive n° 66
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
La mise en place d’une association « à sens unique » aura des
conséquences sur la définition des différents diagrammes (de
séquences, de collaborations). Les envois de messages ne
pourront pas « emprunter les sens interdits ».
La mise en place d’une association à sens unique aura aussi des
conséquences sur l’implémentation, une classe pouvant ou pas
être vue d’une autre en fonction de la navigation.
B ne voit pas A.
Diapositive n° 67
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Chaque association comporte, en ses extrémités, un couple (le
plus souvent) de cardinalités. Celles-ci, nous n’avons déjà dit,
sont inversées par rapport à des schémas de type E-A-P.
Chaque instance de A est liée à une et une seule instance de B ;
chaque instance de B est liée à une ou plusieurs instances de A.
Diapositive n° 68
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
finance>
Comme dans le cas des attributs, il est possible de faire figurer
dans un diagramme de classes une association redondante.
Diapositive n° 69
L’association travaille_pour est
calculée, c’est-à-dire que c’est le
système informatique qui, à partir
des liaisons participe et finance,
calcule les liaisons travaille_pour.
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Plusieurs contraintes ensemblistes peuvent être placées entre
deux associations :
- {ou-exclusif} : une instance appartient à un ensemble ou à un
autre mais pas aux deux ;
- {sous-ensemble} : une instance qui appartient à un ensemble
appartient obligatoirement à l’autre ;
-... il y en a d’autres.
Ces contraintes sont (souvent) exprimées en OCL (Object
Constraint Language).
Diapositive n° 70
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
{sous-ensemble}
{ou-exclusif}
Diapositive n° 71
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
ATTENTION au placement de ces contraintes. Certaines
positions ont des significations différentes :
{ou-exclusif}
Cas A : exclusion entre les instances de B
participant à l’association « du haut » et celles
participant à l’association « du bas ».
Diapositive n° 72
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
{ou-exclusif}
Cas B : exclusion entre les couples d’instances de A
et de B participant à l’association « du haut » et
ceux qui participent à l’association « du bas ».
Diapositive n° 73
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
{ou-exclusif}
Cas C : exclusion entre les instances de A
participant à l’association « du haut » et ceux qui
participent à l’association « du bas ».
Diapositive n° 74
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est une autre façon de signaler qu’un attribut peut servir
d’identifiant au travers de la notion de qualification.
Une association qualifiée, selon P.A. MULLER, est même plus
adaptée à modéliser un identifiant qu’un attribut.
L’attribut qualificatif fait partie de la classe B !
Diapositive n° 75
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
La qualification (aussi appelée restriction) d’une association
consiste à sélectionner un sous-ensemble d’objets parmi ceux qui
participent à cette association. Elle est opérée à l’aide d’un
ensemble d’attributs utilisé conjointement avec un objet de la
classe source. La restriction réduit (...) le nombre d’instances qui
participent à une association.
(identifiant d’une partie des instances de la classe)
Diapositive n° 76
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 77
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 78
Université de NANTES
Alain VAILLY
M.E.D.A.L.
ensemble des instances de B qui
3) Diagramme de classes
participent à l’association et qui ont
une valeur de clé donnée
L’instanciation d’une association qualifiée définit le nom des
objets source et destination et la valeur du qualificatif. Chaque
instance de la classe A, accompagnée de la valeur du qualificatif,
identifie un sous-ensemble des instances de la classe B qui
participent à l’association.
ensemble des
ensemble des
instances de B qui
instances de B
participent à
l’association
Diapositive n° 79
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
L’agrégation est une relation dans laquelle une des classes joue
un rôle prépondérant. Elle est transitive, non symétrique et
réflexive.
0..2
La disparition des parents n’entraîne pas obligatoirement celle
des enfants.
Diapositive n° 80
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une promotion
comprend plusieurs
groupes ; un groupe est
constitué de plusieurs
étudiants.
Diapositive n° 81
2..*
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
La composition est une relation mettant en oeuvre un couplage
encore plus fort que l’agrégation. Elle est transitive, non
symétrique et non réflexive.
Les composants font partie du composite. Ils ne sont pas
partagés. Les cardinalités du côté du composite sont
obligatoirement 1. La disparition du composition entraîne
nécessairement celle des composants.
Diapositive n° 82
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Un bâtiment
comprend plusieurs
étages. Un étage est
constitué de
plusieurs salles.
La destruction du bâtiment entraîne celle des étages et, par
« ricochet », celle des salles.
Diapositive n° 83
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 84
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il ne peut y avoir qu’une seule décoration de type
agrégation ou composition par association. Les cardinalités
liées à la composition sont obligatoirement de 1 (1..1) du
côté du composite.
Diapositive n° 85
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Les relations de spécialisation / généralisation
permettent de faire de la classification. Les classes sont
structurées de façon à permettre la mise en facteur des
attributs ou des opérations.
Ces relations créent une hiérarchie entre les classes, des
plus concrètes aux plus abstraites.
Généralisation et spécialisation sont deux points de vue
antagonistes de cette hiérarchisation.
Diapositive n° 86
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
spécialisation
généralisation
Diapositive n° 87
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
La mise en place de cette hiérarchie n’est pas une opération
simple. Une bonne classification est stable et extensible. Le
critère de classification doit être permanent.
Il n’y a pas une mais des classifications, en fonction des
usages. À un usage donné correspondra une classification.
Les classifications doivent conduire à des niveaux
d’abstraction équilibrés.
Diapositive n° 88
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Un moniteur deviendra
un jour professeur.
3) Diagramme de classes
La généralisation
n’est pas adaptée
pour représenter la
mutabilité.
Une chenille
deviendra un jour
chrysalide ; une
chrysalide deviendra
un jour imago.
Diapositive n° 89
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 90
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 91
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une chenille n’est
pas une chrysalide.
Une chrysalide n’est
pas une chenille.
Il est possible de placer des
contraintes sur des relations
de type spécialisation /
généralisation :
{disjoint}
- {disjoint} : les objets de la
« branche » de gauche sont
distincts de ceux de la
branche de droite.
Diapositive n° 92
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il n’y a pas de statut
qui ne soit ni moniteur,
ni professeur.
Il est possible de placer des
contraintes sur des relations de type
spécialisation / généralisation :
- {complet} : tous les objets de la surclasse sont impliqués dans la relation
de généralisation / spécialisation.
{complet}
Diapositive n° 93
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est possible de placer des
contraintes sur des
relations de type
spécialisation /
généralisation :
{incomplet}
Il y a d’autre(s)
stade(s) que chenille
et chrysalide.
Diapositive n° 94
- {incomplet} : certains
objets de la sur-classe ne
sont pas impliqués dans la
relation de généralisation /
spécialisation.
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Attributs et opérations peuvent se transmettre d’une classe à
une autre, dès l’instant ou un lien de spécialisation /
généralisation les unit.
Un professeur a aussi un
nom et un prénom qu’il
reçoit en héritage de la
classe Personne.
Un moniteur a aussi un
nom et un prénom qu’il
reçoit en héritage de la
classe Personne.
Diapositive n° 95
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Un professeur peut
ouvrir un compte,
opération qu’il reçoit
en héritage de la
classe Personne.
Un moniteur peut aussi
ouvrir un compte,
opération qu’il reçoit en
héritage de la classe
Personne.
Diapositive n° 96
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Une opération peut, elle aussi, être redéfinie dans différentes
sous-classes (de façon différente). Il y a alors surcharge.
Une personne travaille.
Un professeur travaille
en lisant ses notes
durant les cours.
Un étudiant travaille en prenant
des notes durant les cours.
Diapositive n° 97
Université de NANTES
Alain VAILLY
M.E.D.A.L.
source P.A. MULLER
Diapositive n° 98
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Il est bien entendu
possible de
combiner les deux
types de relations
précédentes :
Un composé contient un ou
plusieurs composants. Un
composé est lui-même un
composant (il entre donc dans
la composition d’un autre
composé).
Diapositive n° 99
Un composant est contenu
dans un seul composé. Il
peut ne pas l’être (c’est le
composé racine).
Université de NANTES
Alain VAILLY
M.E.D.A.L.
3) Diagramme de classes
Diapositive n° 100
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
important !
Si, durant la phase d’analyse des besoins, les cas d’utilisation
étaient au coeur de l’activité de modélisation, durant la phase
d’analyse c’est le diagramme de classes qui est l’objet de toutes
les attentions.
Il n’y a pas un seul diagramme mais plusieurs, patiemment
constitués, au fur et à mesure que l’existant, les problèmes
posés et la solution sont étudiés.
Chacun des diagrammes produits (diagramme de séquences,
diagramme de collaboration... ) sera cohérent avec le diagramme
de classe et contribuera à l’enrichir.
Diapositive n° 101
Université de NANTES
Alain VAILLY
M.E.D.A.L.
dC : diagramme de classes
4) Utilisation du diagramme de classes
dCol : diagramme de
collaborations
dC1
dS1
dCol1
dET : diagramme
états-transitions
Diapositive n° 102
dET1
dS : diagramme de séquences
Université de NANTES
Alain VAILLY
M.E.D.A.L.
dC : diagramme de classes
4) Utilisation du diagramme de classes
dCol : diagramme de
collaborations
dC2
dC1
dS2
dS1
dCol2
dCol1
dET : diagramme
états-transitions
Diapositive n° 103
dET1
dS : diagramme de séquences
Université de NANTES
Alain VAILLY
M.E.D.A.L.
dC : diagramme de classes
4) Utilisation du diagramme de classes
dCol : diagramme de
collaborations
dS4
dC3
dS3
dC2
dCol3
dC1
dS2
dS1
dCol2
dCol1
dET2
dET : diagramme
états-transitions
Diapositive n° 104
dET1
dS : diagramme de séquences
Université de NANTES
Alain VAILLY
M.E.D.A.L.
objets
métiers
4) Utilisation du diagramme de classes
Le point de départ de cette série de diagrammes
de classes est le Domain Model, le modèle métier.
Celui-ci est créé en fin d’analyse des besoins et
sert essentiellement à définir les concepts
manipulés. Il s’agit, peu ou prou, d’un schéma de
type E-A-P avec presque exclusivement des
attributs.
Diapositive n° 105
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Ce premier diagramme sera ensuite retouché, pour prendre en
compte :
- le typage des attributs,
- les différentes opérations,
- des classes plus techniques résultant de la mise en oeuvre de
principes de modélisation,
- un effort de rationalisation des concepts.
NB : tout cela se situe, rappelons-le, au niveau de l’analyse. Il
n’est pas question ici d’incorporer au diagramme des classes
comme les utilitaires.
Diapositive n° 106
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Nous préconisons l’application de quelques principes simples :
1) tout ce qui concerne un concept et qui apparaît dans
un diagramme de collaborations ou de séquences fait
partie de la classe correspondante du diagramme de
classes.
 toutes les classes citées dans le diagramme de
collaborations sont décrites dans le diagramme de classes.
 toutes les classes citées dans le diagramme de séquences
sont décrites dans le diagramme de classes.
Diapositive n° 107
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Nous préconisons l’application de quelques principes simples :
1)
2) À chaque fois qu’il faut gérer une instance d’une classe
A (qu’il s’agisse d’un ajout, d’un test d’existence,
d’une suppression), ne sachant pas si l’environnement
de développement qui sera mis en place autorisera la
notion de métaclasse, nous préconisons la création
d’une classe spécifique à une seule instance, appelée
EnsDeA.
Diapositive n° 108
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
EnsDePermis
EnsDePersonnes
EnsDeConduites
Diapositive n° 109
Université de NANTES
EnsDeVoitures
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Cette classe EnsDeXX a un unique objet (rôle), celui de gérer
l’ensemble des occurrences de XX. Elle est dotée d’un attribut
(virtuel) listeDeXX, d’opérations standard de création, de
suppression... Elle est liée à XX par une relation d’agrégation.
Cette classe EnsDeXX, comme toutes ses « soeurs », fait partie
du diagramme de classes.
Diapositive n° 110
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Diapositive n° 111
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
MVC, quezacko ??
Nous préconisons l’application de quelques principes simples :
1)
2)
3) En application (partielle) des principes préconisés par
le modèle MVC (Modèle - Vue - Contrôleur), et
souhaitant mettre en place un contrôle centralisé, nous
associons à chaque requête XXX faite au système une
classe spéciale (que nous nommons F.GestionDeXXX)
qui va mettre en oeuvre les traitements nécessaires à la
satisfaction de la requête XXX.
Diapositive n° 112
Université de NANTES
Alain VAILLY
M.E.D.A.L.
V
4) Utilisation du diagramme de classes
M
C
Le modèle MVC a été mis au point en 1979, par T.
REENSKAUG, chez XEROX, lorsqu’il travaillait sur le
langage objet Smalltalk.
Ce modèle impose la séparation entre les données (le Modèle),
les traitements (le Contrôleur) et la présentation (la Vue).
La partie M représente le comportement de l’application. Elle
décrit les données manipulées par cette application et définit
les méthodes d’accès.
Diapositive n° 113
Université de NANTES
Alain VAILLY
M.E.D.A.L.
V
4) Utilisation du diagramme de classes
M
C
La partie V correspond à l’interface avec laquelle
l’utilisateur interagit. La vue n’effectue aucun
traitement, elle se contente d’afficher les traitements
effectués par le modèle.
La partie C prend en charge la synchronisation des
événements. Elle n’effectue aucun traitement, ne
modifie aucune donnée. Elle analyse la demande et
appelle le modèle adéquat.
Diapositive n° 114
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Diapositive n° 115
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
A concerne les XX
traitement permettant de satisfaire la requête A
(voir le chapitre concernant le diagramme de séquences)
Diapositive n° 116
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Cette fenêtre de contrôle est une classe.
Elle est très souvent (la plupart du
temps) active, c’est-à-dire qu’elle
a un comportement que l’on peut
décrire (un diagramme d’activités
lui est donc souvent associé).
classe active, selon
la notation
StarUML
Diapositive n° 117
Cette classe F.GestionDeXX,
comme toutes ses « soeurs »,
fait partie du diagramme de
classes.
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Ces classes « spéciales » (ie. les ensembles et les
contrôleurs) peuvent être regroupées dans un
paquetage dédié. Elles sont aussi factorisables.
Diapositive n° 118
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Ces classes « spéciales » (ie. les ensembles et les
contrôleurs) peuvent être regroupées dans un
paquetage dédié. Elles sont aussi factorisables.
Diapositive n° 119
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
<<abstract>>
Ensem ble d'instances
instances
Instance
+ ajouter()
+ existe()
Ens. Cassettes
Ens. Genres
Ens. Films
Ens. Boutiques
+ recherche_film()
+ existe_boutiq()
Ens. AdhŽ
rents
+ liste_films()
Ens. Statistiques
+ untitled()
+ nouvel _adhŽ
rent()
+ untitled()
Diapositive n° 120
+ statistiques()
Ens. Emprunts
Université de NANTES
Em prunt
instances
(from MŽ
tier)
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Le typage des attributs est un
travail minutieux, long...
mais simple à faire. Sans
doute une des dernières
retouches à apporter au
diagramme de classes.
Diapositive n° 121
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Les opérations proviennent pour l’essentiel des cas d’utilisation (ça,
c’est l’amorce) et des schémas suivants (diagrammes de
séquences et diagrammes de collaborations).
Tout message reçu déclenche l’exécution d’une opération
appartenant au receveur du message.
Diapositive n° 122
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Diapositive n° 123
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Les messages passant d’une classe à
l’autre empruntent les tuyaux (les
associations) existant entre elles.
Diapositive n° 124
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Ces opérations seront, elles aussi, typées et
leurs paramètres précisés.
Diapositive n° 125
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
Une des dernières retouches apportées au diagramme de
classes vise à préparer la réutilisation de concepts dans
une future application.
Il s’agit là de rationaliser les notations, de tenter une
généralisation, éventuellement d’ajouter une ou deux
opérations... bref de préparer l’émergence de composants
logiciels bien conçus.
Diapositive n° 126
Université de NANTES
Alain VAILLY
M.E.D.A.L.
4) Utilisation du diagramme de classes
-
uniformiser les notations,
regrouper les classes proches,
introduire une hiérarchie de classes,
offrir des services complets, tant au niveau des constructeurs
qu’à celui des observateurs,
...
... ne pas hésiter non plus à décrire formellement les
contraintes, avec OCL
Diapositive n° 127
Université de NANTES
Alain VAILLY
M.E.D.A.L.
5) Conclusion
Le diagramme de classes est le fondement du niveau logique
auquel appartient cette phase d’analyse. Il s’agit de
construire la structure conceptuelle du système en
termes de classes.
Chaque scénario est développé pour faire apparaître cette
structure. Pour cela, on va spécialiser les objets en
objets d’interface, reliés aux acteurs, objets de contrôle
qui pilotent une activité et objets métier, qui détiennent
les informations. Cette spécialisation se dénote via les
stéréotypes.
Diapositive n° 128
Université de NANTES
Alain VAILLY
M.E.D.A.L.
5) Conclusion
Il n’y a pas un diagramme de classes mais plusieurs, chacun étant
une évolution du précédent et une ébauche du suivant.
Ce diagramme de classes est cohérent avec les autres
diagrammes (de séquences, de collaborations...). Il est en
permanence mis à jour lors du déroulement de la phase
d’analyse, diagramme après diagramme.
Cette exigence rend quasiment obligatoire le recours à un outil
logiciel d’aide à la spécification... même si celui-ci peut, de
temps en temps, présenter quelques lacunes.
Diapositive n° 129
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Bibliographie (sommaire)
la référence :-)
P. ANDRE, A. VAILLY,
« Spécifications des logiciels ;
Deux exemples de pratiques
récentes : Z et UML »,
Editions Ellipses, juillet 2001,
ISBN 2-7298-0774-8
Qoéc
sd
uic
ntokre
mp
Tquis
ime
re s™
ps eur
our
et un
TIF
vis io
F nner
(no n ccette
om prima
es sge
é ).
Pour compléter la
formation... ;-)))
Diapositive n° 130
P-A. MULLER, N. GAERTNER,
« Modélisation objet avec UML »,
Editions EYROLLES, 2003,
ISBN 2-212-11397-8
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Webographie (sommaire)
S’il n’y avait qu’un seul site Internet à consulter régulièrement…
QuickTime™ et un
décompresseur TIFF (non compressé)
sont requis pour visionner cette image.
Diapositive n° 131
http://conception.developpez.com/
Université de NANTES
Alain VAILLY
M.E.D.A.L.
Fin
Diapositive n° 132
Université de NANTES
Alain VAILLY
Descargar

M.E.D.A.L.