Vous êtes sur la page 1sur 22

Conception Orientée Objet (UML)

Chapitre 4 : Diagramme de classes


Diagrammes de classes

Introduction :

Le diagramme de classes est le point central dans un
développement orienté objet.

De point de vue Analyse : Il a pour objectif de décrire la
structure des entités manipulées par les utilisateurs.

De point de vue conception, le diagramme de classes
représente la structure d’un code orienté objet ou, à un
niveau de détail plus important, les modules du langage
de développement.

Les diagrammes de classes permettent de spécifier la
structure et les liens entre les objets dont le système est
composé.

Conception Orientée Objet (UML) 2


Diagrammes de classes : Exemple

Conception Orientée Objet (UML) 3


Diagrammes de classes : Notions de base

Classe : description abstraite d’un ensemble d’objets qui
partagent les mêmes propriétés attributs et associations et
comportements opérations et états (personne, voiture, ...).

Attribut : donnée déclarée au niveau d’une classe,
éventuellement typée, et valorisée par chacun des objets de cette
classe. Un attribut peut posséder une multiplicité et une valeur
initiale.

Opération : élément de comportement des objets, défini de
manière globale dans leur classe. Une opération peut déclarer des
paramètres eux-mêmes typés ainsi qu’un type de retour. Une
méthode est une implémentation d’une opération.

Conception Orientée Objet (UML) 4


Diagrammes de classes : Notions de base

Association : relation sémantique durable entre deux
classes qui décrit un ensemble de liens entre objets.
Une association est décrite par un nom et des rôles,
également optionnels. On spécifie sa navigabilité en
ajoutant une flèche.

Rôle : nom donné à une extrémité d’association ; par
extension, manière dont les instances d’une classe
voient celles d’une autre classe au travers d’une
association.

Conception Orientée Objet (UML) 5


Diagrammes de classes : Notions de base

Multiplicité : le nombre d’objets min..max de la classe
cible qui peuvent participer à une relation avec un objet
de la classe source dans le cadre d’une association.

Multiplicités fréquentes :

0..1 = optionnel

mais pas multiple

1 = exactement 1

0..* = * = quelconque

1..* = au moins 1

Conception Orientée Objet (UML) 6


Relations entre classes

Agrégation : Une agrégation est un cas particulier d’association
non symétrique exprimant une relation de contenance. Les
agrégations n’ont pas besoin d’être nommées : implicitement elles
signifient « contient », « est composé de ».

Composition : Une composition est une agrégation plus forte
impliquant que :

un élément ne peut appartenir qu’à un seul agrégat composite
(agrégation non partagée) ;

la destruction de l’agrégat composite entraîne la destruction de
tous ses éléments (le composite est responsable du cycle de
vie des parties).

Conception Orientée Objet (UML) 7


Relations entre classes

Généralisation, super-classe, sous-classe (l’héritage) :

Une super-classe est une classe plus générale reliée à une ou plusieurs
autres classes plus spécialisées (sous-classes) par une relation de
généralisation. Les sous-classes « héritent » des propriétés de leur super-
classe et peuvent comporter des propriétés spécifiques supplémentaires.

Exemple : les voitures, les bateaux et les avions sont des moyens de transport.
Ils possèdent tous une marque, un modèle, une vitesse, etc. Par contre, seuls
les bateaux ont un tirant d’eau et seuls les avions ont une altitude…

Conception Orientée Objet (UML) 8


Relations entre classes

Classes abstraites et Interface:

Une classe abstraite est simplement une classe qui ne s’instancie pas
directement mais qui représente une pure abstraction afin de factoriser des
propriétés communes. Elle se note en italique. C’est le cas de Moyen de
Transport et Article dans les exemples précédents.

Interface : Ensemble nommé d’opérations qui caractérise le comportement
d’un élément. Une classe peut implémenter plusieurs interfaces fournies et
dépendre de plusieurs autres requises.

Conception Orientée Objet (UML) 9


Relations entre classes

Classes abstraites :

Une méthode est dite abstraite lorsqu'on connaît son entête mais
pas la manière dont elle peut être réalisée.

Une classe est dite abstraite lorsqu'elle définit au moins une
méthode abstraite ou lorsqu'une classe parent contient une méthode
abstraite non encore réalisée.

Conception Orientée Objet (UML) 10


Attribut de classe

Par défaut, les valeurs des attributs définis dans une
classe diffèrent d'un objet à un autre. Parfois, il est
nécessaire de définir un attribut de classe (statique) qui
garde une valeur unique et partagée par toutes les
instances.

