Vous êtes sur la page 1sur 17

Diagramme des classes

Notes du cours : SI2

1. Le diagramme des classes Le diagramme de classes est le plus important des neufs autres diagrammes. Il est obligatoire. Il montre la structure interne du systme (Architecture logiciel). Il permet de donner une reprsentation abstraite des objets du systme qui vont interagir ensemble pour raliser les cas dutilisation. Un objet peut intervenir dans la ralisation de plusieurs cas dutilisation. Le diagramme des classes est quivalent au modle E-A de Merise (Entit=classe). Il permet une reprsentation statique des donnes et des traitements. Il met en uvre la notion d'objets et de classes (attributs, oprations, visibilit), un objet tant une instance d'une classe ainsi que les associations ou les relations entre classes (associations de type agrgation, composition, gnralisation/spcialisation, hritage..). Les cardinalits des relations qui dcorent le diagramme des classes implmente la notion de multiplicit de linstance.
Commande 1..* 1..* Produit

Ligne-Com

1..*

Livraison

Figure 1 Le diagramme des classes ci-dessus permet de modliser un problme classique de commande-livraison de produits. Ainsi, on constate quatre classes (produit, commande, Ligne-com, livraison) et deux relations. Lune des relations est porteuse dinformations (quantit, prix unitaire, ) ce qui explique le trait discontinu qui part de la relation vers la classes ligne de commande. Une commande peut comporter plusieurs produits. Une livraison prend en compte plusieurs lignes de commande. 2. La Classe Une classe est un concept abstrait reprsentant des lments varis comme : les lments concrets (exemple : avions, voitures, personnes, ...), les lments abstraits (exemple : commandes, prts, livraison, ), les composants dune application (exemple : les boutons des botes de dialogue, ), les structures de donnes (tables de hachage, listes, ...), et bien dautres choses. Une instance dune classe est une concrtisation dun concept abstrait. Une classe peut aussi tre vu comme la description dun ensemble dobjets partageant la mme smantique, ainsi que les mmes attributs, oprations et relations. Une classe est alors le moule permettant de crer des objets. un objet est une instance de classe. Dans UML, une classe est reprsente par un rectangle avec trois compartiments. Le premier permet de mettre le nom de la classe. Le second permet de mettre les attributs de la classe. Le dernier permet de mettre les oprations lies la classe. 1

Diagramme des classes Nom de la classe Attributs

Notes du cours : SI2

Oprations

Figure 2 Lexemple ci dessous illustre la classes Vhicule qui est dcrite par trois attributs (marque, modle et immatriculation) ainsi que par trois oprations ou mthodes (acclrer () et vidanger ()). Ces deux mthodes permettent de raliser des oprations sur lentit voiture (la premire fait avancer le vhicule, la deuxime entretient le moteur du vhicule).

Vhicule Marque Modle Immatriculation Acclrer () Vidanger ()

Figure 3 2.1 Nom de classe Le nom de la classe doit voquer le concept dcrit par la classe. Il commence par une majuscule. On peut ajouter des informations (le nom de lauteur de la modlisation, la date, ...). Pour indiquer quune classe est abstraite, il faut ajouter le mot-clef abstract. Syntaxe : [<Nom_du_paquetage_1>::.::<Nom_du_paquetage_N>] [<visiblit>] <Nom_de_la_classe> [{[abstract], [<auteur>], [<date>], .. } ]

Nom_du_paquetage : permet de dsigner le paquetage auquel appartient la classe. La visibilit permet dindiquer le niveau de visibilit de la classe (public, private, protected).
Machine ::Vhicule {abstract}

Figure 4 2.2 Attributs 2

Diagramme des classes

Notes du cours : SI2

Les attributs permettent de dcrire ltat dun objet. Exemple: Lobjet Ballon a comme attribut: couleur avec la valeur rouge. Cet attribut indique ltat de lobjet ballon avec la couleur rouge syntaxe des attributs:

