1
Analyse et Conception avec UML
Les diagrammes de classes
[email protected]/~blay
IUT Nice-Sophia AntipolisSeptembre 2010
Site web du module : http://anubis.polytech.unice.fr/iut/
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 2
Modélisation structurelleLes 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
jeudi 23 septembre 2010
3
Des diagrammes de séquence
aux diagrammes de Classes
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 4
Des Diagramme de Séquence aux classes
Classe Relations?
Classe
Classe
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
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
5jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 6
Classes
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Le comportement d’une classe est constitué de ses opérations
On identifie les opérations en examinant les diagrammes d’interactions
Opération
7jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Attributs
8
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
Chaque offre de coursPossède un numéro,un lieu et une date
Coursnumérolieudate
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Attributs
9
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 classeEviter les types non primitifs
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 10
Attributs dérivésAttributs 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
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Notations UML pour classes et objets
11jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Relations
12
On identifie les relations en examinant les diagrammes d’interaction
Si deux objets doivent communiquer, il doit exister un chemin entre eux
jeudi 23 septembre 2010
13
Relations entre classes
«Relations», associations, agrégation,
généralisation, compléments
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 14
RelationsLes relations fournissent un chemin de communication entre objetsLes 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égationDépendance
Une contrainte :Une relation est un lien stable entre deux objets
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Relations
15jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 16
Multiplicité : exemple
Personne Voiture0..*1..*
Président Pays11
Nœud *
* Un réseau informatique est composé de nœuds inter-connectés
Association réflexive
possède
gouverne
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 17
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 classePour 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
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 18
*
Multiplicité d'une relation
Classe Exactement une
Classe Plusieurs (0 à n)
Classe Optionnelle (0 ou 1)
Classe1,2,4
Classe1-10
0,1
1
Cardinalité spécifiée
Intervalle
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Relations
19
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
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 20
Les associations peuvent indiquer la navigation avec une pointe de flèche ouverte:
Pas de flèche => bidirectionnelleLa 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é.
AssociationsAssociation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 21
NavigationBien 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
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
Diagramme de Classes- Relations
Classe1 Classe2
Association
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 22
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
• L’usage recommande de choisir comme nom d’une association une forme verbale active (exemple : travaille pour) ou passive (exemple : est employé par)
A Bnom
Personne travaille pour Société
Personne est employé par Société
Association
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 23
Rôles des extrémités d’associationOn 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’associationLe 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 optionnelleReprésentation et exemple
A Brôle de B
Société employeur Personne employé
Emploie>
Association
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 24
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 Société < travaille pour Personne
Personne 1
*
< est père de
Association
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 25
Cas particuliers de relations
encadre
sous-fifre
chef1
Relations réflexives
Personne1..*
Une relation réflexive lie des objets de même classe
Association
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 26
Composition et Agrégation Cas particuliers de relations :– Notion de tout et parties
1
4,6Roue
Voiture Personne*
passager
moyen_de_transport
transporte
Chassis1
Composition
Agrégation
1 1
roulement >
structure >
Agrégation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 27
AgrégationL’agrégation représente une association de type ensemble/élément L’agrégation ne concerne qu’un seul rôle d’une associationRepré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
Agrégation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10
Exemple 2 (Agrégation partagée)– Une personne fait partie de plusieurs équipes – Une équipe contient plusieurs personnes
28
Agrégation…
Exemple 1 – Une personne est dans une foule – Une foule contient plusieurs personnes
Foule Personne*Contient >
Équipe Personne**
< membre
Agrégation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 29
CompositionLa 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.
Attentionun Point de vue
Agrégation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 30
Exemple de classe structurée
On voit clairement que le PC est composé d’instances de USBCard, Motherboard, and
GraphicsCard
Part
Agrégation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 31
GénéralisationC’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
BusVoiture Camion
Généralisation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 32
GénéralisationExtension par l’ajout d’attributs et d’opérations
Généralisation
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 33
Héritage des relations
REPERTOIRE1..*
DRIVER FICHIER_TEXTE FICHIER_BINAIRE
FICHIERlien logique
Les relations sont héritées par les sous classes :
VEHICULE MOTEUR1..2
VOITURE CAMION
motorisation
*
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 34
Association ordonnéeContraintes 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
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 :
Entreprise Produits0..*0..*
{Ordonné}
Ordonné par ...
Raffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 35
Association « ou-exclusif »
Contratd’assurance
*
Personne1
Entreprise
*
1
{XOR}
Un contrat d’assurance concerne uneentreprise ou une personne mais pas
les deux en même temps
Raffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 36
Association « sous-ensemble »C’est une contrainte qui indique qu’une collection est incluse dans une autre collectionLa contrainte est placée à proximité d’une relation de dépendance entre deux associationsLa flèche de la relation de dépendance indique le sens de la contrainteExemple
Politicien11..*
{Sous-ensemble} Partie politiqueMembre de >
Chef de > 11
Raffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 37
Association QualifiéeUtilisée avec une relation de multiplicité *.Permet de trier la relation en fonction des valeurs d’un attribut.
Qualifier
Raffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 38
Association QualifiéeRaffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 39
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 ’associationLa classe attachée à l’association est appelée une classe d’association ou classe associativeLa 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èleLa classe d’association est attachée à l’association avec une ligne en pointillée
Raffinements
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 40
Classe d’association : exemple
Étudiant Cours0..*1..* Inscrit à >
Évaluation
Une classe d’association est utilisée quand une information semble appartenir aux deux objets ou à aucun objet
jeudi 23 septembre 2010
41
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.
Dependencies
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 42
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 nuisiblese 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
jeudi 23 septembre 2010
Séquences aux classes. Relations
09/10 43
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. (d’après A. de St-Exupéry)
jeudi 23 septembre 2010
44
Puis ...
Diagrammes de classes
jeudi 23 septembre 2010
10/11/2009Mireille Blay-Fornarino ([email protected])
45
Relations : RésuméDiagramme de Classes- Relations
jeudi 23 septembre 2010
46
Modèle E/A EntrepriseGraphisme 2
Modèle E/A
1,n
1,n
1,1
Est supervisé
0,nsupervise
(1,1)
0,n
1,1
1,n
1,10,1
1,n1,1Employe
NoSSAdresseNomfPrenom
Département
No_deptlibelleNb_Emp
Projet
NuméroDescription
PersonneACharge
prénomDateNaissanceParenté
TravaillerPour
Diriger
Date
GérerAvoir a charge
Superviser
TravaillerSur
Nb_heures
localisations
jeudi 23 septembre 2010
47
UML EntrepriseUML
jeudi 23 septembre 2010