Vous êtes sur la page 1sur 27

Conception Orientée Objet (UML)

Chapitre 4 : Diagramme de classes

IGE/S5 & SMI/S5


COO-UML
Prof. : M. BENADDY
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é.

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


Diagrammes de classes : Exemple

Prof. M. BENADDY 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.

Prof. M. BENADDY 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.

Prof. M. BENADDY 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

Prof. M. BENADDY 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).

Prof. M. BENADDY 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…

Prof. M. BENADDY 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.

Prof. M. BENADDY 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.

Prof. M. BENADDY 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é

Prof. M. BENADDY 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.

Prof. M. BENADDY 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.

Prof. M. BENADDY 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
Prof. M. BENADDY
différents.
Conception Orientée Objet (UML) 14
Les paquetage (package)

Prof. M. BENADDY 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

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


L’encapsulation

Prof. M. BENADDY 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
Prof. M. BENADDY 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.
Prof. M. BENADDY 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


Conception Orientée Objet (UML)
Diagramme d’objets

IGE/S5 & SMI/S5


COO-UML
Prof. : M. BENADDY
Diagramme d’objets

Le diagramme d'objets représente les objets d'un système
à un instant donné. Il permet de :

Illustrer le modèle de classes (en montrant un exemple
qui explique le modèle) ;

Préciser certains aspects du système (en mettant en
évidence des détails imperceptibles dans le diagramme
de classes) ;

Exprimer une exception (en modélisant des cas
particuliers, des connaissances non généralisables. . . ).

Objet : entité aux frontières bien définies possédant une
identité et encapsulant un état et un comportement ; un objet
est une instance ou occurrence d’une classe. Un objet peut
avoir connaissance d’un ou plusieurs autres objets : on parle
alors de liens entre objets.
Prof. M. BENADDY Conception Orientée Objet (UML) 24
Diagramme d’objets

Comme les classes, on utilise des cadres
compartimentés.

En revanche, les noms des objets sont soulignés et
on peut rajouter son identifiant devant le nom de sa
classe.

Les valeurs (a) ou l'état (g) d'un objet peuvent être
spécifiées.

Les instances peuvent être anonymes (a,c,d),
nommées (b,e), multiples (d) ou stéréotypées (f).

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


Diagramme d’objets

Le diagramme de classes contraint la structure et les
liens entre les objets.

Exemple : Diagramme cohérent avec le diagramme de
classes

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


Diagramme d’objets

Le diagramme de classes contraint la structure et les
liens entre les objets.

Exemple : Diagramme incohérent avec le diagramme de
classes

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

Vous aimerez peut-être aussi