<Visibilit> <nom_attribut>:<Type> [ [ <multiplicit> ] [ { <contrainte> } ] ] [ = <valeur_par_dfaut> ] Le type de lattribut (<Type>) peut tre un nom de classe, un nom dinterface ou un type de donn prdfini (entier, rel, string, ). La multiplicit (<multiplicit>) dun attribut prcise le nombre de valeurs que lattribut peut contenir. Lorsque multiplicit est suprieure 1, il est possible dajouter une contrainte (<contrainte>) pour prciser si les valeurs sont ordonnes ({ordered}) ou pas ({list}).
Vhicule +Marque:String +Modle:String - Immatriculation: Integer

Figure 5 2.3 Attribut de classe Chaque instance dune classe possde sa propre copie des attributs de la classe. Les valeurs des attributs peuvent donc diffrer dun objet un autre. Il est parfois ncessaire de dfinir un attribut de classe (static en Java ou en C++) qui garde une valeur unique et partage par toutes les instances de la classe. Les instances ont accs cet attribut mais nen possdent pas une copie. Un attribut de classe nest donc pas une proprit dune instance mais une proprit de la classe et laccs cet attribut ne ncessite pas lexistence dune instance. Graphiquement, un attribut de classe est soulign 2.4 Mthodes Les mthodes dcrivent le comportement dun individu que lon peut invoquer. Elles peuvent prendre des valeurs en entre et modifier les attributs ou produire des rsultats. Syntaxe:

<visibilit> <nom_mthode> ( [ <paramtre> [, <paramtre> [, <paramtre> ...] ] ] ) : [<valeur_renvoy>] [ { <proprits> } ] Paramtres:

<nom_paramtre>:<Type> [[<multiplicit>]] [=<valeur_par_dfaut>] 3

Diagramme des classes

Notes du cours : SI2

Les proprits (<proprits>) correspondent : des contraintes, des informations complmentaires comme les exceptions, les prconditions, les postconditions ainsi que lindication quune mthode est abstraite (mot-clef abstract).

Exemple : Vhicule +Marque:String +Modle:String - Immatriculation:Integer + Acclrer():Integer - Vidanger()

Figure 6 2.5 Mthodes de classes Une mthode de classe ne peut manipuler que des attributs de classe et ses propres paramtres. Cette mthode na pas accs aux attributs de la classe (i.e. des instances de la classe). Laccs une mthode de classe ne ncessite pas lexistence dune instance de cette classe. Graphiquement, une mthode de classe est souligne. 3. Mthodes et classes abstraites Une mthode est abstraite lorsquon connat son entte mais pas la manire dont elle peut tre ralise. On connat sa dclaration mais pas sa dfinition. Une classe est dite abstraite lorsquelle dfinit au moins une mthode abstraite. On ne peut instancier une classe abstraite : elle est voue se spcialiser (Hritage). Une classe abstraite peut trs bien contenir des mthodes concrtes. Une interface ne comporte que des mthodes abstraites. 4. Encapsulation et visibilit Lencapsulation est un mcanisme consistant rassembler les donnes et les mthodes au sein dune structure en cachant limplmentation de lobjet, cest--dire en empchant laccs aux donnes par un autre moyen que les services proposs. Ces services accessibles aux utilisateurs de lobjet dfinissent ce que lon appel linterface de lobjet (sa vue externe). Lencapsulation permet donc de garantir lintgrit des donnes contenues dans lobjet. Lencapsulation permet de dfinir des niveaux de visibilit des lments dun conteneur. La visibilit dclare la possibilit pour un lment de modlisation de rfrencer un lment qui se trouve dans un espace de noms diffrents de celui de llment qui tablit la rfrence. Elle fait partie de la relation entre un lment et le conteneur qui lhberge, ce dernier pouvant tre un paquetage, une classe ou un autre espace de noms. public ou + : tout lment qui peut voir le conteneur peut galement voir llment indiqu. protected ou # : seul un lment situ dans le conteneur ou un de ses descendants peut voir llment indiqu. private ou - : seul un lment situ dans le conteneur peut voir llment. 4

Diagramme des classes

Notes du cours : SI2

package ou rien: seul un lment dclar dans le mme paquetage peut voir llment.

