Académique Documents
Professionnel Documents
Culture Documents
Perfectionnement UML SBA 2023
Perfectionnement UML SBA 2023
Historique d’UML
Diagramme d’activité
Diagramme de séquence
Diagramme de déploiement
amine.kordara@gmail.com 2
Objectifs pédagogiques:
Objectif général :
A la fin du perfectionnement chaque enseignant sera capable
de concevoir et modéliser des applications web grâce à la
méthodologie UML et de l'appliquer à l'aide du programme
STARUML sans se référer au cahier de cours.
Sous Objectifs:
1) Définir le langage de modélisation UML
2) Elaborer le diagramme de classe
3) Elaborer le diagramme de cas d’utilisation
4) Elaborer le diagramme d’activités
5) Elaborer le diagramme de séquence
6) Elaborer le diagramme de déploiement
amine.kordara@gmail.com 3
Cycle de vie d’un logiciel
4
amine.kordara@gmail.com 4
Cycle de vie d’un logiciel
Modèle en Cascade (WaterFall)
5
Analyse
Conception
Implémentation
Tests
Maintenance
amine.kordara@gmail.com 5
Cycle de vie d’un logiciel
Analyse
6
amine.kordara@gmail.com 6
Cycle de vie d’un logiciel
Faisabilité
7
amine.kordara@gmail.com 7
Cycle de vie d’un logiciel
Spécification des besoins
8
Spécifications d’interface
Spécifications techniques
amine.kordara@gmail.com 8
Cycle de vie d’un logiciel
Spécification des besoins
9
amine.kordara@gmail.com 9
Cycle de vie d’un logiciel
Spécification des besoins
10
A. Madani (abdellah_madani@yahoo.fr)
amine.kordara@gmail.com 10
Cycle de vie d’un logiciel
Spécification des besoins
11
SGBDR, …)
A. Madani (abdellah_madani@yahoo.fr)
amine.kordara@gmail.com 11
Cycle de vie d’un logiciel
Organisation du projet
12
A. Madani (abdellah_madani@yahoo.fr)
amine.kordara@gmail.com 12
Cycle de vie d’un logiciel
Organisation du projet
13
Plusieurs étapes :
Analyse des coûts: estimation du prix du projet
Planification: calendrier pour le développement
(jours ouvrables, jours fériés, nombre d’heures de
travail par jours, …)
Répartition des tâches: distribuer les tâches et les
sous tâches (affectation des ressources aux
tâches)
A. Madani (abdellah_madani@yahoo.fr)
amine.kordara@gmail.com 13
Cycle de vie d’un logiciel
Conception
14
amine.kordara@gmail.com 14
Cycle de vie d’un logiciel
Conception générale
15
amine.kordara@gmail.com 15
Cycle de vie d’un logiciel
Conception détaillée
16
amine.kordara@gmail.com 16
Cycle de vie d’un logiciel
implémentation (Réalisation)
17
amine.kordara@gmail.com 17
Cycle de vie d’un logiciel
Codage et Tests
18
A. Madani (abdellah_madani@yahoo.fr)
amine.kordara@gmail.com 18
Cycle de vie d’un logiciel
Livraison
19
amine.kordara@gmail.com 19
Cycle de vie d’un logiciel
Maintenance
20
fonctionnalités
amine.kordara@gmail.com 20
Cycle de vie d’un logiciel
Documents
21
amine.kordara@gmail.com 21
Cycle de vie d’un logiciel
Documents
22
amine.kordara@gmail.com 22
Cycle de vie d’un logiciel
Documents
23
amine.kordara@gmail.com 23
Cours MSI-2A filière ICL
version 2.1 du 9 novembre 2009
Historique de l’UML
UML 2.2 UML 2.0 2005
2009
UML 1.3
OMG Acceptance, Nov 1997
Final submission to OMG, Sep ‘97 UML 1.1
public First submission to OMG, Jan ´97
feedback
UML partners UML 1.0
amine.kordara@gmail.com 25
Qu’est ce que UML ?
amine.kordara@gmail.com 26
Qu’est ce que UML ?
amine.kordara@gmail.com 27
Qu’est ce que UML ?
Attention
UML est un langage (et non pas une
méthode) qui :
permet de représenter les modèles
amine.kordara@gmail.com 28
Diagrammes d'UML
UML1.1 comprend 9 de diagrammes :
Diagramme
Est sorte de
Cas d d’utilisation
Cas ’utilisation Classes
Classes États
EtatsTransitions
Transitions Séquence
Séquence
amine.kordara@gmail.com 29
Diagrammes d'UML
diagramme d’objets
diagramme de composants
diagramme de déploiement
Modélisation du comportement
diagramme de cas d'utilisation
diagramme d’états
diagramme d’activités
diagramme de collaboration
diagramme de séquence
amine.kordara@gmail.com 30
Diagramme d’UML
amine.kordara@gmail.com 31
Diagramme d’UML
Cas d’utilisation
Objets Composants
Vue externe
(fonctions système)
Séquence Vue déploiement
Vue logique dynamique
(Environnement
(Comportement)
d’implantation)
Collaboration
Activités
États transitions Déploiement
amine.kordara@gmail.com 32
UML
Diagrammes de classes
amine.kordara@gmail.com 33
Objets et classes
TaVoiture : Voiture
AutreVoiture
Marque =: Voiture
Renault
MaVoiture
Marque : Voiture
= Renault
Modèle = Megane
Objet : une entité concrète avec une identité Marque =Immatriculation
Renault
Modèle = Megane = 648DBX38
bien définie qui encapsule un état et un Modèle =1Megane
Immatriculation = 648DBX38
re immatriculation = 16 sept
comportement. L’état est représenté par
2009 = 648DBX38
Immatriculation
1re immatriculation
des valeurs d’attribut et des associations, = 16 sept
le comportement par des méthodes. 2007Kilométrage
1re immatriculation = 125
= 16 sept000
1997Kilométrage = 125 000 ? ()
Kilométrage-annuel
2 objets peuvent être semblables et pas identiques
Kilométrage = 125 000 ? ()
Kilométrage-annuel
Un objet peut être une instance d’une Kilométrage-annuel ? ()
classe.
Classe : une description d’un ensemble d’objets Voiture
qui partagent les mêmes attributs,
Marque : chaîne
opérations, méthodes, relations et
contraintes. Modèle : chaîne
Personne collaborateur
Attributs = valeurs
âge : entier *
Etienne :
personne patron 1
âge = 35 patron emploie>
collaborateur
Jean-Luc :
personne
âge = 25 Diagramme de classes
Diagramme d ’objets
35 amine.kordara@gmail.com 35
Diagramme de classes
Structure statique d’un système, en termes de classes et de relations entre ces
classes.
Voiture
Attributs Cylindrée
exemple
Opérations () : Vitesse max
Démarrer ()
Accélérer ()
Syntaxe: Freiner ()
• nom_attribut : type_attribut = valeur initiale
• nom_opération (nom_argument : type_argument = valeur_par_défaut, …) :
type_retourné
Visibilité : trois niveaux de visibilité pour les attributs et les opérations:
• public (+) : élément visible à tous les clients de la classe
• protégé ( #) : élément visible aux sous-classes de la classe
• privé (-) : élément visible à la classe seule
36 amine.kordara@gmail.com 36
Nommage des associations
constructeur véhicule
Construire> produit
fabricant <construit par
37 amine.kordara@gmail.com 37
Multiplicité des associations
1 Un et un seul (obligatoire)
0 .. 1 Zéro ou un (optionnel)
m .. n De m à n (entiers)
* ou 0 .. * quelconque
1 .. * Au moins 1
38 amine.kordara@gmail.com 38
Associations
Agrégation:
• Association transitive : si voiture est composée de moteur et si moteur est
composé de courroie alors voiture est composée de courroie
• Association non symétrique : si voiture est composée de moteur, moteur ne
peut pas être composé de voiture
• Association qui peut être réflexive : exemple, une fonction peut être composée
d’autres fonctions, un sous ensemble d’autres sous ensembles.
Rôle et multiplicité :
• Une classe a un rôle dans une association.
• Les rôles portent une information de multiplicité précisant le nombre
d ’associations auquel une instance d ’objet peut être associée. Les multiplicités
les plus courantes sont : 1 / 0..1 / m..n / * /0..* / 1..*
39 amine.kordara@gmail.com 39
Classe-association
Permet de «qualifier» plus finement une association
Véhicule
+NumImmatriculation
Commande
+ChargeUtile
+Num-commande +PermisRequis
+date
+PoidsTotal
affrète 0..*
1..*
Véhicule PeriodeConduite
* SociétéTransport 0..1
+NumImmatriculation +t0
+NumSIRET conduit +tf
+ChargeUtile
traite +NomCommercial +kilometrage
+TypeTransport
affrète
0..1 0..1
1..*
SociétéTransport 0..1 0..*
conduit
+NumSIRET 1...2 Chauffeur
+NomCommercial
+TypeTransport Chauffeur +Nom
+Prénom
+Nom +Adresse
+Prénom +TypePermis
+Adresse
+TypePermis +KilometrageAnnée()
40 amine.kordara@gmail.com 40
Placement des attributs et des associations
0..* 1
Diplôme Note
Mention - valeur
0..1
Chambre
Numéro
41 amine.kordara@gmail.com 41
Placement des attributs et des associations
0..* 1
Diplôme Note
Mention - valeur
0..1
Chambre
Numéro
42 amine.kordara@gmail.com 42
Contraintes
0 .. *
personne classe
Parent d ’élève
{Sous ensemble}
0 .. *
Délégués
0 .. *
personne université
Enseignants
{Ou-exclusif}
0 .. *
Etudiants
43 amine.kordara@gmail.com 43
Agrégation
Livre Chapitre
1 .. *
1
{Ordonnée}
{Ordonnée}
1 .. *
Paragraphe
44 amine.kordara@gmail.com 44
Composition
Homme 1 1 Tête
45 amine.kordara@gmail.com 45
Diagramme de classes : Relations entre classes
Agrégation : quand une classe fait partie d’une autre classe (agrégat -
composant)
Association : toute relation structurelle entre classes, autre que l’agrégation et la
généralisation
Généralisation (voir transparents UML2) : factorisation des éléments communs
d’un ensemble de classes dites sous-classes dans une classe plus générale dite
super-classe. Elle signifie que la sous-classe est un ou est une sorte de la
super-classe. Le lien inverse est appelé spécialisation
spécialisation
classe 2
généralisation
1 1..* 1 1..*
véhicule moteur
constructeur Construit par
classe 1
classe 3
amine.kordara@gmail.com 48
Correction
amine.kordara@gmail.com 49
UML
Diagrammes de cas d’utilisation
amine.kordara@gmail.com 50
Principaux éléments des diagrammes
de cas d’utilisation
QUOI ?
Avant tout développement, il convient de
répondre à la question :
“A quoi va servir le logiciel ?”
sous peine de fournir des effeorts
considérables en vain.
En UML, on établit des Diagrammes de Cas
d’Utilisation pour répondre à cette question.
amine.kordara@gmail.com 51
Diagrammes de Cas d’Utilisation
Principaux éléments :
Acteurs (bonhommes)
Cas d’utilisation (ellipses)
amine.kordara@gmail.com 52
Acteurs
Un acteur est une entité extérieure au système modélisé, et qui interagit directement avec lui.
Acteurs non humains
Les principaux acteurs sont les utilisateurs du système.
En plus des utilisateurs, les acteurs peuvent être :
Des logiciels déjà disponibles à intégrer dans le projet ;
Des systèmes informatiques externes au système mais qui interagissent avec lui ;
tout élément extérieur au système et avec lequel il interagit
Pour identifier les acteurs, on se fonde sur les frontières du système.
amine.kordara@gmail.com 53
Cas d’utilisation
amine.kordara@gmail.com 54
Relations liant les acteurs
Associations entre cas et acteurs
Les acteurs demandant des services aux systèmes, ils sont le plus
souvent à l’initiative des échanges avec le système :
ils sont dits acteurs primaires.
Lorsqu’ils sont sollicités par le système (dans le cas de serveurs
externes par exemple), ils sont dits acteurs secondaires.
amine.kordara@gmail.com 55
Relations liant les acteurs
On représente une association entre un
acteur et un cas d’utilisation par une ligne
pleine.
amine.kordara@gmail.com 56
Relations entre acteurs
Il n’y a qu’un seul type de relation possible entre acteurs : la relation
de généralisation.
Il y a généralisation entre un cas A et un cas B lorsqu’on peut dire : A est
une sorte de B. Exemple :
Un directeur est une sorte de commercial : il peut faire avec le système tout
ce que peut faire un commercial, plus d’autres choses
amine.kordara@gmail.com 57
Relations entre cas d’utilisation
amine.kordara@gmail.com 58
Généralisation entre cas d’utilsation
Cette relation de généralisation/spécialisation est présente dans la plupart
des diagrammes UML et se traduit par le concept d’héritage dans les
langages de programmation orientés objet.
Cet héritage signifie que les éléments spécifiques héritent de tout ce qui
caractérise l’élément général : - Les associations avec des acteurs - Les
relations de dépendance - Les héritages déjà existant, dans lesquel
l’élément général jour le rôle d’élément plus spécifique
amine.kordara@gmail.com 59
Réutilisation de cas d’utilisation
Les relations d’inclusion et d’extension permettent d’isoler un
service réutilisable comme partie de plusieurs autres cas
d’utilisation :
On parle alors de réutilisation.
Le code développé pour implémenter le cas d’utiliation réutilisé est
d’emblée identifié comme ne devant être développé qu’une seule
fois, puis réutilisé.
amine.kordara@gmail.com 60
Décomposition de cas d’utilisation
Un cas d’utilisation ne doit jamais se réduire à une seule action : il
doit occasionner des traitements d’une complexité minimale.
Toutefois, il peut arriver qu’un cas d’utilisation recouvre un
ensemble très important d’échanges et de traitements. Dans ce cas,
on peut utiliser les relations d’inclusion et d’extension.
amine.kordara@gmail.com 61
Synthèse
Diagramme complet
amine.kordara@gmail.com 62
Description textuelle de cas
d’utilisation
Un nom ne suffit pas à comprendre le détail de ce que
recouvre un cas d’utilisation.
Il est donc nécessaire d’adjoindre à chaque cas
d’utilisation une description détaillée. Cette description
est parfois textuelle et composée de plusieurs rubriques
dont les plus importantes sont :
Le scénario nominal : enchaînement d’actions typiques
dans le cas où les choses se passent comme prévu.
Les enchaînements alternatifs : enchaînements dans
des cas particuliers.
amine.kordara@gmail.com 63
Exercice:
Dans un établissement de formation, on désire gérer la
réservation des salles de cours ainsi que du matériel
pédagogique (ordinateur portable ou/et Vidéo
projecteur). Seuls les enseignants sont habilités à
effectuer des réservations (sous réserve de disponibilité
de la salle ou du matériel). Le planning des salles peut
quant à lui être consulté par tout le monde (enseignants
et étudiants). Par contre, le récapitulatif horaire par
enseignant (calculé à partir du planning des salles) ne
peut être consulté que par les enseignants. Enfin, il
existe pour chaque formation un enseignant responsable
qui seul peut éditer le récapitulatif horaire pour
l’ensemble de la formation. Modéliser cette situation par
un diagramme de cas d’utilisation
amine.kordara@gmail.com 64
Correction
amine.kordara@gmail.com 65
UML
Diagrammes d’activités
amine.kordara@gmail.com 66
amine.kordara@gmail.com 67
amine.kordara@gmail.com 68
amine.kordara@gmail.com 69
amine.kordara@gmail.com 70
amine.kordara@gmail.com 71
amine.kordara@gmail.com 72
amine.kordara@gmail.com 73
amine.kordara@gmail.com 74
amine.kordara@gmail.com 75
amine.kordara@gmail.com 76
amine.kordara@gmail.com 77
amine.kordara@gmail.com 78
amine.kordara@gmail.com 79
amine.kordara@gmail.com 80
Exercice: «Distributeur de billets »
Le client introduit sa carte dont la validité est
immédiatement vérifiée. Il est ensuite invité à saisir le
code de la carte. Après trois tentatives infructueuses, la
carte est avalée. Sinon le client peut indiquer le montant
qu'il désire retirer, le solde de son compte bancaire est
alors consulté pour s'assurer que le retrait est possible.
En cas de solde insuffisant, le client en est informé et
peut alors saisir un montant inférieur. Si le solde du
compte est suffisant, le distributeur restitue la carte et
délivre alors les billets accompagnés d'un reçu. Décrire
le fonctionnement de ce distributeur de billets via un
diagramme d’activités.
amine.kordara@gmail.com 81
Correction :
amine.kordara@gmail.com 82
UML
Diagrammes de séquences
amine.kordara@gmail.com 83
Présentation du diagramme de séquence
Éléments du diagramme de séquence
Acteurs
Objets (instances)
Messages (cas d'utilisation, appels d’opération)
amine.kordara@gmail.com 84
amine.kordara@gmail.com 85
amine.kordara@gmail.com 86
Types de messages
1. Message synchrone:
Dans un message synchrone, l’émetteur reste bloqué le temps
que le récepteur traite le message envoyé (Émetteur bloqué en
attente du retour);
Un message synchrone se représente par une flèche en traits
pleins et à l’extrémité pleine Le retour se représente par une
flèche en pointillé.
amine.kordara@gmail.com 87
Types de messages
1. Message asynchrone:
Dans un message asynchrone : l’émetteur n’est pas bloqué lorsque
le récepteur traite le message envoyé.
Un message asynchrone se représente par une flèche en traits
pleins et à l’extrémité ouverte
amine.kordara@gmail.com 88
Types de messages
1. Message récursif :
Un message récursif est un message qu’un objet s’envoie à lui-
même.
amine.kordara@gmail.com 89
Types de messages
1. Message création/destruction d’un objet
La création d’un objet est matérialisée par une flèche qui pointe
sur le sommet d’une ligne de vie.
La destruction d’un objet est matérialisée par une croix qui
marque la fin de la ligne de vie de l’objet.
amine.kordara@gmail.com 90
Types de messages
Message création/destruction d’un objet
amine.kordara@gmail.com 91
Types de messages
Message création/destruction d’un objet
Dans la plupart des cas, la réception d’un message est suivie de
l’exécution d’une méthode d’une classe. Cette méthode peut
recevoir des arguments et la syntaxe des messages permet de
transmettre ces arguments.
amine.kordara@gmail.com 92
Structures de contrôle:
amine.kordara@gmail.com 93
Alternative
Principe : Condition à l'envoi d'un message
Notation :
Deux diagrammes
amine.kordara@gmail.com 94
Alternative
Principe : Condition à l'envoi d'un message
Notation :
Deux diagrammes
Bloc alt
amine.kordara@gmail.com 95
Boucle
Principe: Répéter un enchaînement de
messages
Notation :
Notes
amine.kordara@gmail.com 96
Référence à un autre diagramme
amine.kordara@gmail.com 97
Exemple:
amine.kordara@gmail.com 98
Exercice
On s'intéresse à la modélisation dynamique de la gestion d'une
bibliothèque. Pour emprunter un livre, on a le scénario suivant :
1) L'adhérent se présente au comptoir et la bibliothécaire saisit la
fonctionnalité pour emprunter un livre de l'application.
2) D'abord, il faut vérifier si l'adhérent a le droit d'emprunter des livres
(carte valide, nombre de livres déjà empruntés ne dépasse pas un
seuil fixé, …).
3) En suite, il faut vérifier si le livre est disponible.
4) Si tout va bien, on crée un nouveau prêt avec la date de prêt et la
date de retour, associé avec l'adhérent et le livre choisit.
5) On rend le livre indisponible.
6) On incrémente le nombre de livres empruntés par l'adhérent. Etablir
le diagramme de séquence de ce scénario de cas d'utilisation
Emprunter livre.
amine.kordara@gmail.com 99
Correction
amine.kordara@gmail.com 100
UML
Diagrammes de déploiement
(« deployment diagram »)
amine.kordara@gmail.com 101
Le diagramme de déploiement
Les diagrammes de déploiement montrent la disposition
physique des matériels qui composent le système et la
répartition des composants sur ces matériels.
Il est la description finale de la topologie du système car
il unit les facettes hardware et software du système.
Dans ce type de diagramme, il devrait être possible
d’observer un nœud de la topologie et de voir les
composantes qui s ’y exécutent, et quelles structures
logiques sont implantées dans ces composantes.
amine.kordara@gmail.com 102
Nœuds:
Définition: C’est une unités physiques
(matérielles) dotées d ’une puissance de calcul
donnée (processeurs, imprimantes, lecteurs de
cartes, périphériques de communication, etc).
Un nœud est représenté par un cube en trois
dimensions avec son nom à l ’intérieur.
Les périphériques sont aussi représentés par
des nœuds avec un stéréotype ou au moins un
nom qui indique clairement que le nœud n ’en
est pas un de calcul.
amine.kordara@gmail.com 103
Exemple d’un diagramme de déploiement
amine.kordara@gmail.com 104
Merci pour votre
attention
amine.kordara@gmail.com 105