Académique Documents
Professionnel Documents
Culture Documents
Introduction à UML
2
Plan du chapitre
I. Introduction
II. Diagrammes de classes: définitions ,utilisation & exemple
III. Paquetages
IV. Classe représentation UML
V. Propriétés : attributs et relations
VI. Encapsulation & exemple
VII. Relations entre classes
VIII. Héritage simple & héritage multiple
IX. Polymorphisme
X. Construction d’un DC
XI. Exercice d’application
3
Introduction
Le système est composé d'objets qui interagissent entre eux et avec les
acteurs pour réaliser ces cas d'utilisation.
4
Diagramme de classes: exemple
5
Diagramme de classes : définitions
Point central de la modélisation du système pour exprimer sa structure statique.
6
Utilisation du Diagramme de classes :
Lors de l’analyse et de la conception:
– Définitions formelles des objets qui composent le système à partir des cas
d’utilisation et des diagrammes d’interaction (séquences et collaboration).
– Bases conceptuelles pour les diagrammes d’´etat-transition, de déploiement, ...
Lors de l’implantation :
– Génération automatique des structures statiques du système (classes,
relations, ...).
7
Diagramme de classes: Les Classes
8
Les Classes
Une classe est la description d'un ensemble d'objets ayant une sémantique, des
attributs, des méthodes et des relations en commun.
Elle spécifie l'ensemble des caractéristiques qui composent des objets de même type.
Selon l'avancement de la
modélisation, ces
informations ne sont pas
forcement toutes connues.
9
Classes : Représentation UML
Représentation UML: On peut ne pas visualiser les attributs et/ou les opérations, afin de
ne pas alourdir inutilement le schéma.
Exemple:
10
Propriétés : attributs et opérations
Les attributs et les opérations sont les propriétés d'une classe.
Leur nom commence par une minuscule.
Un attribut décrit une donnée de la classe.
Une opération est un service offert par la classe (un traitement que les objets
correspondant peuvent effectuer)
Article
+Désignation : string
+Prix : float=0
Exemple: +avisInternautes: commentaire [0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
+getPrix(): float
11
Propriété: Attribut
Définition : propriété définie par un nom, un type et éventuellement une valeur initiale.
Les types des attributs et leurs initialisations ainsi que les modificateurs d'accès peuvent être
précisés dans le modèle
Syntaxe UML :[ visibilité ] nom attribut [ multiplicité ]:type attribut [ = valeur initiale ]
visibilité : (privé; public et protégé)
nom attribut : identificateur de l’attribut, unique au sein de la classe.
multiplicité : l’attribut représente un ensemble de valeurs;
exemple de tableau: Parents[ 1..2 ] : Personne.
valeur initiale : valeur prise par l’attribut lors de l’instanciation de la classe (valeur en concordance avec
le type de l’attribut). Article
+Désignation : string
+Prix : float= 0
+avisInternautes: commentaire
[0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
12 +getPrix(): float
Les opérations
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.
Article
Désignation : string
Prix : float=0
avisInternautes: commentaire [0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
13 +getPrix(): float
Les opérations
Syntaxe UML:
[ visibilité ] nom opération ( [ arguments ] ) : type retourné propriétés
visibilité: (privé; public et protégé)
nom opération : identificateur de l’opération, unique au sein de la classe.
type retourné : type de la valeur retournée par l’opération; si omis l’opération ne
retourne aucune valeur.
Exemple:
14
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 » .
Package (paquetage):
Les packages contiennent des éléments de modèle de haut niveau, comme des
classes, des diagrammes de cas d'utilisation ou d'autres packages. On organise les
éléments modélisés en packages et sous-packages.
15
Encapsulation
Visible
B
Visible
Héritage
Visible
C
16
Exemple d'encapsulation des packages
Les modificateurs d'accès sont également applicables aux opérations.
17
Diagramme de classes: Les associations/relations
18
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe
La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction
19
Association
Définition : relation entre au moins deux classes qui entraînent des connexions entre leurs instances.
Représentation UML: trait reliant les deux classes en relation.
Exemple:
Appartenir
Note : ne pas utiliser à la fois le nommage d’une association et les rôles des extrémités de la même
association.
20
Multiplicités des associations
La notion de multiplicité permet le contrôle du nombre d'objets intervenant dans chaque instance
d'une association.
Exemple:: un article n'appartient qu'à une seule catégorie (1) ; une catégorie concerne plus de 0
articles, sans maximum (*).
21
Navigabilité d'une association
La navigabilité permet de spécifier dans quel(s) sens il est possible de traverser
l'association à l'exécution.
On restreint la navigabilité d'une association à un seul sens à l'aide d'une flèche.
22
Association : rôles des extrémités
• Les extrémités des associations peuvent être qualifiées par des rôles.
• Un rôle indique comment une classe Source voit une classe Destination.
23
Associations réflexives
L'association la plus utilisée est l'association binaire (reliant deux classes).
Parfois, les deux extrémités de l'association pointent vers la même classe. Dans ce cas,
l'association est dite « réflexive » .
Exemple:
0..1
Est le supérieur de 0..*
A pour enfant
24
Association : contraintes
Les contraintes (prédéfinies) souvent utilisées :
{ordonné}
{sous ensemble}
{xor}
{addOnly}
{frozen}
25
Association : contraintes
Contrainte {ordonné} Indique que les objets seront ordonnés à chaque opération de
création, modification, suppression, …
Exemple: Les comptes d’une personne sont ordonnés
Contrainte {sous-ensemble} : Indique qu’une collection est incluse dans une autre.
Elle nécessite la présence d’au moins deux relations
Exemple: Les personnes qui jouent le rôle de délégué font partie des personnes
26
Association : contraintes
Contrainte {xor}: Indique que parmi un groupe d’associations, une seule est
valide à la fois
Exemple: Un PC Portable est alimenté soit à partir d’une batterie, soit à partir
d’un secteur
27
Association : contraintes
Contrainte {addOnly}:La contrainte prédéfinie {addOnly} autorise l’ajout de
nouveaux objets, mais pas leur suppression ni leur mise à jour.
Exemple
28
Association : contraintes
Contrainte {frozen}: La contrainte prédéfinie {frozen} interdit l’ajout, la
suppression ou la mise à jour des liens d’un objet vers les objets de la classe
associée, après l’initialisation du premier.
Exemple:
29
Classe-association
Une association peut être raffinée et avoir ses propres attributs, qui ne sont
disponibles dans aucune des classes qu'elle lie.
Cette association devient alors une classe appelée « classe-association » .
Une classe-association peut avoir d’association avec d’autres classes
Exemple:
30
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe
La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction
31
Association de type agrégation
Une agrégation est une forme particulière d'association.
Elle représente la relation d'inclusion d'un élément dans un ensemble.
On représente l'agrégation par l'ajout d'un losange vide du côté de l'agrégat.
Une agrégation dénote une relation d'un ensemble à ses parties. L'ensemble est
l'agrégat et la partie l'agrégé.
Equipe Département
Joueurs Enseignants
32
Association de type agrégation : exemple
Exemple:
33
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe
La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction
34
Association de type composition
La relation de composition décrit une contenance structurelle entre instances. On
utilise un losange plein.
La composition implique :
– la durée de vie des composants est la même que celle du composite.
– la multiplicité du côté du composite prend ses valeurs dans 0 ou 1.
Une instance de la partie n'appartient jamais à plus d'une instance de l'élément
composite.
35
Composition et agrégation
Dès lors que l'on a une relation du tout à sa partie, on a une relation d'agrégation ou de
composition.
La composition est aussi dite « agrégation forte » .
Pour décider de mettre une composition plutôt qu'une agrégation, on doit se poser
les questions suivantes :
Est-ce que la destruction de l'objet composite (du tout) implique nécessairement la
destruction des objets composants (les parties) ? C'est le cas si les composants n'ont pas
d'autonomie vis-à-vis des composites.
Lorsque l'on copie le composite, doit-on aussi copier les composants, ou est-ce qu'on peut
les « réutiliser » , auquel cas un composant peut faire partie de plusieurs composites ?
Si on répond par l'affirmative à ces deux questions, on doit utiliser une composition.
36
Exemple composition et agrégation
La création (copie, destruction) du composite (container) implique la
création (copie, destruction) de ses composants
Un composant appartient à au plus un composite
37
Exercice 1: énoncé
Un hôtel est composé d’au moins deux chambres. Chaque chambre dispose d’une
salle d’eau qui peut être une douche ou une salle de bain. L’hôtel héberge des
personnes. Il peut employer du personnel et est dirigé par un des employés. L’hôtel
a les caractéristiques suivantes : une adresse, le nombre de pièces, la catégorie.
Une chambre est caractérisée par le nombre et le type de lits, le prix et le numéro.
On peut calculer le chiffre d’affaires, le loyer en fonction des occupants.
1. Donnez le diagramme de classes.
2. Utilisez les contraintes pour affiner les relations.
38
Exercice1 : Corrigé
39
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe
La relation de composition
décrit une contenance
Une relation d'héritage est structurelle entre instances
une relation de
généralisation/spécialisation
permettant l'abstraction
40
Relation d'héritage
L'héritage une relation de spécialisation/généralisation.
L’ élément plus spécifique peut contenir des informations qui lui sont propres, à
condition que ces informations et la description des éléments plus généraux soient
totalement cohérentes.
42
Relation d'héritage et propriétés
43
Représentation UML
Représentation UML : flèche triangulaire blanche orientée vers la classe la plus
générale.
44
Héritage multiple
Une classe peut avoir plusieurs classes parents. On parle alors d'héritage multiple.
Le langage C++ est un des langages objet permettant son implantation effective.
Java ne le permet pas.
Exemple:
45
Polymorphisme
• Définition : mécanisme permettant à une classe fille la spécialisation d’opérations.
46
Exemple concret
Pour compléter ce qui a été dit sur le polymorphisme, on fait l'exemple des animaux.
On manipule les animaux(chien , chat et canari) et sur l'un d'entre eux, on veut lui
faire faire la méthode « être content ».
Mais comme il ne font pas l'action de la même façon, on doit avant analyser le type
d'animaux :,.
47
Application:
Soient les phrases suivantes :
• Un répertoire contient des fichiers
• 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
48
Exercice d’application
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 ( prénom, tél,
mail) d’un enseignant ou d’un élève.
Travail
49 demandé: Elaborez le diagramme de classes correspondant
50
Construction d'un diagramme de classes
1) Trouver les classes du domaine étudié ;
Souvent, concepts et substantifs du domaine.
2) Trouver les associations entre classes ;
Souvent, verbes mettant en relation plusieurs classes.
3) Trouver les attributs des classes ;
Souvent, substantifs correspondant à un niveau de granularité plus fin que les classes.
Les adjectifs et les valeurs correspondent souvent à des valeurs d'attributs.
4) Organiser et simplifier le modèle en utilisant l'héritage;
5) Tester les chemins d'accès aux classées ;
6) Itérer et raffiner le modèle.
51
Schéma Récapitulatif
52