Graphiquement, un attribut de classe est souligné

Conception Orientée Objet (UML) 11


Opérations de classe

Semblable aux attributs de classe

Une opération de classe est une propriété de la
classe, et non de ses instances.

Elle n'a pas accès aux attributs des objets de la
classe.

Conception Orientée Objet (UML) 12


Classe d’association

Classe d’association : association promue au rang de
classe. Elle possède tout à la fois les caractéristiques
d’une association et d’une classe et peut donc porter des
attributs qui se valorisent pour chaque lien entre objets.

Conception Orientée Objet (UML) 13


Les paquetage (package)

Package : mécanisme général de regroupement d’éléments
en UML, qui est principalement utilisé en analyse et
conception objet pour regrouper des classes et des
associations. Les packages sont des espaces de noms :
deux éléments ne peuvent pas porter le même nom au sein
du même package. Par contre, deux éléments appartenant à
des packages différents peuvent porter le même nom.

La structuration d’un modèle en packages est une activité
délicate. Elle doit s’appuyer sur deux principes
fondamentaux : cohérence et indépendance.

La cohérence consiste à regrouper les classes qui sont
proches d’un point de vue sémantique.

L’indépendance s’efforce de minimiser les relations entre
packages, c’est-à-dire plus concrètement les relations
entre classes de packages différents. 14
Conception Orientée Objet (UML)
Les paquetage (package)

Conception Orientée Objet (UML) 15


L’encapsulation

L'encapsulation est un principe de conception consistant à
protéger le cœur d'un système des accès intempestifs
venant de l'extérieur.

En UML, utilisation de modificateurs d'accès sur les
attributs ou les classes :

Public ou + : propriété ou classe visible partout

Protected ou # : propriété ou classe visible dans la classe et
par tous ses descendants.

Private ou - : propriété ou classe visible uniquement dans la
classe

Package, ou ~ : propriété ou classe visible uniquement dans
le paquetage

Il n'y a pas de visibilité par défaut

Conception Orientée Objet (UML) 16


L’encapsulation

Conception Orientée Objet (UML) 17


Récapitulatif d'un diagramme de classes

Prof. M. BENADDY Conception Orientée Objet (UML) 18


Récapitulatif d'un diagramme de classes

Prof. M. BENADDY Conception Orientée Objet (UML) 19


Construction d'un diagramme de classes

Etude de cas : système de réservation de vol : Cette
étude de cas concerne un système simplifié de réservation
de vols pour une agence de voyages.
1) Des compagnies aériennes proposent différents vols.
2) Un vol est ouvert à la réservation et fermé sur ordre de la
compagnie.
3) Un client peut réserver un ou plusieurs vols, pour des passagers
différents.
4) Une réservation concerne un seul vol, et un seul passager.
5) Une réservation peut être annulée ou confirmée.
6) Un vol a un aéroport de départ et un aéroport d’arrivée.
7) Un vol a un jour et une heure de départ et un jour et une heure
d’arrivée.
8) Un vol peut comporter des escales dans des aéroports
9) Une escale a une heure d’arrivée et une heure de départ.
10)Chaque aéroport dessert une ou plusieurs villes
Conception Orientée Objet (UML) 20
Construction d'un diagramme de classes


Trouver les classes du domaine étudié ;

Souvent, concepts du domaine.

Trouver les associations entre classes ;

Souvent, verbes mettant en relation plusieurs
classes.

Trouver les attributs des classes ;

Trouver les opérations.

Organiser et simplifier le modèle en utilisant le
principe de l'héritage ;

Tester les chemins d'accès aux classées ;

Itérer et raffiner le modèle.
Conception Orientée Objet (UML) 21
Construction d'un diagramme de classes
Compagnie
Client Aeriène
- nom : String - nom : String
- adresse : String
- tél : String

1..*
propose
1..*
1..1
a effectué Vol 0..* 1..1 Aeroport
0..* - Date_depart : Date depart
0..* - nom : String
- heure_depart : String 1..1
- Date_arrive : Date 0..* Arrivé
Reservation 0..*
0..* concerne - heure_arrive : String
- date : Date Escale
- numero : int 1..1 + ouvrir () : void Ordered
+ fermer () : void 0..1
+ annuler () : void ...
+ confirmer () : void 0..*
...
0..* InfoEscale
ville
concerne
1..1

Passager
- nom : String

Prof. M. BENADDY Conception Orientée Objet (UML) 22

Vous aimerez peut-être aussi