5. Associations entre relations Une association reprsente une relation structurelle entre classes dobjets. Les associations peuvent tre binaires, elles connectent alors deux classes. Les associations peuvent tre n-aire, elles connectent n classes. 5.1 Association binaire Une association binaire est une relation entre deux classes :
Nom de rle Cardinalits

Nom dassociation Socit Personne

Employeur

Emploi

Employ

0..1
Nom de rle

Figure 7 5.2 Association n-aire Une association n-aire met en relation plus de deux classes Enseignant

Etudiant

Salle

Cours

Figure 8 5

Diagramme des classes

Notes du cours : SI2

5.3 La gnralisation La gnralisation dcrit une relation dhritage entre une classe gnrale (classe parent) et une classe spcialise (classe enfant). La classe enfant est intgralement cohrente avec la classe parent, mais comporte des informations supplmentaires (attributs, oprations, associations). Lhritage permet la classification des objets. La classe enfant possde toutes les proprits des ses classes parents, mais elle ne peut accder aux proprits prives de celle-ci. Une classe enfant peut redfinir (mme signature) une ou plusieurs mthodes de la classe parent. Toutes les associations de la classe parent sappliquent aux classes enfants. Une classe peut avoir plusieurs parents, on parle alors dhritage multiple Vhicule

Voiture

Camion

Camionnette

Figure 9 En outre, il convient de rappeler que le polymorphisme est un concept du paradigme objet permettant de dfinir une mthode dans une classe de niveau suprieur, sans se soucier de ce quelle fait dans le dtail et de dfinir (redfinir) un code spcifique dans les classes de niveau infrieur ainsi que de surcharger des mthodes dans les classes de niveau infrieur. 5.4 Cardinalits : Chaque fin dassociation peut porter une cardinalit montrant combien dobjets de la classe considre peuvent tre lis une instance de lautre classe par lassociation. 1..1 not 1 0..1 0..* not * 1..* n..m Figure 10 Exemple : 6 Un et un seul Zro ou un De Zro n De un n De n m

Diagramme des classes

Notes du cours : SI2

Soit lexemple de location de box dans un parking par des clients. Un box peut tre lou par au maximum un seul contrat ou peut rester non lou. Un contrat concerne la location d'un seul box la fois. Un box peut tre vide ou contenir au maximum 2 vhicules. Un vhicule est autoris aller dans un box (au minimum) ou plus. Un contrat ne concerne qu'un seul locataire. Un locataire peut souscrire plusieurs contrat mais doit en avoir souscrit au moins un.
Garage Locataire

Contient

1..* 1 Box 1 1..* Garer 0..2 Louer Vhicule 0..1 Signe

1 1..* Contrat

Figure 11 5.5 Les classes associations Une association peut tre porteuse dinformations. Dans ce cas de figure Une classe association est introduite sur la relation afin dencapsuler ces informations. Une classe association est une classe comme une autre qui peut entretenir des relations avec dautres classes
Commande 1..* 1..* Produit

Ligne-Com 1..* 1

Livraison

Figure 12 5.6 Lassociation dagrgation Une association de type agrgation relie une classe une ou plusieurs classes pour reprsenter une classe qui contient des objets d'autres classes. 7

Diagramme des classes Entreprise

Notes du cours : SI2

1 1..* Agence 1 1..* Personnel

Figure 13 5.7 Lassociation de composition Une association de type composition est une agrgation impliquant une dure de vie. La suppression d'un objet contenant implique la suppression des objets contenus
Direction

1 1..*
Service

Figure 14 5.7 Navigabilit La navigabilit indique sil est possible de traverser une association. On reprsente graphiquement la navigabilit par une flche du ct de la terminaison navigable et on empche la navigabilit par une croix du ct de la terminaison non navigable. Par dfaut, une association est navigable dans les deux sens et on met rien (un tiret). Exemple : La terminaison du ct de la classe Commande nest pas navigable : cela signifie que les instances de la classe Produit ne stockent pas de liste dobjets du type Commande.
Commande * * Produit

Figure 15 5.8 Dpendance Une dpendance est une relation unidirectionnelle exprimant une dpendance smantique entre les lments du modle. Elle est reprsente par un trait discontinu orient. 8

