UML : Diagramme de classes UML : Diagramme de classes
mercredi 4 novembre 2009 1 Ph. CHOCHOIS
UML
Le diagramme de Classe va permettre de représenter une vue statique du système d'information.
Pas de dynamisme ici puisqu'on n'évoque pas les stimuli qui font réagir le SI, il s'agit plutot des relations entre les Classes, des services rendus et utilisés par chacune d'elles et de l'articulation de l'ensemble.
Une Classe
Elle est représentée de la façon suivante (attention, en fonction du contexte, on peut omettre ce que l'on veut).
NomClasse (en italique si abstraite) (visibilité + = -) nomAttribut : typeAttribut
- nb_de_chevaux : int - client : Person
(visibilité + = -) nomMethode(args) : typeRetour + getNbCv() : int
+ setNbCv(int) : void + getClient() : Person
Cette représentation peut varier selon le moment où elle est utilisée. Si l'analyste en est à la conception, il restera plus générique. Lorsqu'il en arrivera à l'implémentation, le diagramme peut être bien plus complet, et différent (des classes supplémentaires apparaissent, des méthodes aussi...)
Détails sur les Classes
En UML, il est toujours possible de sortir du schéma grâce à des commentaires qui peuvent prendre la forme suivante.
Ce qui nous donne le schéma suivant.
Les associations.
Les associations sont des relations entre Classes.
Elles représentent un lien durable ou ponctuel entre deux objets, une appartenance, ou une collaboration.
Elles sont représentées par une ligne entre les classes.
Sur cette ligne, un verbe à l'infinitif permet d'expliquer la sémantique de l'association (non obligatoire).
De même, on peut aussi donner un nom de chaque coté de l'association, pour le nommer le rôle de chacun.
Des valeurs de multiplicité expriment le nombre d'instances en jeu dans la relation
Par exemple, on peut lire tout en haut qu'UN EMPLOYE POSSEDE UNE FICHE SECURITE
Les associations (exemples)
Employe nasE*: int nomE: varchar villeE: varchar
FicheSecurite noF* int nivS: int finS: Date
1
Possede >1
On peut lire qu’société est employeur d’aucune ou de plusieurs personnes et qu’une personne est employé par une et une seule société.
On ne connait pas ici:
- Les attributs des classes “Société et “Personne”
- Les méthodes (Opérations possibles) pour une personne ou une société
Les associations (exemples)
On a détaillé les attributs des classes en indiquant leur type.
On n’a pas indiqué les opérations.
Les associations (exemples)
Inscription noI: int section: int trimestre : int
CoursTrim nasE: int section: int trimestre : int Etudiant nasE: int nomE: varchar villeE: varchar
* *
1 1
Les classes sont en relation entre elles si des objets issus de ces classes peuvent être en relation entre eux.
Les associations (exemples) Association n-aire
Il est possible que plusieurs Classes participent à l'association.
Ce n'est alors plus une association binaire, mais n-aire.
On l'indique par un losange.
Méfiez-vous de la complexité induite (l'association implique l'ensemble des classes participantes).
Multiplicité et Navigabilité...
La multiplicité indique les cardinalités entre les classes et l'association.
On l'exprime souvent par une valeur finie (3, 5 ou 17) ou un intervalle (2..3, 1..17, ou encore 2..*).
Dans le cas de 0..*, on note parfois * tout simplement.
Par défaut, l'association peut être utilisée dans les deux sens.
Très souvent, on s'aperçoit que l'association est uni-directionnelle.
Elle est donc navigable dans un seul sens.
On l'indique avec une flèche sur l'association (la flèche à coté du verbe indique le sens de la phrase...)
Exemple navigabilité
–Chaque instance de voiture a un lien vers le propriétaire –Chaque instance de Personne a un ensemble de liens vers les voitures –Le service de contravention est associé à une ou plusieurs voiture(s) –La voiture ne connaît pas service de contravention
Des contraintes sur l'association
Il est possible d'exprimer des contraintes sur une association, afin de limiter les objets mis en jeu.
Cela permet de mieux cadrer l'architecture de l'ensemble
(exclusion d’associations).
Des contraintes sur l'association
Il est possible d'exprimer des contraintes sur une association, afin de limiter les objets mis en jeu.
Cela permet de mieux cadrer l'architecture de l'ensemble
(ordonnancement d'une association).
Des contraintes sur l'association
Il est possible d'exprimer des contraintes sur une association, afin de limiter les objets mis en jeu.
Cela permet de mieux cadrer l'architecture de l'ensemble
(ordonnancement d'une association).
Des contraintes sur l'association
Il est possible d'exprimer des contraintes sur une association, afin de limiter les objets mis en jeu.
Cela permet de mieux cadrer l'architecture de l'ensemble
- conditions sur associations,
- inclusion d'une association dans une autre).
Agrégation et composition...
Ce sont deux types d'associations aux caractéristiques spécifiques.
Les deux indiquent une dépendance forte de l'élément par rapport à son contenant.
La relation n'est pas symétrique.
La différence entre ces deux relations d'appartenance réside dans le niveau de dépendance du 'contenu’.
Si le 'contenu' est lié exclusivement au 'contenant', et qu'il disparait avec lui, alors on dit qu'il y a COMPOSITION (élément constitutif=losange plein).
Sinon, il s'agit d'une AGREGATION (plutôt une coopération=losange creux).
Exemple Agrétats-composition
La suppression de la
présentation entraine la
disparition des transparents qui
la compose
Les classes d'association.
Si vous détectez que votre association est porteuse d'informations, il est possible d'utiliser une classe d'association. Elle comportera attributs, méthodes, etc...
Héritage
Le principe de généralisation et de spécialisation (appelé également “Héritage” permet de définir les relations entre sous-Classe et Super-Classe.
Héritage
Le principe de généralisation et de spécialisation (appelé également “Héritage” permet de définir les relations entre sous-Classe et Super-Classe.
Diagramme de classes
Exercices d’application...
Diagramme de classes
Exercice 1
Soient les phrases suivantes :
Un répertoire contient des fichiers
Une pièce contient des murs
Les modems et claviers sont des périphériques d’entrée / sortie
Une transaction boursière est un achat ou une vente
Un compte bancaire peut appartenir à une personne physique ou morale
Diagramme de classes
Exercice 2 :
Une académie souhaite gérer les cours dispensés dans plusieurs collèges. Pour cela, on dispose des renseignements suivants :
Chaque collège possède d’un site Internet
Chaque collège est structuré en départements, qui regroupent chacun des enseignants spécifiques. Parmi ces enseignants, l’un d’eux est responsable du département.
Un enseignant se définit par son nom, prénom, tél, mail, date de prise de fonction et son indice.
Chaque enseignant ne dispense qu’une seule matière.
Les étudiants suivent quant à eux plusieurs matières et reçoivent une note pour chacune d’elle.
Pour chaque étudiant, on veut gérer son nom, prénom, tél, mail, ainsi que son année d’entrée au collège.
Une matière peut être enseignée par plusieurs enseignants mais a toujours lieu dans la même salle de cours (chacune ayant un nombre de places déterminé).
On désire pouvoir calculer la moyenne par matière ainsi que par département
On veut également calculer la moyenne générale d’un élève et pouvoir afficher les matières dans lesquelles il n’a pas été noté
Enfin, on doit pouvoir imprimer la fiche signalétique (nom, prénom, tél, mail) d’un enseignant ou d’un élève.
Elaborez le diagramme de classes correspondant.
Pour simplifier l’exercice, on limitera le diagramme à une seule année d’étude
Diagramme de classes
Exercice 3
On souhaite gérer les réservations de vols effectués dans une agence. D’après les interviews réalisées avec les membres de l’agence, on sait que :
Les compagnies aériennes proposent différents vols
Un vol est ouvert à la réservation et refermé sur ordre de la compagnie
Un client peut réserver un ou plusieurs vols, pour des passagers différents
Une réservation concerne un seul vol et un seul passager
Une réservation peut être confirmée ou annulée
Un vol a un aéroport de départ et un aéroport d’arrivée
Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée
Un vol peut comporter des escales dans un ou plusieurs aéroport(s)
Une escale a une heure de départ et une heure d’arrivée
Chaque aéroport dessert une ou plusieurs villes
A partir des éléments qui vous sont fournis ci-dessus, élaborez le diagramme de classes (en y ajoutant tout attribut que vous jugez pertinent et qui n’a pas été décrit ci-dessus).
Diagramme de classes
Exercice 4 :
Modélisez cette gestion de fichiers :
Les fichiers, les répertoires et les raccourcis sont contenus dans des répertoires et possèdent un nom