Académique Documents
Professionnel Documents
Culture Documents
ZAKRANI Abdelali
ENSAM – CASABLANCA
Année universitaire 2019-2020
Plan
Introduction
◦ Cycle de vie d’un logiciel
◦ Approche objet
◦ Historique d’UML
Diagrammes de l’UML
Modélisation Fonctionnelle
◦ Diagramme de cas d’utilisation
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 3
1
3/17/2020
Introduction
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 4
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 5
2
3/17/2020
Analyse
Design
Implémentation
Tests
Maintenance
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 7
3
3/17/2020
Modélisation
Un modèle est “une description complète d’un
système à partir d’une vue particulière”. Un modèle
est une simplification de la réalité.
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 8
Intérêt de la modélisation
Modéliser le processus de développement
permet de
◦ Bien répartir les tâches et d'automatiser certaines d'entre elles ;
◦ Réduire les coûts et les délais ;
◦ Assurer un bon niveau de qualité et une maintenance efficace.
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 9
4
3/17/2020
Intérêt de la modélisation
Modéliser un système avant sa réalisation permet de
◦ Comprendre le fonctionnement du système ;
◦ Maîtriser sa complexité ;
◦ Assurer sa cohérence ;
◦ Pouvoir communiquer au sein de l'équipe de
réalisation.
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 10
10
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 11
11
5
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 12
12
Avantages :
◦ Organisée, réfléchie, logique.
◦ Ordonnée, réduit la complexité.
Inconvénients :
◦ Comment assurer l'évolution du logiciel ?
◦ Comment réutiliser les parties déjà développées ?
◦ Comment structurer les données ?
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 13
13
6
3/17/2020
Approche Objet
1966 : une idée à Oslo
1980 : Smalltalk
1988 : Schlaer/Mellor (OOSA)
Les objets sont des entités autonomes qui collaborent
afin de fournir les fonctionnalités du système
Les objets représentent des entités du monde réel de
l’application
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 14
14
De 1989 à 1994
15
7
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14 -15 16
16
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 17
17
8
3/17/2020
18
En résumé
UML est langage de modélisation, pas une méthode
UML est un langage de modélisation objet
UML convient pour toutes les méthodes objet
UML est dans le domaine public
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 19
19
9
3/17/2020
Diagrammes UML
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 20
20
Diagrammes UML
Il existe 2 types de vues du système qui comportent
chacune leurs propres diagrammes :
Les vues statiques:
◦ diagrammes de cas d'utilisation
◦ diagrammes d'objets
◦ diagrammes de classes
◦ diagrammes de composants
◦ diagrammes de déploiement
Les vues dynamiques:
◦ diagrammes de collaboration
◦ diagrammes de séquence
◦ diagrammes d'états-transitions
◦ diagrammes d'activités
ENSAM – Casablanca
ZAKRANI / MOO par UML 21
21
10
3/17/2020
Diagrammes UML
Il existe 2 types de vues du système qui comportent chacune leurs
propres diagrammes :
ENSAM – Casablanca
ZAKRANI / MOO par UML / 14-15 22
22
ENSAM – Casablanca
ZAKRANI / MOO par UML 23
23
11
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML 24
24
Cas d’utilisation
Représentation graphique
ENSAM – Casablanca
ZAKRANI / MOO par UML 25
25
12
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML 26
26
Les acteurs
Un acteur est une personne ou un système qui
interagit avec le système, en échangeant
l’information (en entrée et en sortie)
ENSAM – Casablanca
ZAKRANI / MOO par UML 27
27
13
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML 28
28
29
14
3/17/2020
30
31
15
3/17/2020
Relations
Include
32
Relations (suite)
Extend
Le comportement de B est optionnel et ne se déclenche
que par une condition dans le comportement de A
Exemple:
33
16
3/17/2020
Relations (suite)
Généralisation
Le cas A est une abstraction du cas B
Exemple:
34
Relations (Exemple)
35
17
3/17/2020
Exercice 1
Choisissez et dessinez les relations entre les cas suivants :
1. Une agence de voyages organise des voyages où l’hébergement se fait en hôtel.
Le client doit disposer d’un taxi quand il arrive à la gare pour se rendre à l’hôtel.
36
Solution
1. Relations entre cas d’utilisation et cas
internes
Include
Include
Include
37
18
3/17/2020
Solution
2. Relation d’extension
38
Solution
3. Relation de généralisation
39
19
3/17/2020
40
Diagramme de cas d’utilisation complet du GAB
41
20
3/17/2020
42
43
21
3/17/2020
44
Description scénario nominal
45
22
3/17/2020
46
Description scénario d’échec
47
23
3/17/2020
Diagramme de séquence
48
Diagrammes d’interaction
Les diagrammes d’interaction montrent comment des
instances au cœur du système communiquent pour
réaliser une certaine fonctionnalité.
Les interactions sont nombreuses et variées
49
24
3/17/2020
Diagramme de séquence
Diagramme de séquence permet de représenter les
interactions entre objets en indiquant la chronologie
des échanges. Cette représentation peut se réaliser par cas
d’utilisation en considérant les différents scénarios associés.
Les diagrammes de séquences présentent les intérêts
suivants :
▪ permettre de mieux comprendre le fonctionnement du
système; modéliser la vie des objets dans le temps et leur
chronologie ;
▪ d’être très utiles dans la description des cas d’erreur et
des cas limites d’utilisation du système
▪ d’être une aide précieuse pour documenter les méthodes
des classes.
50
Période
d’activité
de l’objet
Message
synchrone
Message
asynchrone
Message de
retour
Ligne de vie
51
25
3/17/2020
52
53
26
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML 54
54
ENSAM – Casablanca
ZAKRANI / MOO par UML / 13-14 55
55
27
3/17/2020
ENSAM – Casablanca
ZAKRANI / MOO par UML / 13-14 56
56
ENSAM – Casablanca
ZAKRANI / MOO par UML / 13-14 57
57
28
3/17/2020
Fragment d’interaction
Dans un diagramme de séquence, il est possible de
distinguer des sous-ensembles d’interactions qui
constituent des fragments.
Un fragment d’interaction se représente
globalement comme un diagramme de séquence dans
un rectangle avec indication dans le coin à gauche du
nom du fragment.
Un port d’entrée et un port de sortie peuvent être
indiqués pour connaître la manière dont ce fragment
peut être relié au reste du diagramme
58
Fragment d’interaction
Exemple fragment d’interaction avec port d’entrée
et de sortie
Fragment
d’interaction
Port d’entrée
et port de
sortie
ZAKRANI / MOO par UML 59
59
29
3/17/2020
Fragment d’interaction
Fragment d’interaction combiné
Un fragment d’interaction dit combiné correspond à un
ensemble d’interaction auquel on applique un opérateur.
60
Fragment d’interaction
Opérateur alt
L’opérateur alt correspond à une instruction de test avec
une ou plusieurs alternatives possibles. Il est aussi permis
d’utiliser les clauses de type sinon.
Alternative 1
Alternative 2
61
30
3/17/2020
Fragment d’interaction
Opérateur opt
L’opérateur opt (optional) correspond à une instruction
de test sans alternative (sinon).
62
Fragment d’interaction
Opérateur loop
L’opérateur loop correspond à une instruction de
boucle qui permet d’exécuter une séquence
d’interaction tant qu’une condition est satisfaite.
63
31
3/17/2020
Fragment d’interaction
Opérateur par
L’opérateur par (parallel) permet de représenter deux
séries d’interactions qui se déroulent en parallèle.
64
Fragment d’interaction
Opérateur strict/weak sequencing
Les opérateurs strict et weak permettent de représenter une série
d’interactions dont certaines s’opèrent sur des objets indépendants :
L’opérateur strict est utilisé quand l’ordre d’exécution des opérations doit
être strictement respecté.
L’opérateur weak est utilisé quand l’ordre d’exécution des opérations n’a
pas d’importance.
65
32
3/17/2020
Fragment d’interaction
Opérateur break
L’opérateur break permet de représenter une situation exceptionnelle
correspondant à un scénario de rupture par rapport au scénario général.
Le scénario de rupture s’exécute si la condition de garde est satisfaite.
66
Fragment d’interaction
Opérateur ignore/consider
Les opérateurs ignore et consider sont utilisés pour des fragments
d’interactions dans lesquels on veut montrer que certains messages
peuvent être soit absents sans avoir d’incidence sur le déroulement des
interactions (ignore), soit obligatoirement présents (consider).
67
33
3/17/2020
Fragment d’interaction
Opérateur critical
L’opérateur critical permet d’indiquer qu’une séquence d’interactions ne
peut être interrompue compte tenu du caractère critique des opérations
traitées. On considère que le traitement des interactions comprises dans la
séquence critique est atomique.
68
Fragment d’interaction
Opérateur neg
L’opérateur neg (negative) permet d’indiquer qu’une séquence
d’interactions est invalide.
69
34
3/17/2020
Fragment d’interaction
Opérateur assert
L’opérateur assert (assertion) permet d’indiquer qu’une séquence
d’interactions est l’unique séquence possible en considérant les messages
échangés dans le fragment. Toute autre configuration de message est
invalide.
70
Fragment d’interaction
Opérateur ref.
L’opérateur ref permet d’appeler une séquence d’interactions décrite par
ailleurs constituant ainsi une sorte de sous-diagramme de séquence.
71
35
3/17/2020
Fragment d’interaction
Opérateur ref. (Exemple)
72
Diagramme de séquence
du comportement du client banque
73
36
3/17/2020
Diagramme de classes
74
Concept d’Objet
Un objet représente une entité du monde réel (ou du monde virtuel
pour les objets immatériels) qui se caractérise par un ensemble de
propriétés (attributs), des états significatifs et un comportement.
L’état d’un objet correspond aux valeurs de tous ses attributs à un
instant donné.
Les propriétés sont définies dans la classe d’appartenance de
l’objet.
Le comportement d’un objet est caractérisé par l’ensemble des
opérations qu’il peut exécuter en réaction aux messages provenant
des autres objets. Les opérations sont définies dans la classe
d’appartenance de l’objet.
75
37
3/17/2020
76
Encapsulation
L’encapsulation consiste à regrouper dans une même classe
de la description de la structure des attributs et de la description des
opérations.
77
38
3/17/2020
Concept de Classe
Une classe est l’abstraction d’un ensemble d’objets qui possèdent
une structure identique (liste des attributs) et un même
comportement (liste des opérations).
Un objet est une instance d’une et une seule classe. Une classe
abstraite est une classe qui n’a pas d’instance. Les concepts de
classe et d’objet sont interdépendants.
78
79
39
3/17/2020
80
Classes
Une classe se représente à l’aide d’un rectangle comportant
plusieurs compartiments
Description complète
81
40
3/17/2020
Classes
Attribut:
Attribut est une propriété élémentaire d’une classe. Pour chaque
objet d’une classe, l’attribut prend une valeur.
Nom de la classe
Formalisme d’attributs de classe
Nom et caractéristique attribut1
Nom et caractéristique attribut2
…
Voiture Etudiant
Num_immatriculation: texte CNE: entier
82
Classes
Caractéristiques d’attribut:
Visibilité/Nom attribut : type [= valeur initiale {propriétés}]
– Visibilité : {+ (public), # (protégé), - (privé), ~ (package)}
– Nom d’attribut : nom unique dans sa classe.
– Type : type primitif (entier, chaîne de caractères…)– Valeur
initiale : valeur facultative donnée à l’initialisation d’un objet de la
classe.
– {propriétés} : valeurs marquées facultatives (ex. : «interdit» pour
mise à jour interdite).
Attribut dérivé: est un attribut dont la valeur peut être calculer à
partir d’autres attributs de la classe. Il se note «/nom de l’attribut
dérivé ».
83
41
3/17/2020
Classes
Opération
Une opération est une fonction applicable aux objets d’une classe.
Une opération permet de décrire le comportement d’un objet. Une
méthode est l’implémentation d’une opération.
Nom de la classe
Formalisme d’opérations de classe
Nom et caractéristique attribut1
…
Nom et caractéristique opération1
Nom et caractéristique opération2
…
Voiture Employé
marque: texte nom: texte
rouler(vitesse) consulter()
Exemples d’opérations de classe
ZAKRANI / MOO par UML / 14-15 84
84
Classes
Caractéristique d’opération
Visibilité Nom d’opération (paramètres) [:[type résultat]
{propriétés}]
– Visibilité : {+ (public), # (protégé), - (privé), ~ (package)}
– Nom d’opération : utiliser un verbe représentant l’action à
réaliser.
– Paramètres : liste de 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ètre est indiquée par ( ).
– Type résultat : type de (s) valeur(s) retourné(s) dépendant des
types disponibles dans le langage d’implémentation. Par défaut,
une opération ne retourne pas de valeur, ceci est indiqué par
exemple par le mot réservé « void » dans le langage C++ ou Java.
– {propriétés} : valeurs facultatives applicables (ex. : {query} pour
un comportement sans influence sur l’état du système).
85
42
3/17/2020
Classes
Exemple de représentation d’une classe
Voiture
Nom de la classe
marque: texte
puissance: entier
Attributs
cylindrée: entier
année: entier
/ancienneté: entier
démarrer() Attribut dérivé
Opérations rouler() Ancienneté=
freiner() diff(année courante, année)
arrêter()
86
Classes
Formalisme de représentation d’un objet
Nom de l’objet (1)
Nom de l’objet
souligné Valeur attribut 1
Valeur attribut 2 Valeurs des attributs
Valeur attribut N
87
43
3/17/2020
Classes
Visibilité des attributs et opérations
Les droits associés à chaque niveau de confidentialité sont :
Public (+) – Attribut ou opération visible par tous.
Protégé (#) – Attribut ou opération visible seulement à l’intérieur
de la classe et pour toutes les sous-classes de la classe.
Privé (-) – Attribut ou opération seulement visible à l’intérieur de
la classe.
Paquetage (~) – Attribut ou opération ou classe seulement
visible à l’intérieur du paquetage où se trouve la classe.
88
Classes
Visibilité des attributs et opérations
89
44
3/17/2020
Classes
Exemples de représentation des symboles de
visibilité
Voiture
- marque: texte
- puissance: entier
- cylindrée: entier
- année: entier
+ démarrer()
- rouler()
+ freiner()
# arrêter()
90
Lien et association
Un lien est une connexion physique ou conceptuelle
entre instances de classes donc entre objets
Une association décrit un groupe de liens ayant une
même structure et une même sémantique
Un lien est une instance d’une association. Chaque
association peut être identifiée par son nom.
Une association entre classes représente les liens
qui existent entre les instances de ces classes
91
45
3/17/2020
Lien et association
Formalisme
Exemple
Personne Voiture
Posséder
92
Rôle de l’association
Exemples
Personne Entreprise
Travailler dans
nom nom entreprise
prénom employé employeur adresse
Etudiant Université
Etudier à
CNE nom université
nom adresse
93
46
3/17/2020
Multiplicité
La multiplicité indique un domaine de valeurs pour préciser le
nombre d’instance d’une classe vis-à-vis d’une autre classe pour
une association donnée
A * 0..1 B
A 2..10 1..* B
A 1,3 2..4 B
94
Multiplicité
Exemples de multiplicité
Voiture 1 4 Roue
95
47
3/17/2020
Navigabilité
Exemples de navigabilité
Personne Copie
1 produit 1..5 d’examen
nom
X numéro copie
prénom
* vote 0..1
Electeur X Candidat
conduit
Conducteur train
96
Contraintes
Les contraintes sont des propriétés proposées dans
l’UML pour préciser la sémantique d’une association
▪ Contrainte {ordered}
Pour une association de multiplicité supérieure à 1, les liens peuvent
être :
non ordonnés (valeur par défaut),
ordonnés ou triés lorsque l’on est au niveau de l’implémentation
(tri sur une valeur interne).
97
48
3/17/2020
Contraintes
Exemples de contraintes: ordered, frozen, subset, xor,
98
Classe-association
Classe d’association = Elément ayant à la fois les
propriétés d’une classe et d’une association
99
49
3/17/2020
Association n-aire
Association n-aire = Une association parmi 3 classes
ou plus. Chaque instance de l’association est un n-tuple
de valeurs des classes respectives
100
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é
Classe A Classe B
Agrégat Agrégé
ZAKRANI / MOO par UML / 14-15 101
101
50
3/17/2020
Agrégation
Exemples d’agrégation Document
Pièce Equipe
1..*
1..*
1..* 1 Paragraphe
1..* 1..*
1..*
Mur Joueur 1..*
Phrase
102
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).
Classe A Classe B
Agrégat Agrégé
ZAKRANI / MOO par UML / 14-15 103
103
51
3/17/2020
Composition
Exemples de composition
Répertoire Commande
1 1
1 1..*
0..*
En-tête Ligne
Fichier commandes
104
Généralisation et héritage
La généralisation décrit une relation entre une classe
générale (classe de base ou classe parent) et une classe
spécialisée (sous-classe). La classe spécialisée est
intégralement cohérente avec la classe de base
Classe A Spécialisation Généralisation
(héritage)
Sous-classe A1 Sous-classe A2
105
52
3/17/2020
Généralisation et héritage
L’héritage est la propriété qui fait bénéficier à une sous
classe de la structure et du comportement de sa
surclasse. Employé
nom
Exemple de prénom
date naissance
relation de
calcuerAge()
spécialisation
106
Généralisation et héritage
Héritage multiple
Amphibie
107
53
3/17/2020
Généralisation et héritage
Classe abstraite
Une classe abstraite est une classe qui n’a pas
d’instance directe mais dont les classes descendantes ont
des instances. Dans une relation d’héritage, la super-classe
est par définition une classe abstraite
108
109
54
3/17/2020
110
111
55
3/17/2020
112
113
56
3/17/2020
114
115
57
3/17/2020
116
117
58
3/17/2020
118
119
59
3/17/2020
120
121
60
3/17/2020
Diagramme d’états-transitions
122
Diagramme d’états-transitions
Les diagrammes d’états-transitions (ou statecharts)
d’UML décrivent le comportement interne d’un objet à
l’aide d’un automate à états finis
Ils présentent les séquences possibles d’états et
d’actions qu’une instance de classe peut traiter au cours
de son cycle de vie en réaction à des événements
discrets (de type signaux, invocations de méthode).
Ils sont bien adaptés à la description d’objets ayant un
comportement d’automate.
ZAKRANI / MOO par UML / 13-14 123
123
61
3/17/2020
Diagramme d’états-transitions
Concepts de base
État-transition et événement
L’état d’un objet est défini, à un instant donné, par
l’ensemble des valeurs de ses propriétés.
Le passage d’un état à un autre état s’appelle transition.
Un événement est un fait survenu qui déclenche une
transition.
124
Diagramme d’états-transitions
Concepts de base
État-transition et événement
Il existe quatre types d’événements :
Type appel de méthode (call) – C’est le type le plus
courant que nous traiterons dans la suite de la
présentation.
Type signal – Exemple : clic de souris, interruption
d’entrées-sorties…
Type changement de valeur (vrai/faux) – C’est le
cas de l’évaluation d’une expression booléenne.
Type écoulement du temps – C’est un événement
lié à une condition de type after(durée) ou when(date).
125
62
3/17/2020
Diagramme d’états-transitions
Concepts de base
Exemple d’état-transition
126
Diagramme d’états-transitions
Concepts de base
Action et activité
Une action est une opération instantanée qui ne peut
être interrompue ; elle est associée à une transition.
Une activité est une opération d’une certaine durée
qui peut être interrompue, elle est associée à un état
d’un objet.
Formalisme d’état-transition avec activité et action
127
63
3/17/2020
Diagramme d’états-transitions
Le diagramme d’états-transitions:
Est l’enchaînement de tous les états caractéristiques
d’un objet
Il débute toujours par un état initial et se termine par
un ou plusieurs états finaux sauf dans le cas où le
diagramme d’états représente une boucle
À un événement peut être associé un message composé
d’attributs.
128
Diagramme d’états-transitions
Exemple d’un diagramme d’état-transition de
l’objet client d’une gestion commerciale
129
64
3/17/2020
Diagramme d’états-transitions
Composition et décomposition d’état
Il est possible de décrire un diagramme d’état-transition à
plusieurs niveaux
Un premier niveau, le diagramme comprendra des états
élémentaires et des états composites.
Les états composites seront ensuite décrits à un
niveau élémentaire dans un autre diagramme.
130
Diagramme d’états-transitions
Exemple d’une composition et décomposition
d’état
131
65
3/17/2020
Diagramme d’états-transitions
Point d’entrée et point de sortie
Sur une sous-machine d’état, il est possible de repérer
un point d’entrée et un point de sortie particuliers.
132
Diagramme d’états-transitions
Point de jonction
Un point de jonction permet de décomposer une transition en
deux parties en indiquant si nécessaire les gardes propres à chaque
segment de la transition.
À l’exécution, un seul parcours sera emprunté, c’est celui pour
lequel toutes les conditions de garde seront satisfaites.
133
66
3/17/2020
Diagramme d’états-transitions
Point de choix
Le point de choix se comporte comme un test de type : si
condition faire action1 sinon faire action2.
134
Diagramme d’états-transitions
Etat historique
La mention de l’historisation d’un état composite permet de
pouvoir indiquer la réutilisation du dernier état historisé en cas de
besoin.
135
67
3/17/2020
Diagramme d’activité
136
136
137
137
68
3/17/2020
138
▪ Décision
▪ Synchronisation
139
139
69
3/17/2020
142
142
Synchronisation
disjonctive et
conjonctive
143
143
70
3/17/2020
Itération
144
144
Swimlanes
145
145
71
3/17/2020
146
146
Exercice 1: Cafetière
Construire un diagramme d’activité
représentant l’utilisation d’une cafetière
électrique:
◦ Premier état: chercher du café
◦ Dernier état: Servir du café
147
147
72
3/17/2020
148
150
150
73
3/17/2020
152
152
154
74
3/17/2020
Exercice
Recette simplifiée : commencer par casser le chocolat
en morceaux, puis le faire fondre.
En parallèle, casser les œufs en séparant les blancs des
jaunes.
Quand le chocolat est fondu, ajouter les jaunes d’œuf.
Battre les blancs en neige jusqu’à ce qu’ils soient bien fermes.
Les incorporer délicatement à la préparation chocolat sans
les briser.
Verser dans des ramequins individuels.
Mettre au frais au moins 3 heures au réfrigérateur avant de
servir.
Représentez par un diagramme d’activité la recette de la
mousse au chocolat… Proposez d’abord une version simple,
en supposant que vous avez des ressources illimitées, puis
une version avec deux personnes. Complétez ensuite le
diagramme en ajoutant soit des flots d’objets
156
Exercice GAB
Réalisez un diagramme d’activité qui décrit la
dynamique du cas d’utilisation RETIRER DE
L’ARGENT.
161
75