Diagramme des classes

Notes du cours : SI2

La modification de la cible implique une modification de la source. La dpendance est souvent strotype pour mieux expliciter le lien smantique entre les lments du modle. Exemple :
Emploi du temps

cours

Figure 16 5.9 Association rflexive Une association peut tre rflexive. En fait, il sagit dune relation liant une classe elle-mme. A titre dexemple la relation <est pre de > peut li une classe personne ellemme en con sidrant quun pre est le pre de son fils. 0..*
Personne Est pre de

Figure 17 6. Interface Une interface permet de dcrire le comportement d'une entit (classe, paquetage ou composant), c'est dire un savoir faire sous la forme dune liste doprations. Une interface ne peut donner lieu aucune implmentation. Une interface est quivalente une classe abstraite sans attributs o toutes les mthodes sont abstraites. Notation: classe strotyp <<interface>>
<<Interface>> dplaable Polygone

<<realize>>

sommets saPlace() avancer() reculer() monter() descendre()

saPlace() avancer() reculer() monter() descendre()

<<realize>>
Personne nom saPlace() avancer() reculer() monter() descendre()

Figure 18 9

Diagramme des classes

Notes du cours : SI2

Une classe peut dclarer qu'elle implmente une interface. Elle doit alors implmenter toutes les oprations de cette interface. Elle peut ensuite tre utilise partout o ce comportement est exig. Notation strotype <<realize>> Autre notation : La classe Transporteur utilise linterface <dplaable> qui est implment par polygone.
Polygone sommets saPlace() avancer() reculer() monter() descendre() Transporteur

dplacable

Figure 19 7. Commentaires
Vhicule

Voiture

Classe drive de Vhicule

Figure 20 8. Redondances de relations


Universit 0..1 Personne tudier 1..n tudiant 1..n Professeur

Enseigner

Figure 21 10

Diagramme des classes

Notes du cours : SI2

9. classe abstraite Nom de la classe en italique ou strotype <<abstract>>


Mdia <<abstract>> Mdia

Figure 22 10. Paquetage Une application est constitue de plusieurs classes, des dizaines ou des centaines. Il est important de les organiser en groupes (en fonction de certains critres surtout logiques). Un paquetage regroupe des classes, des interfaces, des paquetages. Il met en oeuvre un espace de nommage
Gestion des comptes

Figure 23 La relation liant les paquetages se traduit dans le sens utiliser, accder ou importer.
Gestion des comptes

Gestion des clients

Figure 24 11. Strotypes Les strotypes permettent d'tendre la smantique des lments de modlisation : il s'agit d'un mcanisme d'extensibilit du mtamodle d'UML. Les strotypes permettent de dfinir de nouvelles classes d'lments de modlisation, en plus du noyau prdfini par UML. 11

Diagramme des classes

Notes du cours : SI2

Toutefois, il est sage dutiliser les strotypes avec modration et de manire concerte afin de ne pas compromettre la normalisation. UML propose de nombreux strotypes standard. <<utility>> : Encapsulation dattributs et de mthodes dans une classe utilitaire
<<utility>> Math pi sin() cos() sqrt() ln()

Figure 25 <<thread>> : Reprsentation de processus lger dans le cas de la multiprogrammation <<thread>> serveur attendre() lire() ecrire()

Figure 26 <<use>>: Une classe (classe cliente de linterface) peut dpendre dune interface (interface requise). On reprsente cela par une relation de dpendance et le strotype use .
Personne

Enseignant

Agent

<<realize>> <<interface>> Inscription Biblio

<<Use>>

Figure 27 12

Diagramme des classes

Notes du cours : SI2

<<instanceof>>: La relation de dpendance dinstanciation (strotype instanceof ) dcrit la relation entre un classeur et ses instances. Elle relie, en particulier, les liens aux associations et les objets aux classes.

Enseignant

1..*

donne cours

1..*

Etudiant

<<instanceof>>
:Enseignant

<<instanceof>>
donne cours
:Etudiant

Figure 28 <<enumeration>> : permet de dfinir un ensemble de littraux correspondant toutes les valeurs possibles que peut prendre une expression de ce type. Un type numr est dfini par un classeur possdant le strotype enumeration
<<enumeration>> Couleur

