1
UML
Notions de base sur ADOBE PHOTOSHOP
PREMIERE AFFICHE PHOTOSHOP
Lien cours UML : IFT6825 Génie logiciel - UML (umontreal.ca)
2
UML
C’est quoi UML?
UML se définit comme un langage de modélisation graphique et textuel destiné à comprendre et
décrire des besoins, spécifier et documenter des systèmes, esquisser des architectures
logicielles, concevoir des solutions et communiquer des points de vue.
C’est quoi le but de UML?
Fournir aux concepteurs de systèmes, ingénieurs logiciels et développeurs de logiciels des outils
pour l'analyse, la conception et la mise en œuvre de systèmes logiciels, ainsi que pour la
modélisation de processus métier et d'autres processus similaires.
C’est quoi la conception avec UML?
Le langage UML (Unified Modeling Language) est un moyen de représenter visuellement
l'architecture, la conception et la mise en œuvre de systèmes logiciels complexes. Une
application comporte des milliers de lignes de code, ce qui rend difficile la gestion des interactions
et des hiérarchies.
3
UML
Les types de diagrammes UML
4
UML
Qu’est-ce que modéliser?
Modéliser consiste à identifier les caractéristiques intéressantes d'une entité, en vue d'une
utilisation précise. Une bonne modélisation d'un système devrait permettre de faciliter la
compréhension du système en question. En effet, un bon modèle devrait réduire la complexité du
système et non de le complexifier. Également, un bon modèle devrait permettre de simuler le
système en question. Un bon modèle devrait reproduire les comportements importants du
système étudié.
Comment modéliser avec UML?
La partie la plus importante dans l'élaboration d'un modèle avec UML est de définir et visualiser le modèle à l'aide de
diagrammes.
• un diagramme UML est une représentation graphique, qui s'intéresse à un aspect précis du modèle ; c'est une perspective
du modèle, pas "le modèle"
• chaque type de diagramme UML possède une structure (les types des éléments de modélisation qui le composent sont
prédéfinis)
• un type de diagramme UML véhicule une sémantique précise (un type de diagramme offre toujours la même vue d'un
système)
• combinés, les différents types de diagrammes UML offrent une vue complète des aspects statiques et dynamiques d'un
5
Concepts importants de l’approche
objet
Concept de Classe
– Une classe est un type de données abstrait qui précise
des caractéristiques (attributs et méthodes) communes
à toute une famille d’objets et qui permet de créer
(instancier) des objets possédant ces caractéristiques.
On parle de caractéristiques ou de propriétés de
classes.
6
Concepts importants de l’approche
objet
Qu’est ce qu’un objet
– Un objet est une instance de classe (une occurrence
d'un type abstrait).
– Exemple d’un objet de la classe étudiant:
Etudiant1(matricule= « 1FCO », nom = « FOUODJI »,
prénom = « Nathanaël »,Classe = « L2F »)
Fonctions: Bavarder(), Courir(), Sauter()
7
Concepts importants de l’approche
objet
Caractéristiques d’un objet
L’identité – L’objet possède une identité, qui permet de le distinguer des autres
objets, indépendamment de son état. On construit généralement cette identité
grâce à un identifiant découlant naturellement du problème (par exemple un
produit pourra être repéré par un code, une voiture par un numéro de série, etc.)
Les attributs – Il s’agit des données caractérisant l’objet. Ce sont des variables
stockant des informations sur l’état de l’objet.
Les méthodes – Les méthodes d’un objet caractérisent son comportement,
c’est-à-dire l’ensemble des actions (appelées opérations) que l’objet est à même
de réaliser. Ces opérations permettent de faire réagir l’objet aux sollicitations
extérieures (ou d’agir sur les autres objets). De plus, les opérations sont
étroitement liées aux attributs, car leurs actions peuvent dépendre des valeurs
des attributs, ou bien les modifier.
8
Concepts importants de l’approche
objet
Comprenons tout ce qu’on vient de faire par un exemple « terre à
terre »
« Concevons un reçu de paiement des frais de formation
des étudiants »
1- identifions les caractéristiques communes aux
différents reçus
2- Créons des objets de notre reçu de paiements
9
Concepts importants de l’approche
objet
Notre reçu est:
Écrivons la classe reçu puis créons des objets de
Reçu
10
Concepts importants de l’approche
objet
Encapsulation des données
• consiste à masquer les détails d'implémentation d'un objet, en définissant une interface
• l'interface est la vue externe d'un objet, elle définit les services accessibles (offerts) aux utilisateurs de
l'objet
• l'encapsulation facilite l'évolution d'une application car elle stabilise l'utilisation des objets : on peut
modifier l'implémentation des attributs d'un objet sans modifier son interface
• l'encapsulation garantit l'intégrité des données, car elle permet d'interdire l'accès direct aux attributs des
objets (utilisation d'accesseurs)
11
Concepts importants de l’approche
objet
Héritage et Polymorphisme
• l'héritage est un mécanisme de transmission des propriétés d'une classe (ses attributs et méthodes) vers une sous-classe
• une classe peut être spécialisée en d'autres classes, afin d'y ajouter des caractéristiques spécifiques ou d'en adapter
certaines
• plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques
communes d'un ensemble de classes
• la spécialisation et la généralisation permettent de construire des hiérarchies de classes. L'héritage peut être simple ou
multiple
• l'héritage évite la duplication et encourage la réutilisation
• le polymorphisme représente la faculté d'une méthode à pouvoir s'appliquer à des objets de classes différentes
• le polymorphisme augmente la généricité du code
12
Concepts importants de l’approche
objet
Exemple d’héritage
13
Concepts importants de l’approche
objet
Exemple de Polymorphisme
14
Concepts importants de l’approche
objet
Agrégation
Il s’agit d’une relation entre deux classes, spécifiant que les objets d’une classe sont des
composants de l’autre classe. Une relation d’agrégation permet donc de définir des objets
composés d’autres objets. L’agrégation permet donc d’assembler des objets de base, afin de
construire des objets plus complexes. Une composition est une agrégation forte.
15
Concepts importants de l’approche
objet
Exemple Composition
16
Diagramme de cas d’utilisation
Objectifs
• Ce type de diagramme doit représenter le modèle conceptuel. En d'autres termes, un coup
d'oeil à ce diagramme devrait permettre une meilleure compréhension du système.
• Il sert également à présenter les interfaces entre tous les acteurs du système.
• Le diagramme de cas d'utilisation vient préciser les utilisateurs (acteurs), les besoins de
l'utilisateur et les objectifs du système que l'on modélise. En réponse à l'action d'un acteur, le
système fournit un service qui correspond à son besoin.
• Ce type de diagramme cherche à clarifier, filtrer et organiser les besoins.
Eléments de base
• Acteurs: entité externe qui agit sur le système (opérateur, autre système...)
• Use case : ensemble d'actions réalisées par le système, en réponse à une action d'un acteur
17
Diagramme de cas d’utilisation
Exemple de diagramme de cas d’utilisation
18
Diagramme de cas d’utilisation
Les acteurs
Les associations
19
Diagramme de cas d’utilisation
Les relations
20
Diagramme de cas d’utilisation
Les relations
21
Diagramme de cas d’utilisation
Les relations
22
Diagramme de cas d’utilisation
Exercice
23
Diagramme de classe
Définition
Le diagramme de classes exprime la structure statique du système en termes de classes et de
relations entre classes.
L’intérêt du diagramme de classe est de modéliser les entités du système d’information. Le
diagramme de classe permet de représenter l’ensemble des informations finalisées qui sont
gérées par le domaine. Ces informations sont structurées, c’est-à-dire qu’elles ont regroupées
dans des classes. Le diagramme met en évidence d’éventuelles relations entre ces classes. Le
diagramme de classes comporte quelques concepts : classe, attribut, identifiant, opération
(méthode) et relation
Représentation
Les classes sont représentées en UML par des rectangles divisés en trois compartiments :
• le 1er compartiment représente le nom de la classe qui n’est pas souligné ;
• le 2ème compartiment représente les attributs typés de la classe ;
• le 3ème compartiment représente les opérations (méthodes) de la classe
24
Diagramme de classes
Les attributs
Une classe correspond à un concept global d’information et se compose d’un ensemble
d’informations élémentaires, appelées attributs de classe. Un attribut représente la modélisation
d’une information élémentaire représentée par son nom et son format.
L’identifiant
L’identifiant est un attribut particulier, qui permet de repérer de façon unique chaque objet,
instance de la classe.
La notion d’opération (méthode)
L’opération représente un élément de comportement des objets, défini de manière globale dans la
classe. Une opération est une fonctionnalité assurée par une classe. La description des
opérations peut préciser les paramètres d’entrée et de sortie ainsi que les actions élémentaires à
exécuter.
25
Diagramme de classes
Visibilité et portée des attributs et des opérations
L'un des principaux concepts du paradigme objet est l'encapsulation. L'encapsulation est un mécanisme
consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de
l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les services proposés.
L'encapsulation permet donc de garantir l’intégrité des données contenues dans l'objet.
En effet, la programmation orientée objet permet de cacher l'implémentation d'un objet en ne lui permettant
d’accéder aux attributs uniquement par l'intermédiaire de méthodes crées à cet effet (on parle d'interface).
Il est ainsi possible de définir des niveaux d'encapsulation, afin de définir le type de classe ayant accès aux
attributs.
On parle de niveau de visibilité des éléments de la classe. Ces niveaux de visibilité définissent les droits
d'accès aux données selon que l'on y accède par une méthode de la classe elle-même, d'une classe héritière,
ou bien d'une classe quelconque. Il existe trois niveaux de visibilité
• publique: Les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une
classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection des données
• protégée: l'accès aux données est réservé aux fonctions des classes héritieres, c'est-à-dire par les
fonctions membres de la classe ainsi que des classes dérivées
• privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau de
protection des données le plus élevé
La notation UML permet de représenter le niveau de visibilité des attributs de façon graphique en faisant
précéder le nom de chaque attribut par un caractère représentant la visibilité:
• + défini un attribut public
• # défini un attribut protégé
• - défini un attribut privé
26
Diagramme de classes
Relations entre les classes
L’association
Une association représente une relation structurelle entre classes d’objets. La plupart des associations sont
binaires, c’est à dire qu’elles connectent deux classes. On représente une association en traçant une ligne
entre les classes associées
La multiplicité des associations
Elle définit le nombre d’instances de l’association pour une instance de la classe. La multiplicité est définie
par un nombre entier ou un intervalle de valeurs. La multiplicité est notée sur le rôle (elle est notée à
l’envers de la notation MERISE). Les valeurs de multiplicité expriment les contraintes liées au domaine de
l’application. Il est donc important de déterminer les valeurs de multiplicité optimales pour trouver le bon
équilibre entre complexité et efficacité. La multiplicité est représentée sous la forme d’un couple de
cardinalités.
27
Diagramme de classes
Nous avons:
1 Un et un seul
0..1 Zéro ou un
N ou * N(entier naturel)
M..N De M à N (entiers naturels)
0..* De zéro à plusieurs
1..* De 1 à plusieurs
Exemple
28
Diagramme de classes
Les classes-association
Les attributs d’une classe dépendent fonctionnellement de l’identifiant de la classe. Parfois, un attribut
dépend fonctionnellement de 2 identifiants, appartenant à 2 classes différentes ou il peut arriver que l’on ait
besoin de garder des informations (attributs ou opérations) propres à une association. Une classe de ce
type est appelée classe association.
29
Diagramme de classes
30
Diagramme de classes
31
Diagramme de classes
32
Diagramme de classes
33
Diagramme de classes
34
Diagramme d’objets
Objectifs
• Ce type de diagramme UML montre des objets (instances de classes dans un état particulier) et des liens
(relations sémantiques) entre ces objets à un moment donné.
• Ce diagramme doit représenter un ensemble d'instances des entités rencontrées dans un diagramme de
classe. En d'autres termes, il exprime la partie statique d'une interaction qui comprend les objets qui
collaborent mais sans aucun des messages qui circulent entre eux.
Eléments de base
• Objets:
35
Diagramme d’objets
Eléments de base
• Liens: liaison sémantique entre objets
Exemple de diagramme d’objets pour un système de communication entre la tour de contrôle et les avions
36
Diagramme d’objets
Exemple d’application
37
Diagramme d’états-transitions
Objectifs
• Ce diagramme sert à représenter des automates d'états finis, sous forme de graphes d'états, reliés par des arcs orientés qui décrivent les transitions.
• Les diagrammes d'états-transitions permettent de décrire les changements d'états d'un objet ou d'un composant, en réponse aux interactions avec d'autres
objets/composants ou avec des acteurs.
Eléments de base
• États: valeurs des attributs représentées par des noeuds
• Un diagramme d'état peut contenir plusieurs états initiaux, plusieurs états finaux
• Il peut contenir un état historique (sauvegarde de l'état d'exécution)
• Transitions: événements représentés par des arcs orientés
• Une transition représente le passage instantané d'un état vers un autre.
• Une transition est déclenchée par un événement. En d'autres termes : c'est l'arrivée d'un événement qui conditionne la transition.
• Les transitions peuvent aussi être automatiques, lorsqu'on ne spécifie pas l'événement qui la déclenche.
• En plus de spécifier un événement précis, il est aussi possible de conditionner une transition, à l'aide de "gardes" : il s'agit d'expressions
booléennes, exprimées en langage naturel (et encadrées de crochets).
Notation graphique d'un état,
transition et événement
38
Diagramme d’états-transitions
39
Diagramme d’états-transitions
40
Diagramme d’états-transitions
41
Diagramme d’états-transitions
42
Diagramme d’états-transitions
43
Diagramme d’états-transitions
44
Diagramme d’états-transitions
45
Diagramme d’états-transitions
46
Diagramme d’états-transitions
Exemple
47
Diagramme d’états-transitions
Exemple de diagramme d’états-transitions
d’une machine à laver
En phase de lustrage ou de lavage, le client peut appuyer sur le bouton d'arrêt d'urgence. S'il appuie sur ce bouton, la
machine se met en attente. Il a alors deux minutes pour reprendre le lavage ou le lustrage (la machine continue en phase
de lavage ou de lustrage, suivant l'état dans lequel elle a été interrompue), sans quoi la machine s'arrête. En phase de
séchage, le client peut aussi interrompre la machine. Mais dans ce cas, la machine s'arrêtera définitivement (avant de
reprendre un autre cycle entier).
48
Diagramme de séquence
Qu’est-ce qu’un diagramme de séquence ?
Les diagrammes de séquence sont une solution populaire de
modélisation dynamique en langage UML, car ils se concentrent
plus précisément sur les lignes de vie, les processus et les objets
qui vivent simultanément, et les messages qu'ils échangent
entre eux pour exercer une fonction avant la fin de la ligne de
vie.
Avantages d’un diagramme de séquence
• Représenter les détails d'un cas d'utilisation UML
• Modéliser le déroulement logique d'une procédure, fonction ou opération
complexe
• Voir comment les objets et les composants interagissent entre eux pour effectuer
un processus.
49
Diagramme de séquence
Formalisme
50
Diagramme de séquence
51
Diagramme de séquence
Exemple d’application
Réaliser un simple diagramme de séquence de la
Connexion à votre compte facebook
NB: Juste avec les notions déjà vues.
52
Diagramme de séquence
Exemple 2
53
Diagramme de séquence
54
Diagramme de séquence
55
Diagramme de séquence
56
Diagramme de séquence
Améliorer l’exemple d’application
57
Diagramme d’activité
Qu’est-ce qu’un diagramme d’activité?
Les diagrammes d'activité sont utilisés pour documenter le déroulement des
opérations dans un système, du niveau commercial au niveau opérationnel (de
haut en bas). En regardant un diagramme d'activité, vous trouverez des éléments
des diagrammes d'état. En fait, le diagramme d'activité est une variante du
diagramme d'état où les "états" représentent des opérations, et les transitions
représentent les activités qui se produisent quand l'opération est terminée.
L'usage général des diagrammes d'activité permet de faire apparaître les flots de
traitements induits par les processus internes par rapport aux évènements
externes.
58
Diagramme d’activité
Formalisme
59
Diagramme d’activité
60
Diagramme d’activité
61
Diagramme de paquetage
Qu’est-ce qu’un diagramme de paquetage?
Le diagramme de paquetage est l'un des types de diagrammes UML utilisés pour
organiser les éléments d'un modèle en groupes logiques. Il permet de structurer et
de gérer la complexité des systèmes en divisant les éléments en unités plus
petites appelées paquetages.
Objectifs du Diagramme de Paquetage
Un diagramme de paquetage sert principalement à :
• Organiser les classes et les autres éléments UML en groupes logiques.
• Réduire la complexité du système en représentant une vue hiérarchique.
• Illustrer les dépendances entre différents composants du système.
62
Diagramme de paquetage
Notation et Éléments
1. Paquetage
Un paquetage est représenté par un rectangle avec un petit onglet en haut à
gauche. Il peut contenir des classes, des interfaces, d'autres paquetages, etc.
2. Dépendance entre Paquetages
Une dépendance entre deux paquetages est représentée par une flèche en pointillés orientée vers
le paquetage dépendant.
63
Diagramme de paquetage
64
Diagramme de paquetage
65
Diagramme de paquetage
66
Diagramme de paquetage
67
Diagramme de paquetage
Les packages:
- Utilisateur (Personne, Employé)
- Réservation (Réservation, Inscription, Croisière)
- Paiement (Paiement)
- Transport (Navire, Départ)