Vous êtes sur la page 1sur 14

Conception orientée objet Chapitre 3: Diagramme de classes

Enseignante responsable du cours:


Dr-Ing Rihab BOUSSADA

Introduction (1/2) Introduction (2/2)

Statique (ce que le système EST) y Les diagrammes de cas d'utilisation modélisent à QUOI sert le
Diagrammes de classes système.
Diagrammes d'objets
Diagrammes de composants
Diagrammes de déploiements y Le système est composé d'objets qui interagissent entre eux et avec
Dynamique les acteurs pour réaliser ces cas d'utilisation.
(comment le système
EVOLUE)
y Les diagrammes de classes permettent de spécifier la structure
Diagrammes d'activités, statique et les liens entre les objets dont le système est composé.
Diagrammes de séquences, Fonctionnel
Diagrammes d'états-transitions (ce que le système FAIT)
Diagrammes de collaborations

3 4
Définition Classe

y Une classe est une représentation ou description abstraite d'un


y Le diagramme de classes :
ensemble d’objets partageant les mêmes caractéristiques
{ Collection d'éléments de modélisation statiques (classes, (attributs, opérations, relations et sémantiques).
paquetages, interfaces, relations entre eux...), qui montre { Exemples : la classe Personne, la classe Animal, la classe Livre…
la structure statique d'un modèle. y En programmation OO, une classe définit une abstraction, un type
{ Statique : fait abstraction des aspects dynamiques et
abstrait qui permettra d'instancier des objets.
temporels. y Un objet est une instance (ou occurrence) d’une classe.
{ Exemples :
{ Il a pour objectif de décrire la structure des entités
• Le lion est un objet instance de la classe Animal.
manipulées par les utilisateurs.
• Le livre « Modélisation objet avec UML » est une instance de la
{ C’est le point central dans un développement orienté classe livre : il a son propre titre, son propre code ISBN, son
objet Æ Représente la structure d’un code orienté objet. propre auteur, etc.

5 6

Classe Classe
Nom
• Graphiquement, une classe décrite en UML peut être plus ou
moins précise y Le nom d’une classe peut être simple ou complet (nom de la classe
précédé par le nom du paquetage dans lequel la classe réside).
y Le nom de la classe est une chaîne de caractères (excepté :) et
Voiture
commence par une majuscule.
Nom Couleur
Cylindrée
Nom Ou Exemple: Vitesse max
Attributs Démarrer ()
Accélérer ()
Freiner ()
Opérations

7 8
Classe Classe
Attribut
Attribut
y Un attribut représente une propriété, une caractéristique
y La forme la plus complète d’un attribut est la suivante :
contenue dans une classe. Visibilité nom [[multiplicité] : type [=valeur initiale] [{Mutabilité}]]
{ Exemples : Attributs de la classe Voiture: vitesse courante, { Visibilité : Type d’accessibilité, détermine si d'autres éléments peuvent
cylindrée, numéro d’immatriculation, etc. utiliser ces attributs.
{ Multiplicité : nombre d’instances qu’un attribut peut avoir, intervalle
y Une classe peut avoir zéro, un ou plusieurs attributs. ou nombre.
y Les attributs prennent des valeurs lorsque la classe est Ù exemple adresse [1..3] (1, 2 ou 3 adresses : domicile fixe, bureau, vacances).
{ Le type des propriétés peut être :
instanciée : ils sont en quelque sorte des variables attachées
Ù Un type primitif: entier, Chaîne …
aux objets. Ù Une classe (type utilisateur):
| Etudiant, Rectangle..
y La forme la plus courte d’un
attribut est : nom de l’attribut.
9 10

Classe Classe
Attribut Attribut

y Attributs dérivés :
y La forme la plus complète d’un attribut est la suivante :
{ Les attributs dérivés peuvent être calculés en appliquant des formules
Visibilité nom [[multiplicité] : type [=valeur initiale] [{Mutabilité}]] sur d'autres attributs.
{ Mutabilité :
{ Conduit en implémentation à une opération.
Ù Gelé:attribut non modifiable,
{ Les attributs dérivés sont symbolisés par l'ajout d'un / devant leur
| exemple : # Numsecurité : Integer {Gelé} nom (/Attribut).
ÙVariable: propriété par défaut; l’attribut est modifiable { Exemple 1 :
Ù Ajout uniquement: uniquement l’ajout est possible (multiplicité >1) Ù une classe Personne contient un attributdateNaissance et un attribut
| # MotsClés [*] : String {Ajout Uniquement} age.
Ù Ce dernier étant redondant, puisqu’il peut être calculéà partir de
dateNaissance. On écrira /age.

11 12
Classe Classe
Attribut Attribut

y Attributs dérivés : y Attributs de classe ou attribut étendu :


{ Exemple 2 : { Par défaut, les valeurs des attributs définis dans une classe diffèrent
Ù La surface est calculée à partir de la longueur et de la largeur. d'un objet à un autre.
{ Parfois, il est nécessaire de définir un attribut de classe qui garde
une valeur unique et partagée par toutes les instances.

13 14

Classe Classe
Opérations Opérations
y Une opération représente un élément de comportement (un service) offert

par la classe; c’est un traitement que les objets correspondants peuvent y [visibilité] nom [[(Arguments)] [:type retourné ]
[{propriété}]]
effectuer.
{ Arguments:= [in|out|inOut] nom [:type] [=valeur par défaut ]
y Une opération est la spécification d'une méthode (sa signature) Ù In: entrée seule: non modifié par l’exécution de cette opération
Ù Out: sortieseule. L’appelant peut récupérer les résultats.
indépendamment de son implantation. Ù InOut: entrée-sortie passé à l’opération et modifiable.

y Les opérations explicitent les choix d’attribution des responsabilités { {propriété} : décrit des contraintes ou
informations complémentaires :
aux objets.
Ù exceptions, préconditions, postconditions, indication qu’une
méthode est abstraite (mot-clef abstract), etc.
y Une opération est définie par son nom ainsi que par les types de ses

paramètres et le type de sa valeur de retour.


15 16
Classe Classe
Opérations Visibilité

y Opérations de classe ou opération étendue : y L'encapsulation est un principe de conception consistant à protéger le cœur d'un
{ Semblables aux attributs de classe système des accès inconvenants.
{ Une opération de classe est une propriété de la classe, et y En UML, l’encapsulation est exprimée par l’utilisation de modificateurs d'accès
non de ses instances. (appelés aussi niveaux ou règles de visibilité) sur les propriétés d’une classe
(attributs et opérations)
{ Elle n'a pas accès aux attributs des objets de la classe.
y Visibilité : Type d’accessibilité, détermine donc si d'autres éléments peuvent
{ Accède uniquement à des attributs étendus. utiliser ces éléments.

17 18

Classe Classe
Visibilité Relations entre classes

y Trois niveaux de visibilité possibles (pour les attributs ou les


opérations) :
{ Public « + » : publique y L’association
Ù Visible par tous
y L’agrégation
{ Protected « # » : protégé
Ù Visiblepar la classe et ses sous-classes y La composition
Ù Ne peut être utilisée que par des instances de la classe elle-même ou y L’héritage
bien par les descendants directs de cette classe.
{ Private « - » : privé y La dépendance
Ù Visible à la classe seule
Ù Ne peut être utilisée que par des instances de la classe elle-même.
Ù C'est le niveau de protection le plus fort.

{ Si aucun symbole n’est spécifié, la visibilité est par défaut privée.

19 20
Classe Classe
L’association L’association

y Association simple:
{ Binaire
y Relation d'association: { représentée par un trait entre les classes.

{ Relation structurelle entre classes d’objets { possède un nom.

{ Précise que les objets d'un élément sont reliés aux objets { généralement navigable de manière bidirectionnelle.

d'un autre élément { a une multiplicité.

y Une association exprime une connexion sémantique { peut être dotée de rôles.

Rôle1 Nom_ass Rôle2


entre classes Classe1 Mult 1 Mult 2 Classe2

21 22

Classe Classe
L’association L’association

y Multiplicité (cardinalité) d’une association :


y Nom d’une association :
{ permet le contrôle du nombre d'objets intervenant dans chaque
{ Exemple : instance d'une association.
Est employé par Société { Syntaxe : MultMin..MultMax.
Personne
{ * à la place de MultMax signifie plusieurs sans préciser de nombre.
{ Un sens de lecture peut être précisé par < ou > { n..n se note aussi n , et 0..* se note * .

Classe A Nom > Classe B


Un article n'appartient qu'à une seule
{ Exemple : catégorie (1) ;
une catégorie concerne plus de 0
< Travaille pour articles, sans maximum (*).
Société Personne

* Est employé par 0..1 Société


Personne

23 24
Classe Classe
L’association L’association

y Navigabilité d’une association :


y Multiplicité (cardinalité) d’une association : { Une association est par défaut navigable dans les deux sens.

1. 1 : Un et un seul { On peut restreindre la navigabilité d'une association à un seul sens à l'aide

2. 0..1 : Zéro ou un d'une flèche.


Ù permet de spécifier dans quel(s) sens il est possible de traverser l'association.
3. n : exactement "n" (n, entier naturel > 0) exemples : "1", "7" …
Ù indique que les instances d'une classe ne "connaissent" pas les instances d'une
4. n..m : de "n" à "m" (entiers naturels ou variables, m > n)Æ exemples : autre.
"0..1", "3..n", "1..31"
5. * : de zéro à plusieurs (équivalent à "0..n" et "0..*")
Connaissant un article on connaît
6. 1..* : de un à plusieurs les commentaires, mais pas
7. n..* : "n" ou plus (n, entier naturel ou variable) Æ exemples : "0..*", "5..*" l'inverse.

25 26

Classe Classe
L’association L’association

y Rôle :
y Association réflexive :
{ quant une classe participe à une association, elle y joue un rôle spécifique,
spécifié par le rôle (mis à l’extrémité d’une association) { L'association la plus utilisée est l'association binaire.

{ indispensable pour les associations réflexives { Parfois, les deux extrémités de l'association pointent vers la même classe.
Dans ce cas, l'association est dite réflexive.
Rôle1 Nom_ass Rôle2 Æ Elle s’applique à des objets d’une même classe.
ClasseA ClasseB

Rôle 1: joué par la classeA dans Nom_ass


Rôle 2: joué par la classeB dans Nom_ass

Employeur
Société Personne
Employé

Pilote
Avion Personne
Passager
27 28
Classe Classe
Exercice 1: lecture d’un diagramme declasses: Exercice 2: Description d’un système de fichiers

Compte Banque
1..4 0..* 1..* 1..*
Client numéro ➢ Un utilisateur possède au moins un répertoire
titulaires numéro
solde
nom
... 0..* ➢ Un répertoire appartient à un et un seul utilisateur
1 signataire
1 ➢ Un répertoire peut contenir d ’autres répertoires
Consortium
CarteBleue ➢ Un utilisateur peut accéder à au moins un répertoire
0..* * 1
➢ Un répertoire peut être accédé par au moins un utilisateur
Code
retraitMax EstAcceptéPar 0..*
> Distributeur
1..*

29 30

Classe Classe
Correction exercice 2: L’association

y Associations n-aires :
Contenus
<Contient { lie plus que deux classes (dite d’arité n).
0..* { Notation avec un losange central pouvant éventuellement accueillir
Est propriétaire de> 1..* une classe-association.
1..1
Contenant { La multiplicité de chaque classe s'applique à une instance du losange.
Répertoire 0..1
Utilisateur

1..* Peut accéder à> 1..*


utilisateur autorisé

31 32
Classe Classe
L’association L’association

y Classe-association: Classesassociatives
{ Une association peut être raffinée et avoir ses propres attributs, ou
Les classes associatives sont des associations mais aussi des classes.
opérations qui ne sont disponibles dans aucune des classes qu'elle lie. Æ Elles ont donc les mêmes propriétés et peuvent par exemple être liées par des
{ Comme dans le modèle objet seules les classes peuvent avoir des attributs, associations.
cette association devient alors une classe appelée classe-association.

employé société
Personne Société
0..2
*
Emploi

* salaire
FicheDePaye
augmenter()

33 34

Classe Classe
L’association L’association

y Qualification ou Restriction des opérations : Consiste à


sélectionner un sous-ensemble d’objets parmi l’ensemble des Un qualifieur est un attribut (ou un ensemble d'attributs) dont la valeur sert à déterminer l'ensemble
des instances associées à une instance via une association.
objets qui participent à une association (en spécifiant un ou
plusieurs attributs).
Repertoire nom Fichier
0..1

"Pour un répertoire, à un nomdonné on associe qu'un fichier (ou 0 s'il existe aucun fichier de ce nom
dans ce répertoire). "

Correspond à la notion intuitive d'index absente ci-dessous

Repertoire Fichier
*

35 36
Classe Classe
L’association L’association

y Qualification ou Restriction des opérations :


{ L’objet sélectionné par la valeur du qualificatif est appelé objet y Contraintes sur les associations :
cible. L’association est qualifiée. { Sont des relations sémantiques définies sur une relation ou un
{ Un qualificatif agit toujours sur une association de
groupe de relations.
multiplicité plusieurs du côté cible (avant qualification). { Permettent d’étendre ou de préciser la sémantique

{ Donc, un des avantages : réduire la multiplicité. { Permettent de restreindre le nombre d’instances visées

y Les types de contraintes:


{ Ordonné
{ Sous-ensemble

{ Ou-exclusif

cibles

37 38

Classe Classe
L’association L’association

y Contrainte {ordonnée}
y Contrainte {sous-ensemble}
{ Peut être placée sur le rôle pour spécifier qu’une relation
{ Indique qu’une collection est incluse dans une autre collection
d’ordre décrit les objets placés dans la collection
y Exemple
y Exemple Parents d’élèves

Personne Diplôme *
1 Classe {Sous-ensemble} Personne
0..* *
Délégués
{Ordonnée}

La liste de diplômes est triée


Les délégués de la classe ne peuvent être qu’un sous-ensemble des parents d’élèves
39 40
Classe Classe
L’association L’association
L’ agrégation
y Contrainte {Ou-exclusif}
{ Précise que pour un objet donné, une seule association parmi y C’est une forme particulière d'association.
un groupe d’associations est valide y Elle représente la relation d'inclusion d'un élément dans un
ensemble : relation d’un ensemble à ses parties: relation «tout-
y Exemple partie».
y L'ensemble est l'agrégat et la partie l'agrégé.
y Durées de vie indépendantes du tout et des parties : une
instance de l’agrégé peut exister sans l’agrégat (et
inversement).
y Représentée par l'ajout d'un losange vide du côté de l'agrégat.
Une personne ne peut être à la fois enseignant et étudiant dans une université

41 42

Classe Classe
L’association L’association
La composition Composition
y C’est une contenance structurelle entre instances. La cardinalité ne peut être que de 1 maximum coté composant!
y Agrégation forte
y La destruction ainsi que la copie de l'objet composite (l'ensemble)
impliquent respectivement la destruction ou la copie de ses
composants (les parties).
y Coïncidence des cycles de vie : Une instance de composant ne peut être liée Exemples:
qu'à un seul agrégat
y Comme notation, on utilise un losange plein.

1
Pneu
4
Voiture Roue
1
Jante

43 44
Classe Classe
Héritage (2)
Héritage (1)
y Les classes enfants possèdent toutes les propriétés (attributs et
opérations) des classes parents Sauf les propriétés privées.
y L'héritage est une relation de spécialisation/ généralisation.
y Toutes les associations de la classe parent s'appliquent, par
défaut, aux classes dérivées (classes enfants).

La classe enfant est la classe Par héritage d'Article, un


spécialisée (Livre) livre a systématiquement :
La classe parent est la classe •un prix,
générale (Article) •une désignation
•et une opération
acheter().
•Toutes les associations de
la classe Article
45 46 ah 2015-2016

Classe Classe
Héritage (3)
Héritage (4)
y Héritage multiple:
y Une classe peut avoir plusieurs classes parents. On parle
alors d'héritage multiple. y On peut ajouter des contraintes sur les liens de
généralisation/spécialisation
y Par défaut, les liens sont {exclusif} ou {disjoint}
y Il peuvent aussi être :
{ {Chevauchement} ou {inclusif}

{ {Complet}

{ {Incomplet}

47 48
Classe Classe
Héritage (5) Héritage (6)
y Par défaut, les liens sont {exclusif} ou {disjoint} : y Liens {Complet}
{ deux sous classes ne peuvent pas avoir des instances communes. { Indique que la généralisation est terminée

y Liens {Chevauchement} ou {inclusif} { Il n’est pas possible de rajouter des sous-classes

{ deux sous classes peuvent avoir des instances communes. y Liens {Incomplet}
{ Désigne une généralisation extensible

Personne Personne
Personne Etre Vivant

{disjoint} {Inclusif}
{disjoint}
{Incomplet}
{Complet}
homme femme Enseignant Chercheur
homme femme Poissons Oiseaux

49 50

Classe Classe
Héritage et classe-association Dépendance
y Classe-association: y Une dépendance est une relation unidirectionnelle exprimant
{ Une classe d’association peut participer au modèle (on peut une dépendance sémantique entre les éléments du modèle.
par exemple la spécialiser). y Un élément A dépend d'un élément B, lorsque A utilise des
services de B (flèche ouverte pointillée)
y Une modification de l'élément dont on dépend, peut nécessiter
une mise à jour de l'élément dépendant.

Æ La classe Confrontation possède une


méthode confronter dont deux paramètres
51 52 sont du type Stratégie
Correction de l’application 1:
Application 1:
y Un client fait * réservations.
y Dans un guichet de vente de tickets de cinéma :
y 1 réservation faite par 1 client.
{ Un client peut avoir plusieurs réservations. y 2 types de réservations :
{ Chaque réservation est faite par un seul client. y individuelle Æ 1 ticket
{ Il existe 2 types de réservations : individuelle qui donne droit à un seul y abonnement Æ * tickets.
ticket et abonnement qui donne droit à plusieurs tickets. y 1 ticket est affecté
y soit à une réservation individuelle
{ Chaque ticket est affecté soit à une réservation individuelle soit à un
y soit à un abonnement.
abonnement.
y 1 séance donne droit
{ Chaque séance donne droit à plusieurs tickets disponibles, chacun y * tickets disponibles,
avec un numéro de siège. y chacun a 1 num de siège.
{ A la séance correspond une date, une heure et plusieurs films. y A 1 séance correspond
Travail demandé: Donnez le diagramme de classes correspondant. y une date, une heure
y et plusieurs spectacles

53 2015-2016 54 UML et PU 2ème IM - ISAMM - S. Ben Abdallah

Application 2:’’Réservation de vols dans une agence de


voyage’’
• Des compagnies aériennes proposent différents vols.
• Un vol est ouvert à la réservation et fermé 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.
ager.
• Une réservation peut être annulée ou confirmé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 des aéroports.
rts.
• Une escale a une heure d’arrivée et une heure de départ.
part
• Chaque55 aéroport dessert une ou plusieurs villes.
55

Vous aimerez peut-être aussi