blanc noir rouge vert

Figure 29 Plusieurs strotypes : call : la source appelle une opration de la cible create : la source cre une instance de la cible permit : le source est amie de la cible .. 12. La mthode de lanalyse du texte Bien quil ne sagisse pas dune mthode tablie, la mthode danalyse du texte offre une aide prcieuse pour ltablissement du diagramme des classes. Par ailleurs, le texte dcrivant les besoins du client commanditaire de lapplication est gnralement tabli dans la phase danalyse des besoins et de spcification des besoins en troite collaboration avec lutilisateur. 13

Diagramme des classes

Notes du cours : SI2

Lexemple suivant illustre bien cette dmarche. En effet en partant du texte on essaye dtablir dans un premier temps un diagramme des cas dutilisation et ensuite un diagramme des classes. La dmarche en question consiste considrer dans un premier temps les sujets, les noms et les groupes nominaux. Ceux-ci vont constituer un dictionnaire pour les deux diagrammes considr. Pour le diagramme des cas dutilisation cela constituera un dictionnaire des acteurs potentiels. Il suffira ensuite dpurer ce dictionnaire afin darrter la liste des acteurs. Lpuration consiste poser la question que fait lacteur avec le systme sil ne fait rien, il est ray de la liste. Dans le cas contraire, il est gard dans la liste. Llimination des synonymes est aussi envisage dans le sens ou deux noms peuvent pointer sur le mme rle. Il sagit donc de nen garder quun seul. Pour les diagrammes des classes les sujets, les noms et les groupes nominaux constituent les classes. Un premier dictionnaire des classes potentiel est donc tabli et analys afin dpurer ce dictionnaire. Dans un deuxime temps, les verbes sont souligns dans le texte. Pour les diagrammes des cas dutilisation les verbes constituent les actions. Pour le diagramme des classes, les verbes constituent les associations entre classes. Le texte sert aussi trouver les attributs des classes. Les diagrammes des cas dutilisation sont aussi un bon moyens pour recenser les attributs de classes. Diagramme des cas dutilisation : Souligner les noms, sujets et groupes nominaux :

Un grant de bibliothque dsire automatiser la gestion des prts. Il commande un logiciel permettant aux utilisateurs de connatre les livres prsents, d'en rserver jusqu' 2. L'adhrent peut connatre la liste des livres qu'il a emprunts ou rservs. L'adhrent sinscrit la bibliothque. , il obtient un mot de passe. l'emprunt est toujours ralis par les employs qui travaillent la bibliothque. Aprs avoir identifi l'emprunteur, ils savent si le prt est possible (nombre max de prts = 5), et s'il a la priorit (il est celui qui a rserv le livre). Ce sont les employs qui mettent en bibliothque les livres rendus et les nouveaux livres. Il leur est possible de connatre l'ensemble des prts raliss dans la bibliothque. Les acteurs : Grant : ninteragit pas avec le systme Bibliothque : ninteragit pas avec le systme Gestion : ninteragit pas avec le systme Prt : ninteragit pas avec le systme Logiciel : ninteragit pas avec le systme Utilisateurs : ce sont les adhrents Livres : ninteragit pas avec le systme Adhrent : rserve les livres, liste les livres, liste les livres emprunts Liste : ninteragit pas avec le systme Mot de passe : ninteragit pas avec le systme Emprunt : ninteragit pas avec le systme Employs : Ce sont les bibliothcaires Emprunteur : ninteragit pas avec le systme Priorit : ninteragit pas avec le systme Livre rendus : ninteragit pas avec le systme Ensemble : ninteragit pas avec le systme Bibliothcaire : ralise lemprunt, la restitution, lajout, linscription Les acteurs sont donc : 14

Diagramme des classes

Notes du cours : SI2

Adhrent Bibliothcaire
Bibliothque Lister les livres Lister les livres emprunts Rserver Adhrent Prter Restituer Ajouter de nouveaux livres Inscrire un adhrent Bibliothcaire

