Introduction à UML pour débutants
Introduction à UML pour débutants
modélisation UML
Denis Conan, Chantal Taconet, Christian Bac
CSC 4002
Octobre 2015
Revision : 1495
Introduction au langage de modélisation UML
Sommaire
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 2/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 3/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 4/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 5/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
OMT−2
James Rumbaugh
UML 0.8
OOSPLA’95
->UML 2.5
UML 1.2 UML 1.3 UML 1.4 UML 1.5 UML 2.0 UML 2.3 UML 2.4.1 2015
1998 2001 2003 2005 2010 2013
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 7/132
2 Généralités sur la modélisation orienté objet et sur UML 2.3 Unified Modelling Language (UML)
Communications
Séquence
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 9/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
Vue cas
d’utilisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 10/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
Code exécutable
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 11/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 12/132
2 Généralités sur la modélisation orienté objet et sur UML 2.6 Rôle de l’expression des besoins
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 13/132
2 Généralités sur la modélisation orienté objet et sur UML 2.6 Rôle de l’expression des besoins
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 15/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 16/132
Introduction au langage de modélisation UML 2 Généralités sur la modélisation orienté objet et sur UML
QCM
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 17/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 18/132
Introduction au langage de modélisation UML 3 Analyse, vues cas d’utilisation et processus
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 19/132
Introduction au langage de modélisation UML 3 Analyse, vues cas d’utilisation et processus
3.2.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 Acteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Relation de généralisation spécialisation entre acteurs. . . . . . . . . . . . . . . . . . . . . . . . .23
3.2.4 Cas d’utilisation, lien de communication et système . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.5 Exemple de diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.6 Éléments de méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 20/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
3.2.1 Introduction
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 21/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
3.2.2 Acteur
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 22/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
l’acteur le plus
général
participante
le lien de
généralisation
l’acteur le plus
spécialisé
organisatrice
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 23/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
participante lien de
communication
Ajouter un participant
Ouvrir un scrutin
limite du
système
organisatrice
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 24/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
Voter
Créer un scrutin
participant
Ajouter un choix
Supprimer un choix
Ajouter un participant
Retirer un participant
Ouvrir un scrutin
Fermer un scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 25/132
3 Analyse, vues cas d’utilisation et processus 3.2 Diagrammes de cas d’utilisation
■ Identifier les acteurs qui utilisent, gèrent et exécutent des fonctionnalités spécifiques
■ Organiser les acteurs par relation de généralisation spécialisation si c’est pertinent
■ Pour chaque acteur, rechercher les cas d’utilisation du système
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 26/132
Modélisation objet élémentaire avec UML Diagrammes de cas d'utilisation
Pierre Gérard (P13 IUT Villetaneuse) Introduction à UML 2 DUT Informatique S2D 32 / 342
Modélisation objet élémentaire avec UML Diagrammes de cas d'utilisation
Description textuelle 17
Identication :
Nom du cas : Payer CB
Objectif : Détailler les étapes permettant à client de payer par carte
bancaire
Acteurs : Client, Banque (secondaire)
Date : 18/09
Responsables : Toto
Version : 1.0
Pierre Gérard (P13 IUT Villetaneuse) Introduction à UML 2 DUT Informatique S2D 33 / 342
Modélisation objet élémentaire avec UML Diagrammes de cas d'utilisation
Description textuelle 18
Séquencements :
Le cas d'utilisation commence lorsqu'un client demande le paiement
par carte bancaire
Pré-conditions
Le client a validé sa commande
Enchaînement nominal
1 Le client saisit les informations de sa carte bancaire
2 Le système vérie que le numéro de CB est correct
3 Le système vérie la carte auprès du système bancaire
4 Le système demande au système bancaire de débiter le client
5 Le système notie le client du bon déroulement de la transaction
Enchaînements alternatifs
1 En (2) : si le numéro est incorrect, le client est averti de l'erreur, et
invité à recommencer
2 En (3) : si les informations sont erronées, elles sont re-demandées au
client
Post-conditions
La commande est validée
Le compte de l'entreprise est crédité
Pierre Gérard (P13 IUT Villetaneuse) Introduction à UML 2 DUT Informatique S2D 33 / 342
Modélisation objet élémentaire avec UML Diagrammes de cas d'utilisation
Description textuelle 19
Rubriques optionnelles
Contraintes non fonctionnelles :
Fiabilité : les accès doivent être sécurisés
Condentialité : les informations concernant le client ne doivent pas
être divulgués
Contraintes liées à l'interface homme-machine :
Toujours demander la validation des opérations bancaires
Pierre Gérard (P13 IUT Villetaneuse) Introduction à UML 2 DUT Informatique S2D 33 / 342
Introduction au langage de modélisation UML 3 Analyse, vues cas d’utilisation et processus
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 27/132
3 Analyse, vues cas d’utilisation et processus 3.3 Diagrammes d’activité *
■ La description d’un cas d’utilisation se fait par des scénarios qui définissent la suite
logique des actions qui constituent ce cas
■ Il est possible de définir des scénarios simples ou des scénarios plus détaillés faisant
intervenir les variantes, les cas d’erreurs, etc.
■ La description du scénario précise ce que fait l’acteur et ce que fait le système
■ En plus de descriptions textuelles, le scénario peut être représenté en utilisant un
diagramme d’activité
■ Le diagramme d’activité permet de :
♦ Présenter « l’algorithme », c’est-à-dire les étapes de la fonctionnalité
♦ Visualiser l’aspect temporel des interactions
♦ Connaître le sens des interactions (acteur vers système ou inverse)
♦ Distinguer le cas nominal des variantes (p.ex. avec traitement des erreurs)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 28/132
3 Analyse, vues cas d’utilisation et processus 3.3 Diagrammes d’activité *
noeud
arête
initial
fusion
noeud
terminal
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 29/132
3 Analyse, vues cas d’utilisation et processus 3.3 Diagrammes d’activité *
3.3.3 Concurrence *
recherche scrutin
« fork »
« join »
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 30/132
3 Analyse, vues cas d’utilisation et processus 3.3 Diagrammes d’activité *
attente X secondes
appel autre
activité
informations
transmises
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 31/132
Introduction au langage de modélisation UML 3 Analyse, vues cas d’utilisation et processus
QCM
3. Dans une généralisation spécialisation entre acteurs, l’acteur spécialisé a-t-il accès à
toutes les fonctionnalités de l’acteur généralisé ?
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 32/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 33/132
Introduction au langage de modélisation UML 4 Analyse et conception, aspects statiques de la vue logique
Vue cas
d’utilisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 34/132
Introduction au langage de modélisation UML 4 Analyse et conception, aspects statiques de la vue logique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 35/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
4.2.2 Classe
■ Classe = famille d’objets ayant les mêmes caractéristiques et le même comportement
♦ Attributs = caractéristiques (données membres, informations, propriétés)
♦ Opérations = comportement (méthodes, fonctions, procédures, messages,
services)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 37/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Nom Identifiant
de la classe de l’objet
Personne j:Personne
Constructeur(String n,String p)
voter(Bulletin b) Type Valeur
consulterResultat(Scrutin s) de l’attribut de l’attribut
seRetirerDUnScrutin(Scrutin s)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 38/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 39/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Personne
nom
adresse
dateNaissance
{Invariant :
/âge
âge = (dateCourante − dateNaissance) % année}
Attribut
dérivé
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 40/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Sens de
Association Nom de lecture de
l’association l’association
organise
Personne Scrutin
:organise
m:Personne listeBDE:Scrutin
Instance Instance
de classe d’association
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 41/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Rôle
organisateur
Personne Scrutin
1 organise *
Multiplicités
1 (par défaut)
1
1 (explicite)
3
3
0..1
0 ou 1
* 0 ou plusieurs
1..*
1 ou plusieurs
6..28
intervalle
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 42/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Personne
nom
numéroSécu
Permanent Vacataire
numéroBureau nombreVacations
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 43/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Vendeur
Enseignant
Avocat Permanent
Vacataire
Personne
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 44/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Avocat
Vendeur
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 45/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
MoyenTransport
désignation
vitesseLimite
age
prixHT
obtenirVitesse()
changerPrix()
obtenirÂge()
calculerAmortissement()
nombreBougies typeInjecteur
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 46/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 47/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
4.2.13 Agrégation
■ Agrégation = une association exprimant un couplage fort lié à une relation de
subordination
♦ A-UN, EST-UNE-PARTIE-DE
■ Elle est asymétrique du type « ensemble / élément » ou « contenant / contenu »
■ Règles permettant de choisir une agrégation :
♦ Est-ce une partie de ?
♦ Les opérations appliquées à l’ensemble sont-elles appliquées à l’élément ?
♦ Les changements d’états sont-ils liés ?
■ Attention :
♦ Un élément agrégé peut être lié à d’autres classes
♦ La suppression de l’ensemble n’entraîne pas celle de l’élément
3..*
Polygone Point
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 48/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
Personne * Scrutin
* nbTotalParticipations intituléScrutin
organise
nbTotalOrganisations texteCommentaireScrutin
nbParticipations * dateCréation
nbOrganisations dateDébut
prenom dateLimite
nom dateLimiteExistence
ouvertureAvancée
fermetureAvancée
destructionAvancée
nbTotalScrutin
ScrutinPlagesHoraires ScrutinPréférences
concerne
/nbChoix
concerne
nbTotal nbTotal
* *
PlageHoraire Préférence
* *
Bulletin date intituléPréférence
* heureDébut texteCommentairePréf
pourOuContre heureFin
* concerne Choix
Studs
/nbBulletinsPour
/nbBulletinsContre
*
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 49/132
4 Analyse et conception, aspects statiques de la vue logique 4.2 Diagramme de classes
■ Illustration des liens entre objets dans un scénario / une configuration donnée
:organise
:Personne v1:ScrutinPlagesHoraires
:org
ani
se
v2:ScrutinPlagesHoraires
:Bulletin v3:ScrutinPréférences
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 51/132
Introduction au langage de modélisation UML 4 Analyse et conception, aspects statiques de la vue logique
QCM
1. Quelles entités peuvent être dessinées dans un diagramme de classes ?
(a) opération
(b) acteur
(c) généralisation spécialisation
(d) association
4.4.1 Navigabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.2 Classe d’association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4.3 Composition : agrégation forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.4 Classe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.5 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.6 Classe paramétrée / générique *. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
4.4.7 Exemple de diagramme de classes avancé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 53/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
4.4.1 Navigabilité
Navigabilité
Personne Scrutin
organise
Personne Scrutin
organise
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 54/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
* *
Écrivain Paragraphe
Note
contenu
date
e:Écrivain p:Paragraphe
n:Note
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 55/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
■ La composition est une agrégation forte qui lie les cycles de vie entre le composé
(ensemble) et les composants (éléments)
■ Le choix entre composition et agrégation peut être pris lors de la phase de
conception
4
Voiture Roue
2..5
Carrosserie Porte
Moteur Habitacle
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 56/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 57/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
4.4.5 Interface
■ Une interface n’est pas une classe, c’est une liste d’opérations
■ Une interface, comme une classe abstraite, ne peut pas servir à créer un objet
■ Une interface exprime un savoir-faire, un contrat à respecter par les classes qui
« réalisent » cette interface
<<interface>>
Déplaçable
saPlace()
avancer()
reculer()
monter()
descendre()
Polygone Personne
sommets nom
numSécu
saPlace()
avancer() saPlace()
reculer() avancer()
monter() reculer()
descendre() monter()
descendre()
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 58/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
Paramètre
E de type
ListeDeChoses
élément : E Attribut
taille : Integer générique
premierÉlément : E
dernierÉlément : E
ajouter(E) Opération
estPrésent(E) générique
retirer(E)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 59/132
4 Analyse et conception, aspects statiques de la vue logique 4.4 Concepts avancés du diagramme de classes
Personne * Scrutin
* nbTotalParticipations intituléScrutin
organise
nbTotalOrganisations texteCommentaireScrutin
nbParticipations * dateCréation
nbOrganisations dateDébut
prenom dateLimite
nom dateLimiteExistence
ouvertureAvancée
fermetureAvancée
destructionAvancée
nbTotalScrutin
nbChoix
ScrutinPlagesHoraires ScrutinPréférences
concerne
concerne
nbTotal nbTotal
* *
PlageHoraire Préférence
* *
Bulletin date intituléPréférence
* heureDébut texteCommentairePréf
pourOuContre heureFin
* concerne Choix
Studs
/nbBulletinsPour
/nbBulletinsContre
*
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 60/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 61/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
Vue cas
d’utilisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 62/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
concerne
nbTotal nbTotal
Modèles dynamiques
* * − diagrammes de séquence
* *
PlageHoraire Préférence − diagrammes de communications
Bulletin date intituléPréférence − diagrammes de machines à états
* heureDébut texteCommentairePréf
pourOuContre heureFin
* concerne Choix
Studs
/nbBulletinsPour
/nbBulletinsContre
*
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 63/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.2 Modélisation des aspects dynamiques
concerne
concerne
... nbTotal nbTotal
création,
lecture, }
écriture,
suppression
struct bulletin { * *
PlageHoraire Préférence
... * *
} Bulletin date intituléPréférence
* heureDébut texteCommentairePréf
pourOuContre heureFin
} * concerne Choix
Studs
/nbBulletinsPour
/nbBulletinsContre
*
getBulletin(Personne p) : booléen
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 64/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.2 Modélisation des aspects dynamiques
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 65/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 66/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 67/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
Participants :
acteur ou objet,
voire classe
o1:C1 o2:C2
message
opération()
Barre
Message / d’activation
événement
opération2()
Appel au
même objet
Ligne
de vie
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 68/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
ouvrirScrutin(intitulé)
s=chercher(intitulé):Scrutin
avancerDateOuverture()
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 69/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
■ Syntaxe complète
♦ attribut = nomMessage(arguments) : type_retour
▶ attribut peut être un attribut de l’objet appelant ou une variable locale
▶ nom_message est une opération de l’objet appelé
appelSynchrone()
appelAsynchrone()
appelAsynchrone()
synchrone
appelAsynchrone()
retour d’appel
appelSynchrone2()
asynchrone
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 70/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
:Studs p:Personne
creationScrutin(p)
créationScrutin()
<< create(p) >>
s:Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 71/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
ref
PeutVoter
Type du
fragment
opt [peutVoter = true]
<<create(p,s,
c,poc)>> b:Bulletin Condition
d’entrée
voter(b)
Contours du
fragment voter(b)
voter(b,poc)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 72/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.3 Diagramme de séquence
:Studs p:Personne
pv = peutVoter(s) : boolean
av = setTo(false)
loop(1,cb.size(),av)
:Bulletin
av = aDejaVote(s) : boolean
sb = getScrutin()
av = (s == sb)
pv = not av
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 73/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
QCM
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 74/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 75/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 76/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
consulter(nom,
prénom,intituléScrutin)
1:p=getParticipant(nom,prénom) : Personne
Personne :Studs
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 77/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
consulter(nom,
prénom,intituléScrutin)
1:p=getParticipant(nom,prénom) : Personne
Personne :Studs
p:Personne
s:Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 78/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
consulter(nom,
prénom,intituléScrutin)
1:p=getParticipant(nom,prénom) : Personne
Personne :Studs
Scrutin p:Personne
s:Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 79/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
consulter(nom,
prénom,intituléScrutin)
1:p=getParticipant(nom,prénom) : Personne
Personne :Studs
Scrutin p:Personne
s:Scrutin
4:*[i=1..cb.size()]afficherInfosBulletin()
[s!=null]
4.i.1:afficherInfosParticipant(b) [b.personne=p]
À l’itération i,
b:Bulletin
manipulation de
l’instance b
4.i.2:afficherInfosChoix(b) [b.personne=p]
:Choix
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 80/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
op1()
1:p=getParticipant(nom,prénom) : Personne
Personne :Studs
2:*[!trouvé]trouvé=correspondre(intitulé):booléen
:Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 81/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
op1()
1:op2()
Personne :Studs
2.a:op3() 2.b:op4()
2.a.1:op31()
Scrutin p:Personne
s:Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 82/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.4 Diagramme de communications
QCM
2. Est-ce que plusieurs messages peuvent transiter sur un même lien d’interaction ?
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 84/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 85/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
■ Certaines classes sont plus complexes et influent de manière plus importante sur le
comportement général du système
■ Il est important de décrire les événements provoquant les changements d’états des
objets de ces classes
■ Les changements d’états sont décrits dans des machines à états
■ Une machine à états décrit les états des objets d’une classe
■ Une machine à états par classe est spécifiée
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 86/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
État
événement3
événement1
événement2
Orange Vert
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 87/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
■ Syntaxe complète
♦ événement[condition]/action
■ La transition est déclenchée par un événement
■ La transition est effectivement franchie si la condition (sur l’état de l’objet) est
valide
■ Le franchissement déclenche l’exécution de l’action de la transition
♦ Cette action est considérée comme immédiate et atomique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 88/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
Transition
implicite
EnConstruction NonCapturée
entrée : constructeur()
le joueur adverse
capture par un
artie
la p
de
tion
t ruc
des
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 89/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
EnConstruction
entrée : constructeur()
[dateDuJour>=dateDebut]/annoncerOuverture()
EnAttenteOuverture ScrutinOuvert
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 90/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
événement[condition]/action
Transtion État n
réflexive
entry: action en entrée de l’état
do: activité pendant l’état
événement1[condition1]: action1
événement2[condition2]: action2
...
exit: action en sortie d’état
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 91/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 92/132
5 Analyse et conception, aspects dynamiques de la vue logique 5.5 Diagramme de machine à états
Régions Sous−état
État composite 1
Sous−état 1
événement 1
Sous−état 3 Sous−état 2
événement 2
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 93/132
Introduction au langage de modélisation UML 5 Analyse et conception, aspects dynamiques de la vue logique
QCM
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 94/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 95/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Code exécutable
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 96/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Décisions de conception
Diagrammes de classes de l’analyse
Diagrammes de classes
de la conception
+
1 fiche par classe
Modèle dynamique
Diagrammes de machine à états
Diagrammes de communications
Diagrammes de séquence
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 97/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Personne * Scrutin
* nbTotalParticipations intituléScrutin
organise
nbTotalOrganisations texteCommentaireScrutin
nbParticipations * dateCréation
nbOrganisations dateDébut
prenom dateLimite
nom dateLimiteExistence
ouvertureAvancée
fermetureAvancée
destructionAvancée
nbTotalScrutin
nbChoix
ScrutinPlagesHoraires ScrutinPréférences
concerne
concerne
nbTotal nbTotal
* *
PlageHoraire Préférence
* *
Bulletin date intituléPréférence
* heureDébut texteCommentairePréf
pourOuContre heureFin
* concerne Choix
Studs
/nbBulletinsPour
/nbBulletinsContre
*
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 98/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Personne * Scrutin
■ Concept de « référence » :
♦ À partir d’un objet Scrutin, il est possible « d’aller vers » un objet Personne et
vers une collection d’objets Bulletin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 99/132
6 Conception, aspects langage et technique 6.4 Traduction des associations en attributs
4
Voiture Roue
2..5
Carrosserie Porte
Moteur Habitacle
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 101/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
4
Voiture Roue
2..5
Carrosserie Porte
Moteur Habitacle
Contrôle du cycle de vie des éléments : Contrôle du cycle de vie des éléments :
constructeur() { // possiblement constructeur() { // possiblement
création objets Roue création objets Porte
création objet Carroserie création objet Habitacle
création objet Moteur }
}
desrtucteur() { // obligatoirement
destructeur() { // obligatoirement destruction objets Porte
destruction objets Roue destruction objet Habitacle
destruction objet Carosserie }
destruction objet Moteur
}
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 102/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Studs
+ constructeur(...)
+ destructeur(...)
+ voter(...)
+ consulterRésultatScrutin(...)
+ seRetirerScrutin(...)
+ créerScrutin(...)
+ ajouterUnChoix(...)
+ supprimerUnChoix(...)
+ ajouterUnParticipant(...)
+ retirerUnParticipant(...)
+ ouvrirUnScrutin(...)
+ fermerUnScrutin(...)
+ supprimerUnScrutin(...)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 103/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
■ Doit-on voir / accéder à tous les attributs ou à toutes les opérations d’un objet ?
Non
♦ La classe définit ce qui est visible / accessible
▶ C’est le principe de l’encapsulation
♦ Un objet complexe ne peut être utilisé qu’au travers de ce qui est accessible
■ Analogie :
♦ Il n’est possible d’utiliser une voiture qu’à travers son volant, son frein, son
accélérateur, etc.
♦ L’accès au carburateur est impossible sauf par les méthodes qui le font de
manière cohérente (méthode accélérer de l’accélérateur )
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 104/132
6 Conception, aspects langage et technique 6.8 Encapsulation : visibilité / accessibilité des attributs et des opérations
■ Les attributs sont en général inaccessibles (secrets). Ils sont alors qualifiés de :
♦ « private » : notation UML « − »
♦ Lecture ou modification uniquement possibles au travers des opérations
(p.ex. les accesseurs : getAdresse(), setAdresse())
■ Les opérations sont en général accessibles par toutes les classes. Elles sont alors
qualifiées de :
♦ « public » : notation UML « + »
■ Certains attributs doivent être accessibles par les classes enfants et inaccessibles aux
autres classes. Ils sont alors qualifiés de :
♦ « protected » : notation UML « # »
■ Certaines opérations peuvent cependant être privées (factorisation interne de
traitements) et certains attributs peuvent être publics (même si cela est non
souhaitable selon le principe d’encapsulation)
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 105/132
6 Conception, aspects langage et technique 6.8 Encapsulation : visibilité / accessibilité des attributs et des opérations
Scrutin
− intituléScrutin : String
Attribut
− texteCommentaireScrutin : String
privé
− dateCréation : Date
− dateDébutVote : Date
− dateLimiteVote : Date
− dateLimiteExistence : Date Attribut
− ouvertureAvancée : booléen protégé
− fermetureAvancée : booléen
− destructionAvancée : booléen
# nbTotalScrutin : integer
− organisateur : @Personne
− bulletins : Collection ordonnée @Bulletin
+ ajouterBulletin(Bulletin) : void
Opération
+ nAPasDejaVote(Participant) : boolean
publique
+ getBulletins() : Collection @Bulletin
+ avancerDateOuverture(Date) : void
+ avancerDateFermeture(Date) : void
+ avancerDateLimiteExistence(Date) : void Opération
# afficherScrutin() : String protégée
+ getScrutin(String) : Scrutin
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 106/132
6 Conception, aspects langage et technique 6.8 Encapsulation : visibilité / accessibilité des attributs et des opérations
■ Attribut/opération protégé/e =
♦ Accessible par les classes enfants
♦ Inaccessible par les autres classes
■ Par exemple, opération afficherScrutin() de la classe Scrutin
♦ La classe ScrutinPlagesHoraires peut utiliser l’opération de la classe Scrutin dans
l’algorithme de son opération afficherScrutin() :
String afficherScrutin() {
...
appela de l’opération afficherScrutin() de classe parente
...
}
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 107/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Bulletin
pourOuContre
* concerne Choix
/nbBulletinsPour
/nbBulletinsContre
*
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 108/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
gère
Banque numéroCompte CompteBancaire
gère
Répertoire nom Fichier
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 109/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
voter(b)
voter(b)
voter(b)
■ Attributs utilisés dans la machine à états ■ Valeur des attributs dans les différents états
♦ dateDébut : date ♦ EnConstruction : valeurs par défaut
♦ dateLimite : date ♦ ScrutinOuvert : ouvert = true
♦ dateLimiteExistence : date ♦ ScrutinFermé : ouvert = false et
♦ ouvert : boolean = false (dateJour > dateLimite ou fermetureA = true)
♦ ouvertureAvancée : boolean = false ♦ EnDestruction : ouvert = false et
♦ fermetureAvancée : boolean = false (dateJour > dateLE ou destructionA = true)
♦ destructionAvancée : boolean = false
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 111/132
6 Conception, aspects langage et technique 6.12 Traduction des diagrammes de machine à états
constructeur(...) { vérifierAuQuotidien() {
... si ((dateJour >= dateDébut)
vérification et (ouvertureAvancée == false))
dateDébut < dateLimite < alors ouvert = true
dateLimiteExistence si ((dateJour > dateLimite)
} et (fermetureAvancée == false))
avancerOuverture() { alors ouvert = false
ouvert = true si ((dateJour > dateLimiteExistence)
ouvertureAvancée = true et (destructionAvancée == false))
} alors en destruction
avancerFermeture() { }
ouvert = false
fermetureAvancée = true
}
avancerDestruction() {
destructionAvancée = true
}
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 112/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
■ Dans les classes enfants, possibilité d’appel au constructeur de la classe parente (si
public ou protégé)
♦ Par exemple, dans la classe enfant ScrutinPlageHoraire :
constructeur(...) {
super(...) // appel au constructeur de la classe parente Scrutin
nbTotal = 0
}
♦ L’appel au constructeur de la classe parente doit être la première instruction
■ Dans les classes enfants, possibilité d’appel des opérations de la classe parente (si
publique ou protégée)
♦ Par exemple, dans la classe enfant ScrutinPlageHoraire :
afficherScrutin() { // opération redéfinie dans la classe enfant
super.afficherScrutin() // appel à l’opération de classe parente Scrutin
afficher à l’écran la valeur de l’attribut nbTotal
}
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 113/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Note
contenu
date
* *
Écrivain Paragraphe
Écrivain Paragraphe
Note
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 114/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 116/132
Introduction au langage de modélisation UML 6 Conception, aspects langage et technique
QCM
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 117/132
Introduction au langage de modélisation UML
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 118/132
Introduction au langage de modélisation UML 7 Conception, vues développement et physique
Vue cas
d’utilisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 119/132
Introduction au langage de modélisation UML 7 Conception, vues développement et physique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 120/132
7 Conception, vues développement et physique 7.2 Diagramme de composants
Interfaces Interfaces
fournies / requises
offertes
Relation de Dépendance
réalisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 121/132
7 Conception, vues développement et physique 7.2 Diagramme de composants
Ports
<<component>>
Composite1
<<component>> <<component>>
Primitif1 Composite2
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 122/132
Introduction au langage de modélisation UML 7 Conception, vues développement et physique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 123/132
7 Conception, vues développement et physique 7.3 Diagramme de paquetages
paquetage1 paquetage1::Classe1
Classe2
Classe6 (paquetage1)
Classe3
(from paquetage1)
Classe4 Classe5
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 124/132
7 Conception, vues développement et physique 7.3 Diagramme de paquetages
paquetage1
paquetage2
paquetage4
paquetage3
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 125/132
Introduction au langage de modélisation UML 7 Conception, vues développement et physique
Vue cas
d’utilisation
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 126/132
Introduction au langage de modélisation UML 7 Conception, vues développement et physique
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 127/132
7 Conception, vues développement et physique 7.5 Diagramme de déploiement
Noeuds Lien de
communication
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 128/132
7 Conception, vues développement et physique 7.5 Diagramme de déploiement
<<component>>
<<deploy>>
StudsComponent <<liaison HTTP>>
<<artefact>>
StudsBD <<manifest>>
<<device>>
<<artefact>> TerminalUtilisateur
Studs Server
Artefacts
StudsGUI
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 129/132
7 Conception, vues développement et physique 7.5 Diagramme de déploiement
<<device>>
serveurVote1:ServeurVote
<<artefact>>
StudsGUI Studs
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 130/132
Introduction au langage de modélisation UML
8 Conclusion
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 131/132
Introduction au langage de modélisation UML
9 Bibliographie
■ Livres
♦ G. Booch, J. Rumbaugh, I. Jacobson, « The Unified Modeling Language User Guide »,
2nd edition, Addison-Wesley, 2005
♦ B. Charroux, A. Osmani, Y. Thierry-Mieg, « UML 2, Pratique de la modélisation », 2è
édition, Pearson Education, 2008
♦ J. Gabay, D. Gabay, « UML 2 : analyse et conception », Dunod, 2008
♦ P. Roques « UML 2 par la pratique », 6è édition, Eyrolles, 2008
♦ R. Miles et K. Hamilton, « Learning UML 2.0 : A pragmatic Introduction to UML »,
O’Reilly, 2006
♦ Object Management Group, « OMG Unified Modeling Language, Infrastructure,
Version 2.4.1 », OMG Document Number formal/2011-08-05, August 2011
♦ Object Management Group, « OMG Unified Modeling Language, Superstructure,
Version 2.4.1 », OMG Document Number formal/2011-08-06, August 2011
♦ D. Pilone, « UML 2.0 Pocket Reference », O’Reilly, 2006
♦ S.W. Ambler, « The Elements of UML 2.0 Style », Cambridge University Press, 2005
■ URL : OMG UML at http://www.omg.org/spec/UML/
Télécom SudParis — D. Conan, C. Taconet, C. Bac — Octobre 2015 — CSC 4002 132/132