Académique Documents
Professionnel Documents
Culture Documents
PLAN DU COURS
1. Conception Orientée Objet
Introduction à l’approche orientée objet
Notion de l’objet et la classe
Les Concepts de base de l’orienté objet
Encapsulation
Abstraction
Héritage
Polymorphisme
1
12/05/2021
CONCEPTION ?
I N T R O D U C T I O N À L’A P P R O C H E O R I E N T É E O B J E T
L’A P P R O C H E O R I E N T É E O B J E T
I N T R O D U C T I O N À L’A P P R O C H E O R I E N T É E O B J E T
• Dans l'approche objet les données et les traitements concernant ces données sont
regroupés dans des enBtés appelées objets
2
12/05/2021
• La POO est uBlisée aujourd'hui dans tous les domaines de l'informaBque : parallélisme,
communicaBon, bases de données,...
• La POO vise le développement des modules réu/lisables. Elle vise la construcBon de
logiciel à parBr d'une bibliothèque de composants élémentaires
L’A P P R O C H E O R I E N T É E O B J E T
I N T R O D U C T I O N À L’A P P R O C H E O R I E N T É E O B J E T
• Dans une approche Orientée Objet (OO), le logiciel est considéré comme une
3
12/05/2021
P O U R Q U O I L’A P P R O C H E O R I E N T É E O B J E T ?
I N T R O D U C T I O N À L’A P P R O C H E O R I E N T É E O B J E T
L’ O B J E T
N O T I O N D E L’ O B J E T E T D E L A C L A S S E
• Entité conceptuelle
Défini&on
• Entité logicielle
4
12/05/2021
L’ O B J E T
N O T I O N D E L’ O B J E T E T D E L A C L A S S E
• En/té cohérente rassemblant des données et du code travaillant sur ces données
• Structure de données qui répond à un ensemble de messages
• Caractérisé par :
E TAT E T C O M P O R T E M E N T D ’ U N O B J E T
N O T I O N D E L’ O B J E T E T D E L A C L A S S E
État Comportement
10
5
12/05/2021
11
• Les a,ributs :(appelés aussi variables d'instances): Ils ont un nom et un type : soit un
type de base (simple ou construit), soit une classe (l'a<ribut référence un objet de la
même ou une autre classe)
• Les méthodes membres : Elles sont les opéra+ons applicables a un objet de la classe.
Elles peuvent modifier tout ou en par+e l’état d’un objet et retourner des valeurs
calculées a par+r de cet état
12
6
12/05/2021
E N C A P S U L AT I O N
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
• Un utilisateur peut utiliser un objet sans savoir comment il fonctionne (ex: un enfant sait
se servir d'un téléviseur, malgré la complexité de cet appareil)
13
E N C A P S U L AT I O N
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
14
7
12/05/2021
ABSTRACTION
CONCEPTS DE BASE DE L’ORIENTÉ OBJET
15
MODULARITÉ
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
Administra3on
Scolarité
Système de gestion de
Service de stage
l'université
16
8
12/05/2021
HÉRITAGE
CONCEPTS DE BASE DE L’ORIENTÉ OBJET
17
H É R I TA G E
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
18
9
12/05/2021
Q U ’ H É R I T E -T- O N ?
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
19
INTÉRÊT DE L’HÉRITAGE
CONCEPTS DE BASE DE L’ORIENTÉ OBJET
• Ceci permet :
• Éviter la duplicaBon du code
• Encourager la réuBlisaBon du code
20
10
12/05/2021
H É R I TA G E
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
• Héritage mul3ple : certains langages orientes objet, tels que le C++, permeEent de faire de
l’héritage mulBple, ce qui signifie qu’ils offrent la possibilité de faire hériter une classe de
deux ou plusieurs superclasses. Ainsi, ceEe technique permet de regrouper au sein d'une
seule et même classe les aEributs et les méthodes de plusieurs classes
21
HÉRITAGE SIMPLE
CONCEPTS DE BASE DE L’ORIENTÉ OBJET
Plus
abstrait
Moins
abstrait
• Les éléments au même niveau hiérarchique devaient être au même niveau d'abstracBon
22
11
12/05/2021
H É R I TA G E M U LT I P L E
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
23
P O LY M O R P H I S M E
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
• Lisibilité du code
• Généricité du code
24
12
12/05/2021
P O LY M O R P H I S M E
C O N C E P T S D E B A S E D E L’ O R I E N T É O B J E T
25
26
13
12/05/2021
U N S E U L M O D È L E N E S U F F I T PA S
INTRODUCTION À UML
27
28
14
12/05/2021
• Java, C++, VB
Défini&on • GénéraBon de code et reverse engineering
29
HISTORIQUE
I N T R O D U C T I O N À UML
• Années 80 :
§ Méthodes MERISE
§ SéparaBon des données et des traitements
• Début des années 90 :
§ AppariBon de la programmaBon objet Þ nécessite une méthodologie adaptée
§ AppariBon de plus de 50 méthodes entre 1990 et 1995
• 1994 : Consensus sur 3 méthodes
§ OMT de James Rumbaugh : représenta3on graphique des aspects sta3ques,
dynamiques et fonc3onnels d'un système
§ OOD de Grady Booch : concept de package
§ OOSE de Ivar Jacobson : descripBon des besoins de l'u3lisateur
30
15
12/05/2021
HISTORIQUE
I N T R O D U C T I O N À UML
• Consensus entre OMT, OOD et OOSE pour créer une méthode commune
§ Þ UML : Unified Modeling Language (Langage de Modélisation Unifié)
• 1997 : Définition de la norme UML comme standard de modélisation des systèmes
d'information objet par l'OMG (Object Management Group)
31
• Les diagrammes
§ Un diagramme est une représenta3on visuelle de l'ensemble des éléments qui consBtuent
le système
§ Ils servent à visualiser un système sous différents angles (uBlisateur, administrateur, etc.)
§ Dans les systèmes complexes, un diagramme ne fournit qu'une vue parBelle du système
• Þ L'ensemble des diagrammes réunis permet d'obtenir une vue globale du système à
concevoir
32
16
12/05/2021
• Vue d’implémentation
Ø Dépendances entre les modules
33
34
17
12/05/2021
Diagramme
des Cas d’U.lisa.on
Diagramme UML
35
Défini&on
• Représenter les interactions entre le système et ses utilisateurs
• Apporter une vision utilisateur mais pas informatique
36
18
12/05/2021
Défini&on
concernés Vérifier le
solde
Client Retirer de
l'argent
37
38
19
12/05/2021
39
• Exigences Fonctionnelles
• Définir une fonction du système à développer
• Décrit ce que le système doit faire
• Exemples :
• Inscrire un étudiant, calculer la moyenne, imprimer bulletin, imprimer attestation
• Exigences Non-Fonctionnelles
• Performance, Robustesse, Convivialité, Maintenabilité
• Exemples :
• Le temps de réponse à une inscription ne doit pas dépasser 30 secondes
• Le coût du projet ne doit pas être supérieur à 150K
40
20
12/05/2021
Ajouter des
étudiants
Acteur
41
42
21
12/05/2021
• Acteurs : ils sont des personnes, des organisations ou autres systèmes jouant un rôle dans une
ou plusieurs activités du système. Ils sont modélisés par une icône humanoïde ou une icône
adaptée à la nature de l'acteur
• Les cas d'utilisation : séquence d'actions représentant une valeur mesurable pour un acteur du
système. Les Use Case sont représentés en utilisant des ellipses
• Associations : elles représentent les interactions entre les acteurs et les Use Case. Les
associations sont modélisés par des lignes continues
• Frontières du Système (optionnelles) : ce sont des rectangles permettant de représenter les
limitations du système
• Packages (optionnelles) : en UML, les packages sont utilisés pour grouper les Use Case en groupe
en fonction d'un découpage donné du système
43
• Chaque acteur doit être nommé par un nom qui reflète son rôle
• ReprésentaBon graphique standard de l’acteur en UML est l’icône appelée s3ck
man, avec le nom de l’acteur sous le dessin
• On peut également figurer un acteur sous d’un classeur stéréotypé, avec le mot-clé
<<Actor>>
44
22
12/05/2021
45
Use Case
Association
Acteur
46
23
12/05/2021
• Règle de nommage
• Verbe à l'infinitif + complément
• Saisir les notes
• Inscrire les étudiants
• Du point de vue de l'acteur (pas du système)
47
• Le diagramme de cas d’uBlisaBon est un schéma qui montre les cas d’uBlisaBon (ovales)
reliés par des associaBons (lignes) à leurs acteurs
• Chaque associaBon signifie simplement «parBcipe à»
• Un cas d’uBlisaBon doit être relié à au moins un acteur
• Un cas d’uBlisaBon se représente par une ellipse contenant l’in9tulé du cas d’uBlisaBon
• Dans le cas où l’on désire présenter les aEributs ou les opéraBons du cas d’uBlisaBon, il est
préférable de le représenter sous la forme d’un classeur stéréotypé << use case >>
48
24
12/05/2021
49
50
25
12/05/2021
• Les relations entre les cas d’utilisation ont pour but de décomposer le système en
fonctionnalités à granularité plus fine
§ L’inclusion
§ L’extension
• La relation de généralisation/spécialisation, dite aussi la relation d’héritage
51
• Un Use Case inclus est une sous-fonc3on obligatoire du Use Case dans lequel il est inclus
• Permet de décomposer la complexité des Use Case
• L'inclusion se traduit par un trait disconBnu partant de la sous-foncBon et orienté vers le
Use case l'incluant. La flèche est labélisée par le mot-clé << include >>
• Dans cet exemple, On ne peut pas passer de commandes sans payer
52
26
12/05/2021
• Les inclusions Permettent de décomposer la complexité des Use Case, en sous cas
plus simples
• Exemple : Une opération de retrait et une opération de transfert nécessitent toutes deux
une opération de vérification de l'identité du client.
• Effectuer un retrait inclut nécessairement une phase d’authentification avec un code
53
54
27
12/05/2021
55
rupture de stock
Extension Points
condition
56
28
12/05/2021
57
• Il est possible de généraliser les acteurs ainsi que les use case
• La généralisaBon se traduit par une flèche orientée partant de l'en3té la plus
spécifique vers l'en3té la plus générique
Spécifique Générique
58
29
12/05/2021
§ Opérations administrateur
§ Etc.
• Les regrouper par domaine fonc3onnel
§ Gérer les contrats
§ Gérer les clients
§ Etc.
59
Le diagramme de cas d’utilisation décrit les grandes fonctions d’un système du point de vue des
acteurs, mais n’expose pas de façon détaillée le dialogue entre les acteurs et les cas d’utilisation.
Une description textuelle couramment utilisée se compose de trois parties :
60
30
12/05/2021
61
62
31
12/05/2021
63
Diagramme
De classes
Diagramme UML
64
32
12/05/2021
DIAGRAMME DE CLASSES
LES DIAGRAMMES UML
Objec&fs
65
CLASSE
LES DIAGRAMMES UML
66
33
12/05/2021
• Le nom de la classe peut être qualifié par un « stéréotype » ou d’autres précisions (auteur
de la classe par exemple)
• Un nom de classe est toujours au singulier : pas de s à la fin, même si conceptuellement
une classe est un ensemble d’instances.
67
ATTRIBUTS
LES DIAGRAMMES UML
• La descripBon complète des aEributs d’une classe comporte les caractérisBques suivantes :
• Nom d’a4ribut : nom unique dans sa classe
• Mul6plicité : la mulBplicité indique le nombre minimum et le nombre maximum
de valeurs possibles de l’aEribut pour une instance de la classe. Par défaut, la
mulBplicité est [1,1]. Exemple : prénom [1,5] si une personne peut avoir au
maximum cinq prénoms (faculta've)
• Type : type de l’aEribut (enBer, réel, etc.)
• Valeur ini6ale : la valeur par défaut à la créaBon de l’aEribut (faculta've)
68
34
12/05/2021
ATTRIBUTS (SUITE)
LES DIAGRAMMES UML
• Un attribut dont la valeur peut être calculée à partir d’autres attributs de la classe est un
attribut dérivé qui se note « /nom de l’attribut dérivé ». Par exemple : /surface, /somme,
/moyenne, etc.
• Un attribut est appelé identifiant (marqué avec {id}) de la classe s’il joue un rôle particulier
en permettant de repérer de façon unique chaque instance de la classe.
• Exemple :
69
OPÉRATIONS
LES DIAGRAMMES UML
• La description complète d’une opération d’une classe peut comporter un certain nombre de
caractéristiques :
• Nom d’opération
• Paramètres : chaque paramètre peut être décrit, en plus de son nom, par son
type et sa valeur par défaut. L’absence de paramètres est indiquée par ( )
• Type du résultat : type de valeur retournée. Par défaut, une opération ne
retourne pas de valeur
70
35
12/05/2021
OPÉRATIONS (SUITE)
LES DIAGRAMMES UML
• Une méthode est l’implémentaBon d’une opéraBon sur une classe. Ainsi, en spécificaBon et
concepBon orientée objet (UML, etc.), on parle d’opéra6ons et en programmaBon orientée
objet (JAVA, C++, etc.), on parle de méthodes.
• Exemple : La classe « Voiture » possède trois opéraBons sans paramètres ni valeur de retour
71
72
36
12/05/2021
73
User
74
37
12/05/2021
CLASSE ABSTRAITE
LES DIAGRAMMES UML
• Une opéraBon est dite abstraite si on connaît sa signature, mais pas la manière dont elle
peut être uBlisé
• Une classe est dite abstraite lorsqu’elle définit au moins une opéraBon abstraite
• Une classe abstraite se disBngue en UML en ayant le nom de la classe abstraite en italique
75
INTERFACE
LES DIAGRAMMES UML
• Une interface est une classe spéciale dont toutes les opéra6ons sont abstraites
• Une interface se note en UML avec le stéréotype « interface »
76
38
12/05/2021
PACKAGE
LES DIAGRAMMES UML
77
• La relaBon d’import permet à une classe d’un package d’uBliser les classes d’un autre
package
• La relaBon est monodirecBonnelle, elle comporte un package source et un package cible
• La relaBon d’import s’exprime avec une flèche en poinBllé
78
39
12/05/2021
• La dépendance est la forme la plus faible de rela6on entre classes. Une dépendance entre
deux classes signifie que l’une des deux uBlise l’autre
• Une dépendance peut s’interpréter comme une relaBon de type « uBlise un »
• Elle est habituellement uBlisée lorsqu’une classe uBlise un objet d’une autre classe comme
argument dans la signature d’une opéraBon ou alors lorsque l’objet de l’autre classe est créé
à l’intérieur de l’opéraBon
• Elle est représentée par un trait disconBnu orienté, reliant les deux classes. La dépendance
est souvent stéréotypée « use » pour mieux expliciter le lien sémanBque entre les éléments
du modèle
79
ASSOCIATION
LES DIAGRAMMES UML
Définition
80
40
12/05/2021
ASSOCIATION / MULTIPLICITÉ
LES DIAGRAMMES UML
• Nombre d’instances d’une classe pouvant être mis en relaBon avec les instances d’une autre
classe
• La mulBplicité est une informaBon portée par le rôle, qui quanBfie le nombre de fois où un
objet parBcipe à une instance de relaBon
• Exemple :
q Un professeur peut enseigner plusieurs cours
q Un cours peut être dispensé par 0 ou un professeur
81
Indicateur Signification
1 Un et un seul
0..1 Zéro ou un
n..n’ D’un nombre entier à un autre nombre entier (ex: 0..5 ou 1..3 ou etc.)
* Zéro à plusieurs
0..* Zéro à plusieurs
1..* Un à plusieurs
n Exactement n (entier)
82
41
12/05/2021
ASSOCIATION BIDIRECTIONNELLE
LES DIAGRAMMES UML
• L’associaBon est représentée par un simple trait conBnu, reliant les deux classes
• Chaque classe parBcipant à l’associaBon connaît le nombre d’instances que peut contenir
l’autre classe
83
84
42
12/05/2021
ASSOCIATION UNIDIRECTIONNELLE
LES DIAGRAMMES UML
85
ASSOCIATION RÉFLEXIVE
LES DIAGRAMMES UML
• Dans cet exemple, un employé peut être le manager de zéro ou plusieurs autres employés
• Tout employé est géré par exactement un manager (qui est aussi un employé)
86
43
12/05/2021
CLASSE D’ASSOCIATION
LES DIAGRAMMES UML
87
ASSOCIATION N-AIRE
LES DIAGRAMMES UML
• Une association qui lie plus de deux classes entre elles, est une association n-aire
• L’association n-aire se représente par un losange d’où part un trait allant à chaque classe
• L’association n-aire est imprécise, difficile à interpréter et souvent source d’erreur, elle est
donc très peu utilisée
• La plupart du temps, elle est utilisée au début du projet, puis elle est vite remplacée par un
ensemble d’associations binaires afin de lever toute ambiguïté
À remplacer par
88
44
12/05/2021
Banque Compte
1 1..*
Compte
Banque NCompte
1 1
89
90
45
12/05/2021
AGRÉGATION / COMPOSITION
LES DIAGRAMMES UML
• Dans cet exemple, les pneus du vélo peuvent être créés avant le vélo (dans une autre
compagnie)
• L’agrégaBon se traduit par un losange non rempli du côté de la classe agrégat
91
AGRÉGATION
LES DIAGRAMMES UML
Titre
0..1
1..1
0..1
Texte
92
46
12/05/2021
COMPOSITION
LES DIAGRAMMES UML
93
94
47
12/05/2021
GÉNÉRALISATION/SPÉCIALISATION (RAPPEL)
LES DIAGRAMMES UML
• RelaBon entre des classes où l’une des classes partage la structure ou le comportement
d’une autre classe
• Hiérarchie d’abstracBon où des sous-classes héritent d’une ou plusieurs super-classes
Ø Héritage simple
Ø Héritage mulBple
• La généralisaBon est une rela6on non réflexive; une classe ne peut pas dériver d’elle-même
• La généralisaBon est une rela6on non symétrique; si une classe B dérive d’une classe A,
alors la classe A ne peut pas dériver de la classe B
• La généralisaBon est par contre une rela6on transi6ve; si une classe C dérive d’une classe
B qui dérive elle-même d’une classe A, alors C dérive également de A
95
• Une sous-classe (classe fille) hérite des attributs et des opérations de sa super-classe
(classe mère)
• La relation d’héritage est représentée par un triangle vide afin d’indiquer le sens
96
48
12/05/2021
97
HÉRITAGE MULTIPLE
LES DIAGRAMMES UML
98
49
12/05/2021
POLYMORPHISME
LES DIAGRAMMES UML
• Lisibilité du code
• Généricité du code
99
POLYMORPHISME
LES DIAGRAMMES UML
100
50
12/05/2021
101
Diagramme
D ’o b j e t s
Diagramme UML
102
51
12/05/2021
DIAGRAMME D’OBJETS
LES DIAGRAMMES UML
103
DIAGRAMME D’OBJETS
LES DIAGRAMMES UML
• Le nom d’un objet est souvent écrit en souligné, et il commence par une minuscule
• Des groupes d’objets instances d’une même classe peuvent se représenter sous une forme
imbriquée
• Le symbole « : » sépare le nom de l’instance du nom de sa classe
104
52
12/05/2021
DIAGRAMME D’OBJETS
LES DIAGRAMMES UML
• L’état d’un objet est déterminé par les valeurs de ses aEributs :
Ø Il est possible de nommer un état afin d’indiquer clairement dans quel état se
trouve un objet
• Les représentaBons des objets peuvent contenir des aEributs significaBfs
105
DIAGRAMME D’OBJETS
LES DIAGRAMMES UML
106
53
12/05/2021
DIAGRAMME D’OBJETS
LES DIAGRAMMES UML
• Les objets sont relies par des instances d’associaBons, les liens
• Un lien représente une rela6on entre objets à un instant donné
107
Diagramme
De Séquences
Diagramme UML
108
54
12/05/2021
INTRODUCTION
LES DIAGRAMMES UML
109
INTRODUCTION
LES DIAGRAMMES UML
• Le diagramme de séquences montre quel sont les objets par6cipants à l’exécuBon du use-
case et quels sont les messages qu’ils échangent
• Il représente:
• Une suite spécifique d’événements survenant dans le système
• Une séquence spécifique d’acBons et d’interacBons entre les acteurs et le
système
110
55
12/05/2021
• Principe de base :
• ReprésentaBon graphique de la chronologie des échanges de messages avec le
système ou au sein du système
• Il suit une chronologie de haut en bas
• La « vie » de chaque enBté est représentée ver6calement
• L’échange des messages est représenté horizontalement
• Deux scenarios possibles:
• Normal : Tout se passe bien; correspond au déroulement du cas d’uBlisaBon
• Secondaire : DescripBon des cas alternaBfs (plusieurs choix), d’excepBons et
d’erreurs
111
112
56
12/05/2021
113
Ligne de vie
114
57
12/05/2021
§ Remarque : l’ordre dans lequel apparaissent les barres verBcales d’objets, n’a pas
d’importance (lisibilité)
115
• La ligne de vie des objets est représentée par une ligne verBcale en traits poinBllés, placée
sous l’objet concerné
objet a : Classe A
objet b : Classe B
Détruire
Ligne de vie X
116
58
12/05/2021
destruc6on de l’objet
117
retourY
Exécu&on/
Exécu&on/
période d’ac&vité
période d’ac&vité
118
59
12/05/2021
COMPOSANTS : MESSAGES
LES DIAGRAMMES UML
119
COMPOSANTS : MESSAGES
LES DIAGRAMMES UML
• Le diagramme étant orienté de haut vers le bas, l’ordre d’appari6on des messages
représente l’ordre d’appel des ac6ons
• Un objet peut envoyer des messages à lui même (ces messages sont dits réflexifs)
• Les flèches peuvent être orientées dans un sens ou dans l’autre
• Plusieurs types de messages existent, les plus communs sont :
• L’invocaBon d’une opéraBon : appel d’une méthode de l’objet cible (synchrone)
• L’envoie d’un signal : uBlisé pour la gesBon évènemenBelle (asynchrone)
• CréaBon ou destrucBon d’une instance de classe au cours du cycle principal
120
60
12/05/2021
COMPOSANTS : MESSAGES
LES DIAGRAMMES UML
• Un message doit toujours contenir : un nom qui fait référence à l’action / méthode de la
classe cible qui doit être appelée et exécutée ou du signal envoyé
• Nous pouvons adjoindre au nom facultativement :
• Une numérotation devant le nom message (séparé du nom du message par 2
point " : "). La numérotation s’effectue séquentiellement à partir de 1
• Les paramètres passés à la méthode ou au signal (entre parenthèses après le
nom du message)
121
TYPES DE MESSAGES
LES DIAGRAMMES UML
122
61
12/05/2021
TYPES DE MESSAGES
LES DIAGRAMMES UML
• Message synchrone
§ Appel bloquant l’émetteur
§ L’émetteur attend la fin de l’exécution du
récepteur
§ Graphiquement, un message synchrone est
représenté par une flèche pleine
§ Les messages synchrones peuvent renvoyer un
message de retour, représentés par des flèches en
traits discontinus
§ Le retour d'un message synchrone peut ne pas
être représenté, le retour est alors implicite
123
TYPES DE MESSAGES
LES DIAGRAMMES UML
• Message asynchrone
§ Les messages asynchrones sont des
messages non bloquants
§ Ils n’interrompent pas l’exécuBon de
l’émeEeur
§ L’émeEeur n’aEend pas la fin de
l’exécuBon du récepteur
§ Graphiquement, un message asynchrone
est représenté par une flèche ouverte
§ Les messages asynchrones peuvent aussi
renvoyer un message de retour (facultaBf)
124
62
12/05/2021
TYPES DE MESSAGES
LES DIAGRAMMES UML
• Message Minuté
§ Bloque l’expéditeur pendant un temps donné, objet a : Classe A objet b : Classe B
en attendant la prise en compte du message
par le récepteur
Message(20 secondes)
§ Après le délais, l’expéditeur est libéré et peut
envoyer d’autres messages
125
TYPES DE MESSAGES
LES DIAGRAMMES UML
126
63
12/05/2021
TYPES DE MESSAGES
LES DIAGRAMMES UML
Client GAB
Introduire carte
Vérification de
validité de carte
Demande d’accès
127
TYPES DE MESSAGES
LES DIAGRAMMES UML
• Message conditionnel
§ Un message conditionnel est composé des branches représentant chacune le
message correspondant à un condition indiquée entre crochets
128
64
12/05/2021
TYPES DE MESSAGES
LES DIAGRAMMES UML
129
MESSAGES ET CLASSES
LES DIAGRAMMES UML
• La noBon de message dans le diagramme de séquence correspond aux méthodes dans les
classes
130
65
12/05/2021
• Créa%on d’objets
§ En faisant pointer un message de créa6on sur le rectangle symbolisant l’objet
dans le diagramme
• Destruc%on d’objets
§ Représenté par une croix à la fin de la ligne de vie
§ Un objet peut s’auto détruire
§ Un objet peut se détruire par un message pointé sur la croix
131
RÉCAPITULATIF
LES DIAGRAMMES UML
Période d’activité/
point de contrôle
Auto destruction
de l’objet 5
Message de
créa-on de
l’objet 3
Message de Destruc-on
destruc-on de l’objet 3
de l’objet 3
132
66
12/05/2021
FRAGMENT
LES DIAGRAMMES UML
Nom du fragment
(faculta-f)
Type de fragment
Fragment combiné
Contenu du
fragment
133
TYPES : FRAGMENT
LES DIAGRAMMES UML
134
67
12/05/2021
TYPES : FRAGMENT
LES DIAGRAMMES UML
135
TYPES : FRAGMENT
LES DIAGRAMMES UML
136
68
12/05/2021
TYPES : FRAGMENT
LES DIAGRAMMES UML
137
FRAGMENT
LES DIAGRAMMES UML
138
69
12/05/2021
Diagramme
D’activités
Diagramme UML
139
DIAGRAMME D’ACTIVITÉ
LES DIAGRAMMES UML
140
70
12/05/2021
• Théoriquement, tous les mécanismes dynamiques pourraient être décrits par un DAC,
mais seuls les mécanismes complexes ou intéressants méritent d’être représentés
141
v Ac6on
§ Plus peBte unité de traitement pouvant être exprimée en
UML
§ Elle a une incidence sur l’état du système
§ Permet de construire des comportements
142
71
12/05/2021
v Transition
§ Elle traduit le passage d’une activité à une autre
§ Elle est représentée par des flèches en traits pleins
§ Elle est déclenchée dès que l’action source est terminée
§ Enclenche automatiquement le début de la prochaine
Défini&on activité
143
v Nœud d’ac6on
§ AcBvité exécutable consBtuant l’unité fondamentale
d’exécuBon dans une acBvité
§ Liés à des opéraBons qui peuvent s’exécuter
§ Doit avoir obligatoirement un arc entrant
144
72
12/05/2021
TYPES DE NŒUDS
LES DIAGRAMMES UML
• Nœud iniBal
• Nœud de fin d’acBvité
• Nœud de fin de flot
• Nœud de décision
• Nœud de fusion
• Nœud de bifurcaBon
• Nœud d’union
145
73
12/05/2021
§ Nœud de décision
• Nœud de contrôle permeEant de faire un choix entre plusieurs flots sortants
• Généralement accompagné de condi6ons de garde entre deux [ ] pour
condiBonner le choix
• Graphiquement, il est représenté par un losange
Mesurer la
température
Chauffer Refroidir
147
§ Nœud de fusion
• Nœud de contrôle qui rassemble plusieurs flots alternatifs entrants en un seul
flot sortant
• Il ne peut pas être utilisé pour synchroniser des flots concurrents mais pour
accepter un flots parmi plusieurs
• Graphiquement, il est représenté comme un nœud de décision, par un losange
valider Annuler
Retrait de la carte
148
74
12/05/2021
149
150
75
12/05/2021
151
EXEMPLE
LES DIAGRAMMES UML
152
76
12/05/2021
COULOIRS D’ACTIVITÉS
LES DIAGRAMMES UML
153
LOTS D’ACTIONS
LES DIAGRAMMES UML
154
77
12/05/2021
LOTS D’ACTIONS
LES DIAGRAMMES UML
155
Diagramme
D ’é t a t s - t r a n s i 7 o n s
Diagramme UML
156
78
12/05/2021
DIAGRAMME D’ÉTATS-TRANSITIONS
LES DIAGRAMMES UML
157
158
79
12/05/2021
CYCLE DE VIE
LES DIAGRAMMES UML
§ Les états qui peuvent être pris par les objets d’une classe
§ Les ac3vités qui surviennent tant que l’objet est à un état donnée
159
NOTION D’ÉTAT
LES DIAGRAMMES UML
État
État ini8al État final
intermédiaire
160
80
12/05/2021
NOTION DE TRANSITION
LES DIAGRAMMES UML
• Les états sont reliés par des connexions unidirectionnelles appelées transitions
État A État B
Disponible Réservée
161
NOTION D’ÉVÉNEMENT
LES DIAGRAMMES UML
162
81
12/05/2021
TYPES D’ÉVÉNEMENTS
LES DIAGRAMMES UML
163
EN RÉSUMÉ
LES DIAGRAMMES UML
événement
État A État B
164
82
12/05/2021
ÉTATS SPÉCIAUX
LES DIAGRAMMES UML
État 1 État X
165
NOTION DE GARDE
LES DIAGRAMMES UML
• Une garde est une condi3on booléenne qui permet ou non le déclenchement d’une
transiBon lors de l’occurrence d’un événement
Événement [condi8on]
État A État B
• Exemple :
Retour [Bon état] Retour [Mauvais état]
Emprunté
En
Disponible
réparation
166
83
12/05/2021
• Une action représente le lien entre les opérations définies dans la spécification d’une classe
et les événements apparaissant dans le diagramme d’états-transitions
• Chaque transition peut avoir une action à exécuter lorsqu’elle est déclenchée
• L’action est considérée comme instantanée et atomique
• Une action correspond à l’exécution d’une des opérations déclarées dans la classe de l’objet
destinataire de l’événement
Événement / Ac8on
• Exemple : État A État B
• Il pleut / ouvrir parapluie
• Salut / serrer main
• L’action a accès aux paramètres de l’événement ainsi qu’aux attributs de l’objet sur lequel
elle s’applique
167
• Lorsque l’événement se produit, si la condition est vérifiée, alors l’action est effectuée
168
84
12/05/2021
169
170
85
12/05/2021
• Contrairement à une action, une activité est une opération qui dure un certain temps
• Les activités sont associées aux états
171
172
86
12/05/2021
173
EXEMPLE : DAB
LES DIAGRAMMES UML
174
87
12/05/2021
GÉNÉRALISATION D’ÉTATS
LES DIAGRAMMES UML
AB
e1
A B e1
A B
e2 e2
C e2
175
• Objec3fs :
Ø Hiérarchiser les états
Ø Structurer les comportements complexes
Ø Factoriser les acBons
176
88
12/05/2021
• Objectifs :
Ø Hiérarchiser les états
Ø Structurer les comportements complexes
Ø Factoriser les actions
177
ÉTATS ORTHOGONAUX
LES DIAGRAMMES UML
178
89
12/05/2021
179
• En phase d’analyse :
Ø Description de la dynamique du système vu de l’extérieur
Ø Synthèse des scénarios liés aux cas d’utilisation
Ø Événements = action des acteurs
• En phase de conception :
Ø Description de la dynamique d’un objet particulier
Ø Événements = appels d’opérations
180
90
12/05/2021
FIN
181
91