Diagramme des classes : Dictionnaire des classes potentielles : livres

Grant bibliothque gestion prts logiciel utilisateurs adhrent liste mot de passe inscription emprunt employs emprunteur ensemble livres rendus Grant : non pertinente, n'intervient pas. Bibliothque: oui, entit reprsentant le lieu, la raison social, gestion : non vague. prts : oui, contient les actions sur les prts Logiciel: non vague. utilisateurs (choix entre utilisateur, adhrent, emprunteur). Livres: oui, permettre de connatre son tat. Adhrent: oui, permet la personne d'tre identifie liste : non dtail dimplmentation mot de passe: non, il sagit dun attribut Inscription: non, cest une action Emprunt: non, cest une action Employs ou bibliothcaire: oui, reconnatre qui a fait un prt, etc. Emprunteur: (choix entre utilisateur, adhrent, emprunteur) Livres rendus : oui: contenir les infos et actions sur les restitutions Ensemble: non, dtail dimplmentation

Dictionnaire des classes bibliothque : organisme grant une collection de livres qui peuvent tre emprunts par ses adhrents. Une bibliothque est gre par ses employs. 15

Diagramme des classes

Notes du cours : SI2

prt : un prt est caractris par le numro du livre, la date, la dure. Il ne peut tre fait que par un adhrent. Livre: ouvrage pouvant tre emprunt. Restitution : contenir des informations sur la restitution tel que la date de restitution Adhrent: personne inscrite la bibliothque. Employ: personne travaillant la bibliothque. Reservation : contient des informations sur la rservation tel que la date

Chercher les associations : On sintresse aux verbes dans le texte

Un grant de bibliothque dsire automatiser la gestion des prts. Il commande un logiciel permettant aux utilisateurs de connatre les livres prsents, d'en rserver jusqu 2. L'adhrent peut connatre la liste des livres qu'il a emprunts ou rservs. Ladhrent sinscrit la bibliothque, il obtient un mot de passe. L'emprunt est toujours ralis par les employs qui travaillent la bibliothque. Aprs avoir identifi l'emprunteur, ils savent si le prt est possible (nombre max de prts = 5), et s'il a la priorit (il est celui qui a rserv le livre). Ce sont les employs qui mettent en bibliothque les livres rendus et les nouveaux livres. Il leur est possible de connatre l'ensemble des prts raliss dans la bibliothque. Un adhrent est inscrit la bibliothque. La bibliothque contient des livres
Emploie Employeur
Bibliothque Nom Adresse

1 1

Prteur
Rservation date Res

1..*

inscrit

1..*

employ

Bibliothcaire

contient

Livre

1..* Emprunteur
0..2 a rserv 0..5 a emprunt 0..5 a rendu 1 1 1
Adhrent

Nom Adresse Anciennet

1..* 1
a ralis

Titre numro

nom numero adresse

0..*

date_restitution
Prt

Restitution

a fait

0..*

date_sortie date prevu rest

Validation du diagramme des classes La validation du diagramme des classes passe par le fait quil doit rpondre aux cas dutilisations recens dans le diagramme des cas dutilisation. Ainsi, si on considre le cas dutilisation <lister les livres>. Ce cas est ralis en invoquant les classes <livre> et <Bibliothque>.
Bibliothque

1
Contient

Nom Adresse

Livre

1..*

Titre numro

16

Diagramme des classes

Notes du cours : SI2

Si on considre le cas dutilisation prt le diagramme des classes invoqus sera constitus des classes.
Bibliothcaire Livre Adhrent

Nom Adresse Anciennet

Titre numro

0..5 a emprunt

nom numero adresse

Prt

a fait

0..*

date_sortie date prevu rest

13. Bibliographie Cours: Use Cases, ISI 2001 - G. Falquet, L. Nerima Site web: UML en franais, uml.free.fr Cours: Mthodologie des systmes d'information UML, DI GALLO Frdric, CNAM 2001 cours:Analyse et Conception avec UML, Mireille Blay-Fornarino, ESSI 2005 L. Audibert UML 2.0 Diagramme de cas dutilisation (Institut Universitaire de Technologie de Villetaneuse)

17