1. Analyse et Conception avec UML
Les diagrammes
de classes
blay@unice.fr
www.polytech.unice.fr/~blay
IUT Nice-Sophia Antipolis
Septembre 2010
Site web du module :
http://anubis.polytech.unice.fr/iut/
1
jeudi 23 septembre 2010
2. Séquences aux classes. Relations
Modélisation structurelle
Les classes et les objets modélisent les objets matériels ou
immatériels qui existent dans le système que l’on essaie de décrire
Les relations entre les classes et les objets établissent les
connexions entre les divers éléments de modélisation et montrent
l'agencement architectural
Le diagramme de classes et le diagramme d’objets sont les pièces
maîtresses de la vue structurale
– Dans UML, ils sont répertoriés comme des diagrammes
montrant la structure "statique"
– Le diagramme d’objets est un exemple du diagramme de classes
– Le diagramme d’objets donne une photographie du système
dans le temps
09/10 2
jeudi 23 septembre 2010
3. Des diagrammes
de séquence
aux diagrammes
de Classes
3
jeudi 23 septembre 2010
4. Séquences aux classes. Relations
Des Diagramme de Séquence aux
classes
Classe Relations?
Classe
Classe
09/10 4
jeudi 23 septembre 2010
5. Séquences aux classes. Relations
Classes
Une classe est une collection (modèle) d’objets avec une
structure commune, un comportement commun, des relations
identiques et une sémantique identique
On identifie les classes en examinant les objets dans les
diagrammes
La représentation graphique d’une classe consiste en un
rectangle avec 3 compartiments
Les noms des classes devraient être choisis dans le
vocabulaire du domaine
– il est bon d’établir des standards pour les nom
– i.e., toutes les classes sont des noms communs commençant par
une majuscule
09/10 5
jeudi 23 septembre 2010
7. Séquences aux classes. Relations
Opération
Le comportement d’une
classe est constitué de
ses opérations
On identifie les
opérations en
examinant les
diagrammes
d’interactions
09/10 7
jeudi 23 septembre 2010
8. Séquences aux classes. Relations
Attributs
La structure d’une classe est donnée par ses attributs
Les attributs sont identifiés en examinant les définitions des
classes, les besoins du problème et en faisant intervenir la
connaissance du domaine
Cours
numéro
Chaque offre de cours lieu
Possède un numéro, date
un lieu et une date
09/10 8
jeudi 23 septembre 2010
9. Séquences aux classes. Relations
Attributs
Comment trouver les attributs ?
Informations pertinentes du domaine d’application
Comment placer les attributs ?
Dans la classe qui modélise l’objet du monde réel
que décrit l’attribut
Une seule valeur par instance de la classe
Un seul endroit pour chaque attribut dans le
diagramme de classe
Eviter les types non primitifs
09/10 9
jeudi 23 septembre 2010
10. Séquences aux classes. Relations
Attributs dérivés
Attributs dont la valeur peut être déduite
d’autres éléments du modèle
e.g. âge si l ’on connaît la date de naissance
notation : /age
09/10 10
jeudi 23 septembre 2010
11. Séquences aux classes. Relations
Notations UML pour classes et
objets
09/10 11
jeudi 23 septembre 2010
12. Séquences aux classes. Relations
Relations
On identifie les relations en examinant les diagrammes
d’interaction
Si deux objets doivent communiquer, il doit exister un
chemin entre eux
09/10 12
jeudi 23 septembre 2010
13. Relations entre
classes
«Relations»,
associations,
agrégation,
généralisation,
compléments
13
jeudi 23 septembre 2010
14. Séquences aux classes. Relations
Relations
Les relations fournissent un chemin de communication entre
objets
Les diagrammes de séquence sont parcourus pour déterminer
quels liens doivent exister pour obtenir le comportement
souhaité – si deux objets ont besoin de se parler, il doit
exister un lien entre eux
Trois types de relations :
Association
Agrégation
Dépendance
Une contrainte :
Une relation est un lien stable entre deux objets
09/10 14
jeudi 23 septembre 2010
16. Séquences aux classes. Relations
Multiplicité : exemple
possède
1..* 0..* Voiture
Personne
gouverne
1 1
Président Pays
Nœud *
* Un réseau informatique est composé de
nœuds inter-connectés
Association réflexive
09/10 16
jeudi 23 septembre 2010
17. Séquences aux classes. Relations
Multiplicité
La multiplicité est définie par le nombre d’objets qui
participent à une relation
La multiplicité est le nombre d’instances d’une classe
reliées à UNE instance d’une autre classe
Pour chaque association et agrégation, il y a deux
multiplicités : une à chaque bout de la relation
1 Un et un seul
0 .. 1 Zéro ou un
n n (entier naturel)
m .. n De m à n (entiers naturels)
∗ De zéro à plusieurs
0 .. ∗ De zéro à plusieurs
09/10 17
jeudi 23 septembre 2010
18. Séquences aux classes. Relations
Multiplicité d'une relation
1
Classe Exactement une
*
Classe Plusieurs (0 à n)
0,1
Classe Optionnelle (0 ou 1)
1,2,4
Classe Cardinalité spécifiée
1-10
Classe Intervalle
09/10 18
jeudi 23 septembre 2010
19. Séquences aux classes. Relations
Relations
Une association est une connexion bi-directionnelle entre
classes
– Une association est représentée par une ligne connectant les
classes
Une agrégation est une relation plus forte et s’établit
entre un tout et ses parties
– Une agrégation est représentée par une ligne connectant les
classes avec un losange du côté de la classe représentant le
tout
Une dépendance est une relation faible établie entre un
client et un fournisseur et où le client n’a pas de
connaissance sémantique sur le fournisseur
– Une dépendance est représentée par une flèche en pointillés
allant du client au fournisseur
09/10 19
jeudi 23 septembre 2010
20. Séquences aux classes. Relations Association
Associations
Les associations peuvent indiquer la navigation avec
une pointe de flèche ouverte:
Pas de flèche => bidirectionnelle
La plupart des associations sont
unidirectionnelles en fin de conception.
Les associations peuvent avoir des étiquettes:
Il s'agit du nom de l'association.
Les associations peuvent avoir des noms de rôle:
un nom de rôle identifie le rôle ou la
responsabilité de l'objet dans l'association.
Les associations peuvent indiquer une multiplicité.
09/10 20
jeudi 23 septembre 2010
21. Séquences aux classes.
Diagramme de Classes- Relations Relations Association
Navigation
Bien que les associations soit bi-directionnelles
par défaut, il peut être bon de limiter la
navigation à un seul sens
Les objets de Classe2 sont accessibles à partir de
ceux de Classe1 et vice-versa
Classe1 Classe2
Si la navigation est restreinte, une flèche indique
le sens de navigation
Les objets de la Classe 1 sont accessibles à la
classe 2
Classe1 Classe2
09/10 21
jeudi 23 septembre 2010
22. Séquences aux classes. Relations Association
Nommage des associations
• Une association peut être nommée afin de faciliter la
compréhension des modèles. Dans ce cas le nom est indiqué
au milieu du lien symbolisant l’association
nom
A B
• L’usage recommande de choisir comme nom d’une
association une forme verbale active (exemple : travaille
pour) ou passive (exemple : est employé par)
travaille pour
Personne Société
est employé par
Personne Société
09/10 22
jeudi 23 septembre 2010
23. Séquences aux classes. Relations Association
Rôles des extrémités d’association
On peut attribuer à une extrémité d’une association un nom
appelé rôle qui décrit comment une classe source voit une
classe destination au travers de l’association
Le rôle est placé près de la fin de l’association et à côté de la
classe à laquelle il est appliqué
L’utilisation des rôles est optionnelle
Représentation et exemple
A B
rôle de B
employeur Emploie>
Société Personne
employé
09/10 23
jeudi 23 septembre 2010
24. Séquences aux classes. Relations Association
Nommage des associations…
Par défaut le sens de lecture du nom d’une
association est de gauche à droite
Dans le cas où la lecture du nom est ambiguë, on
peut ajouter l’un des signes < ou > pour indiquer
le sens de lecture
• Exemples
< travaille pour
Société Personne
Personne 1
*
< est père de
09/10 24
jeudi 23 septembre 2010
25. Séquences aux classes. Relations Association
Cas particuliers de relations
Relations réflexives
encadre
chef
1
Personne sous-fifre
1..*
Une relation réflexive lie
des objets de même classe
09/10 25
jeudi 23 septembre 2010
26. Séquences aux classes. Relations Agrégation
Composition et Agrégation
Cas particuliers de relations :
– Notion de tout et parties
1 transporte passager
Voiture Personne
moyen_de_transport *
1 1
Composition roulement >
Roue
4,6
structure > 1
Agrégation Chassis
09/10 26
jeudi 23 septembre 2010
27. Séquences aux classes. Relations Agrégation
Agrégation
L’agrégation représente une association de type
ensemble/élément
L’agrégation ne concerne qu’un seul rôle d’une
association
Représentation
L’agrégation permet de modéliser une contrainte
d’intégrité et de désigner l’agrégat comme gérant de cette
contrainte
09/10 27
jeudi 23 septembre 2010
28. Séquences aux classes. Relations Agrégation
Agrégation…
Exemple 1
– Une personne est dans une foule
– Une foule contient plusieurs personnes
* Personne
Foule
Contient >
Exemple 2 (Agrégation partagée)
– Une personne fait partie de plusieurs équipes
– Une équipe contient plusieurs personnes
* * Personne
Équipe
< membre
09/10 28
jeudi 23 septembre 2010
29. Séquences aux classes. Relations Agrégation
Composition
La composition est une agrégation forte (agrégation par
valeur).
Les cycles de vies des éléments (les "composants") et de
l'agrégat sont liés : si l'agrégat est détruit (ou copié), ses
composants le sont aussi.
A un même moment, une instance de composant ne peut
être liée qu'à un seul agrégat.
Les "objets composites" sont des instances de classes
composées.
Attention
un Point de vue
09/10 29
jeudi 23 septembre 2010
30. Séquences aux classes. Relations Agrégation
Exemple de classe structurée
On voit clairement que le PC est composé
d’instances de USBCard, Motherboard, and
GraphicsCard
Part
09/10 30
jeudi 23 septembre 2010
31. Séquences aux classes. Relations Généralisation
Généralisation
C’est une relation de classification entre un élément général et un élément
plus spécifique
L’élément le plus spécifique est cohérent avec l’élément le plus général et
contient plus d’informations
Exemple
Véhicule
Voiture Bus Camion
09/10 31
jeudi 23 septembre 2010
32. Séquences aux classes. Relations Généralisation
Généralisation
Extension par l’ajout d’attributs et d’opérations
09/10 32
jeudi 23 septembre 2010
33. Séquences aux classes. Relations
Héritage des relations
Les relations sont héritées par les sous classes :
VEHICULE motorisation MOTEUR
1..2
VOITURE CAMION
lien logique
REPERTOIRE FICHIER
1..* *
DRIVER FICHIER_TEXTE FICHIER_BINAIRE
09/10 33
jeudi 23 septembre 2010
34. Séquences aux classes. Relations Raffinements
Association ordonnée
Contraintes sur les associations pour exprimer que les objets sont
ordonnés (selon la clé, le nom, la date, etc.)
Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté
de la classe dont les instances sont ordonnés
Entreprise 0..* 0..* Produits
{Ordonné}
Le modèle ne spécifie pas comment les objets sont ordonnés
Pour décrire comment les objets sont ordonnés on utilise un
commentaire en employant la notation graphique suivante :
Ordonné
par ...
09/10 34
jeudi 23 septembre 2010
35. Séquences aux classes. Relations Raffinements
Association « ou-exclusif »
Contrat *
d’assurance Un contrat d’assurance concerne une
entreprise ou une personne mais pas
*
{XOR} les deux en même temps
1 1
Personne Entreprise
09/10 35
jeudi 23 septembre 2010
36. Séquences aux classes. Relations Raffinements
Association « sous-ensemble »
C’est une contrainte qui indique qu’une collection
est incluse dans une autre collection
La contrainte est placée à proximité d’une
relation de dépendance entre deux associations
La flèche de la relation de dépendance indique le
sens de la contrainte
Exemple
1..* Membre de > 1
Politicien {Sous-ensemble} Partie politique
1 Chef de > 1
09/10 36
jeudi 23 septembre 2010
37. Séquences aux classes. Relations Raffinements
Association Qualifiée
Utilisée avec une relation de multiplicité *.
Permet de trier la relation en fonction des valeurs
d’un attribut.
Qualifier
09/10 37
jeudi 23 septembre 2010
38. Séquences aux classes. Relations Raffinements
Association Qualifiée
09/10 38
jeudi 23 septembre 2010
39. Séquences aux classes. Relations Raffinements
Classe d’association
Il est possible de représenter une association par
une classe pour ajouter par exemple des attributs
ou des opérations dans l ’association
La classe attachée à l’association est appelée une
classe d’association ou classe associative
La classe d’association possède à la fois les
caractéristiques d’une association et celle d’une
classe et peut, à ce titre, participer à d’autres
relations dans le modèle
La classe d’association est attachée à l’association
avec une ligne en pointillée
09/10 39
jeudi 23 septembre 2010
40. Séquences aux classes. Relations
Classe d’association : exemple
Une classe d’association est utilisée quand une
information semble appartenir aux deux objets ou à
aucun objet
1..* Inscrit à > 0..*
Étudiant Cours
Évaluation
09/10 40
jeudi 23 septembre 2010
41. Dependencies
A dependency can be used when a class has no direct
relation to another class, but uses it in some way.
The «stereotype» details how the item is dependent on
the other.
41
jeudi 23 septembre 2010
42. Séquences aux classes. Relations
Conseils pratiques
Réfléchir au problème avant de commencer
Soigner le nommage, insister sur le nommage
des relations et des rôles
Faire simple!
– «Things must be as simple as possible, but no
simpler». A. Einstein
– éviter toute complication nuisible
se dégager de l’implémentation : raisonner objets,
classes, messages, relations, attributs, opérations
– ne pas s’inquiéter si les possibilités de la notation
ne sont pas toutes exploitées
09/10 42
jeudi 23 septembre 2010
43. Séquences aux classes. Relations
Conseils pratiques (suite)
Approche incrémentale
– Itérer
– Savoir s'arrêter avant d’atteindre la
perfection...
• prise en compte qualité (niveau de précision), coûts,
délais...
• asservissement au processus de développement
Faire simple (encore)
– Un bon modèle n’est pas un modèle où
l’on ne peut plus rien ajouter, mais un
modèle où on ne peut plus rien enlever.
09/10 (d’après A. de St-Exupéry) 43
jeudi 23 septembre 2010
44. Diagrammes de
classes
Puis ...
44
jeudi 23 septembre 2010
45. Diagramme de Classes- Relations
Relations : Résumé
10/11/2009 45
Mireille Blay-Fornarino
(blay@polytech.unice.fr)
jeudi 23 septembre 2010
46. Modèle E/A
Modèle E/A Entreprise
Graphisme 2
0,n Employe
supervise TravaillerPour Département
1,1
NoSS 1,n
Superviser No_dept
Est supervisé Adresse
libelle
Nomf
1,1 Nb_Emp
Prenom 0,1
1,1 localisations
Diriger
0,n
1,n Date 1,n
Avoir a charge
Gérer
TravaillerSur
Nb_heures
(1,1)
PersonneACharge
prénom 1,n 1,1
DateNaissance
Projet
Parenté
Numéro
Description
46
jeudi 23 septembre 2010