Vous êtes sur la page 1sur 64

Génie Logiciel II

R.ABERBOUR
rima.aberbour@gmail.com

2020-2021
Plan Cours GL2
1. Rappel
2. Diagramme de contexte
 Diagramme de contexte statique
 Diagramme de contexte dynamique
3. Diagrammes d’interaction
 Diagramme de séquence
 Diagramme de communication

4. Diagrammes de comportement
 Diagramme d’état transition (état machine)
 Diagramme d’activité
5. Diagrammes de structure
 Diagramme de composants
 Diagramme de déploiement

6. Les autres diagrammes d’UML

7. Etude de cas

2 R.ABERBOUR 23/12/2020
Références Bibliographiques du Cours
 UML 2 en action  MDA en action, ingénierie logicielle guidée par
 Pascal Roques les modèles
 Franck Vallée  Xavier Blanc

 UML2, Pratique de la modélisation.  Processus unifié de développement de logiciel,


 Benoît CHARROUX  Ivar Jacobson, Grady Booch, James Rumbaugh.

 Aomar OSMANI  Méthodologie de Développement Objet,


 Yann THIERRY-MIEG  Christine Solnon.

 UML 2, Analyse et conception  Le Processus Unifié de Rational,


 Joseph et David Gabay  Laurent Henocque.

 UML 2 - de l'apprentissage à la pratique ,  Le Processus Unifié, Une Démarche Orientée


 Laurent AUDIBERT
Modèle ,
 Jérémie Guiochet.
 UML 2.0
 Claude Belleil
 Le cours de Mme N.Haddouche

 Modèle pour l’Ingénierie des Systèmes,  Le cours de Mme I.Boussaid


 Cédric Buche
 Diagrammes états-transitions
 Delphine Longuet
 Diagrammes de composants et de déploiement UML
 Pierre Gérard
R.ABERBOUR 23/12/2020
3
Contenu des TDs GL2

 Série de TD1: Diagramme de séquences et diagramme de


communication
 Série de TD2: Diagramme d’état-transitions
 Série de TD3: Diagramme d’activité
 Série de TD 4: Besoins fonctionnels (étude de cas)
 Série de TD5: Découpage par catégorie et développement
des modèles statique et dynamique (étude de cas)

4 R.ABERBOUR 23/12/2020
Contenu des TPs GL2
 Du TP1: Rappel des concepts de la POO
 Du TP2 au TP 6: Collection
 Exercices
 Etudes de cas (location de voitures, gestion de notes, gestion de bibliothèques,
gestions d’annuaire téléphonique …)
 TP 7 : Arbre
 Implémentation d’un algorithme de codage

5 R.ABERBOUR 23/12/2020
Projet
 Travail demandé:

La conception et le développement des applications de


prévention des impacts psychologique ou socio-économique
de la crise sanitaire, d’aide aux personnes vulnérables ou
isolées, de lutte contre les violences domestique en période
de confinement, ..etc.

6 R.ABERBOUR 23/12/2020
Evaluation du projet

 Note du rapport /14, additionné à la note d’assiduité et de


participation en TDs (/6), ça constituera la note du contrôle
continu.
 Note de l’application /14, additionné à la note de réalisation
des TPs (/6), ça constituera la note du Test de TP.

7 R.ABERBOUR 23/12/2020
Evaluation du module

 Note du projet:
 Examen Final

8 R.ABERBOUR 23/12/2020
Rappel
1: C’est quoi un modèle? Et quelle est la forme de représentation
de modèles?
2: Pourquoi et comment modéliser?
3: Langages de modélisation: définition et type
4: Diagrammes UML 2.5
5: Axes de modélisation avec UML

9 R.ABERBOUR 23/12/2020
C’est quoi un modèle?
 Modèle : représentation abstraite et simplifiée d’une entité
du monde réel en vue de le décrire, de l’expliquer ou de le
prévoir
 Cette représentation peut être sous forme physique,
graphique, mathématique ou verbale.

10 R.ABERBOUR 23/12/2020
Pourquoi et comment modéliser ?

 Intérêt "informatique" de la modélisation


 Les modèles aident à visualiser un système existant ou
futur (tel que l’on souhaite qu’il devienne)
 Les modèles permettent de spécifier la structure et le
comportement d’un système
 Les modèles documentent les choix effectués

11 R.ABERBOUR 23/12/2020
Langages de modélisation
 Un langage de modélisation doit définir :
 Une notation pour la représentation de concepts ;
 La sémantique des concepts ;
 Des règles de construction et d’utilisation des concepts.

12 R.ABERBOUR 23/12/2020
Langages de modélisation

 Des langages à différents niveaux de formalisation :


 Langages formels
 Langages semi-formels

13 R.ABERBOUR 23/12/2020
Langages de modélisation

 Des langages à différents niveaux de formalisation :


 Langages formels : le plus souvent mathématiques, au grand
pouvoir d’expression et permettant des preuves formelles sur
les spécifications ;

14 R.ABERBOUR 23/12/2020
Langages de modélisation

 Des langages à différents niveaux de formalisation :


 Langages semi-formels (MERISE, UML...) : le plus
souvent graphiques, au pouvoir d’expression moindre mais plus
faciles d’emploi.

15 R.ABERBOUR 23/12/2020
Quelle modélisation choisir?
 Méthode Merise:  Langage UML
Méthode offrant une succession de Langage offrant un ensemble de
modèles adaptes pour: diagrammes adaptés pour:
 Les applications fonctionnelles  Les applications objet
ou objet  Les bases de données
 Les bases de données relationnelles ou objet
relationnelles Modélisation des cas d’utilisation,
(modélisation des acteurs, flux, des classes, de séquences, …)
données, traitements..) 1997: Date de création (9
Date de création: 1970 diagrammes)
2008 : UML2.2 (14 diagramme)
Actuellement c’est version 2.5

16 R.ABERBOUR 23/12/2020
Diagrammes UML 2.5

17 R.ABERBOUR 23/12/2020
Axes de modélisation avec UML

18 R.ABERBOUR 23/12/2020
Axes de modélisation avec UML
Aspect physique

19 R.ABERBOUR 23/12/2020
Diagramme de contexte
Diagramme de contexte statique
Diagramme de contexte dynamique

20 R.ABERBOUR 23/12/2020
Diagrammes UML 2.5

21 R.ABERBOUR 23/12/2020
Définition
 Le diagramme de contexte n’a pas d’existence légale,
car il ne figure pas dans la norme UML. Il est
cependant souvent utilisé pour introduire certaines
démarches méthodologiques
 Il sert à délimiter le contour du système en cours d'étude,
ie définir clairement ses frontières et les acteurs avec lesquels
il communique. Ces derniers peuvent être soit des acteurs
humains, soit d'autres systèmes avec lesquels le futur système
communiquera.
 Il doit présenter le système à modéliser, sous la forme
d’une « boîte noire » et les différents acteurs qui
interagissent avec ce système.

22 R.ABERBOUR 23/12/2020
Formalisme de représentation

 Deux versions peuvent être représenter, l’une statique et


l’autre dynamique qui permettent de visualiser la sémantique
des échanges entre les acteurs et le système.

23 R.ABERBOUR 23/12/2020
Les Acteurs
 ne font pas partie du système,
 ils sont considérés par le système comme des émetteurs de
stimulis.
 Ils ont une connaissance du système qui varie selon leur
statut, c'est-à-dire selon le rôle qu’ils jouent.

24 R.ABERBOUR 23/12/2020
Exemple Acteurs

25 R.ABERBOUR 23/12/2020
Le système
 Il est représenté à un très haut niveau de granularité en boite
noir.

26 R.ABERBOUR 23/12/2020
Le diagramme de contexte statique

 Ce diagramme n’a d’intérêt que lorsqu’il y a de nombreux


acteurs.
 Les multiplicités (0..* et 0..1) font apparaître le nombre
d’occurrences de certains acteurs.

27 R.ABERBOUR 23/12/2020
Exemple Diagramme de contexte
statique
 Dans le modèle ci-dessous, on voit qu’il n’y a qu’un seul responsable
logistique, un seul comptable et un seul administrateur système.

28 R.ABERBOUR 23/12/2020
Diagramme de Contexte Dynamique

 Les actions des acteurs liées aux grandes fonctionnalités du


système sont modélisées. Mais il faudra éviter la surcharge
d’informations, et rester à un niveau de macro modélisation.
 L’objectif visé, c’est la mise en évidence des rôles et
responsabilités de chaque catégorie d’acteur vis-à-vis du
système.

29 R.ABERBOUR 23/12/2020
Exemple diagramme de contexte
dynamique

30 R.ABERBOUR 23/12/2020
Diagrammes UML 2.5

31 R.ABERBOUR 23/12/2020
Diagrammes d’interaction
Diagrammes de séquences
Diagramme de communication
Diagramme de temps
Diagramme global d’interaction

32 R.ABERBOUR 23/12/2020
Introduction : Pourquoi les diagrammes
d’interaction?
 Le diagramme de cas d’utilisation

 Le diagramme de classes

 Les diagrammes d’interaction

33 R.ABERBOUR 23/12/2020
Introduction
 Le diagramme de cas d’utilisation: des acteurs
interagissent avec les grandes fonctions d’un système. C’est
une vision fonctionnelle et externe d’un système.
 Le diagramme de classes: décrit le cœur d’un système et
montre des classes et la façon dont elles sont associées. C’est
une vision statique et structurelle.
 Les diagrammes d’interaction
 Permettent d’établir un pont entre ces deux approches:
comment des instances au cœur du système communiquent
pour réaliser une certaine fonctionnalité.
 Apportent un aspect dynamique à la modélisation du système.

34 R.ABERBOUR 23/12/2020
Introduction: Interaction
 Pour être complètement spécifiée, une interaction doit être
décrite dans plusieurs diagrammes UML :
 Cas d’utilisation:

 Classes pour spécifier les opérations nécessaires

 Séquences:

35 R.ABERBOUR 23/12/2020
Diagramme de séquences
Présentation
Concepts principaux
Notations
Messages
Fragments d’interaction combinés

36 R.ABERBOUR 23/12/2020
Présentation
 Les diagrammes de séquences permettent de décrire
COMMENT les éléments du système interagissent entre
eux et avec les acteurs.
 Montrent les interactions entre objets selon un point de vue
temporel
 Description de scénarios types et des exceptions
 Deux utilisations principales :
 Documentation des CU (point de vue Fonctionnel)
 Représentation précise des interactions (point de vue
Dynamique)
 identification des messages, des envois, réceptions, etc.

37 R.ABERBOUR 23/12/2020
Présentation: Notation
 Ils décrivent comment les objets interagissent entre eux.
 la séquence des messages envoyés entre les objets
 Ils possèdent deux axes:
 l’axe vertical montre le temps
 l’axe horizontal montre l’ensemble des objets en interaction
dans un scénario ou une scène spécifique d’un scénario.

38 R.ABERBOUR 23/12/2020
Présentation : Forme
 forme générique:
 décrit tous les déroulements possibles d’un scénario
 peut contenir des branchements, des conditions, et des
boucles.
 forme d’instanciation:
 décrit le comportement du système pour un aspect spécifique
d’un scénario
 ne peut donc contenir aucun branchement et aucune
condition ou boucle.

39 R.ABERBOUR 23/12/2020
Concepts principaux :
 Les participants (le plus souvent des objets)
 Une ligne de vie : représente un participant à une interaction (objet
ou acteur).
 Des zones d’activation
 Les messages :
 L’opération et éventuellement ses paramètres
 Éventuellement son résultat
 Des Fragments combinés
 Alt : conditionnelle
 Loop : boucle
 Ref : référence a un autre diagramme de séquence (=appel de
fonction)
 Etc.

40 R.ABERBOUR 23/12/2020
Exemple 1

41 R.ABERBOUR 23/12/2020
Différentes Notations

42 R.ABERBOUR 23/12/2020
Message et Evénements
 Problème: erreurs de transmission, l’invocation d’une
opération n’est pas suivi de l’exécution d’une méthode.

43 R.ABERBOUR 23/12/2020
PÉRIODE D’ACTIVITÉ
 La réception des messages provoque une période d’activité
(rectangle vertical sur la ligne de vie) marquant le traitement
du message.
 Période durant laquelle un objet effectue une action
 Etat actif (différent de durée de vie)
 un objet peut être actif
plusieurs fois

44 R.ABERBOUR 23/12/2020
Les messages dans les diagrammes
séquentiels
 Les messages les plus communs qu’un objet peut recevoir
sont :

45 R.ABERBOUR 23/12/2020
Les messages dans les diagrammes
séquentiels
 Les messages les plus communs qu’un objet peut recevoir
sont :
 l’envoi d’un signal;
 l’invocation d’une opération ;
 la création ou la destruction d’une instance.

46 R.ABERBOUR 23/12/2020
Les messages dans les diagrammes
séquentiels
 l’envoi d’un signal:
 Déclenche une réaction chez le récepteur, de façon asynchrone
et sans réponse;
 L’ émetteur du signal ne reste pas bloqué le temps que le signal
parvienne au récepteur et il ne sait pas quand, ni si le message
sera traité par le destinataire;
 Exemple: une interruption

47 R.ABERBOUR 23/12/2020
Les messages dans les diagrammes
séquentiels

 l’invocation d’une opération :


 Est le type de message le plus utilisé en programmation objet;
 Dans la pratique, la plupart des invocations sont synchrones.

48 R.ABERBOUR 23/12/2020
Les messages dans les diagrammes
séquentiels
 Message synchrone : émetteur bloqué pendant le
traitement du message par le récepteur (appel)
 Typiquement : appel de méthode (Si un objet A invoque une
méthode d’un objet B, A reste bloqué tant que B n’a pas
terminé.
 Message asynchrone : non bloquant.
 Le message envoyé peut être pris en compte par le récepteur à
tout moment ou ignoré.
 Message de retour : On peut associer aux messages
d’appel de méthode un message de retour (en pointillés)
marquant la reprise du contrôle par l’objet émetteur du
message synchrone.

49 R.ABERBOUR 23/12/2020
Notation
 Un message synchrone :
 Ce message peut être suivi d’une réponse qui se représente par une flèche
en pointillé.
 Un message asynchrone :
 La création d’un objet :

 La destruction d’un objet :

50 R.ABERBOUR 23/12/2020
Exemple 2

51 R.ABERBOUR 23/12/2020
Messages de création / destruction
 Un message peut entraîner la création ou la destruction d’objets
 La création d’un objet est matérialisée par une flèche qui pointe
sur le sommet d’une ligne de vie (On peut aussi utiliser un message
asynchrone ordinaire portant le nom «create»).
 La destruction d’un objet est matérialisée par une croix qui
marque la fin de la ligne de vie de l’objet.

52 R.ABERBOUR 23/12/2020
Exemple 3

53 R.ABERBOUR 23/12/2020
Message perdu et trouvé
 Un message perdu est tel que l’événement d’envoi est connu,
mais pas l’événement de réception. Il se représente par une flèche
qui pointe sur une petite boule noire.
 Exemple: Cette sorte de message permet de modéliser, par exemple,
les scenarii de pertes de message sur un réseau
 Un message trouvé est tel que l’événement de réception est
connu, mais pas l’événement d’émission. Une flèche partant
d’une petite boule noire représente un message trouvé.
 Exemple: Ce message peut être utilisé pour modéliser le comportement d’un
élément suite à la réception d’un message d’exception.

54 R.ABERBOUR 23/12/2020
Exemple

55 R.ABERBOUR 23/12/2020
MESSAGE RÉFLEXIF
 Un objet peut s’envoyer des messages
 appel à une autre méthode de l’objet
 appel récursif

56 R.ABERBOUR 23/12/2020
Contraintes sur les lignes de vie

 Elle est indiquée sur une ligne de vie par un texte entre
accolades.
 Elle peut aussi être contenue dans une note attachée à
l’occurrence de l’événement sur lequel elle agit.
 Une contrainte est évaluée au cours de l’exécution de
l’interaction. Elle valide les événements qui suivent cette
contrainte.

57 R.ABERBOUR 23/12/2020
Exemple

58 R.ABERBOUR 23/12/2020
CORRESPONDANCE MESSAGES /
OPÉRATIONS
 Les messages synchrones correspondent à des opérations dans le
diagramme de classes.
 Envoyer un message et attendre la réponse pour poursuivre son
activité revient à invoquer une méthode et attendre le retour pour
poursuivre ses traitements.

59 R.ABERBOUR 23/12/2020
CORRESPONDANCE MESSAGES /
OPÉRATIONS
 Les messages synchrones correspondent à des opérations dans le
diagramme de classes.
 Envoyer un message et attendre la réponse pour poursuivre son
activité revient à invoquer une méthode et attendre le retour pour
poursuivre ses traitements.

60 R.ABERBOUR 23/12/2020
Règles de cohérence
 Chaque objet dans le diagramme de séquence doit être
instance d'une classe dans le diagramme de classe
 Chaque message dans le diagramme de séquence doit
correspondre à une opération dans le diagramme de classe

61 R.ABERBOUR 23/12/2020
Syntaxe des messages
 <nomDuSignalOuDeOpération> [’(’ [<argument>’,’ … ’)’]
Exemple:
 Appeler( "Capitaine Hadock", 54214110 )
 afficher( x, y )
 [ <nomDeParamètre> ’=’ ] <valeur de l’argument>
Exemple:
 initialiser( x = 100 )
 message dont l’argument en entrée reçoit la valeur 100.
 <nomDuParamètreEnSortie> [’:’ <valeur de l’argument> ]
Exemple:
 f( x :12 )
 message avec un argument en entrée/sortie x qui prend initialement
la valeur 12.
62 R.ABERBOUR 23/12/2020
syntaxe de réponse à un message
 [<attribut> ’=’] message [’:’ <valeur de retour> ]

 Exemple
 nombreLivres = chercher( "Tintin" ) : 42

63 R.ABERBOUR 23/12/2020
Exercice d’application
Représenter le diagramme de séquence correspondant à la rubrique de scénario
nominale d’un cas d’utilisation :
 Le client insère sa carte de crédit ;
 Le distributeur vérifie la carte et demande le code pin ;
 Le client entre son code pin et le valide ;
 Le distributeur demande l’autorisation au service d’autorisation qui renvoie la
limite autorisée de retrait ;
 Le distributeur demande le montant désiré ;
 Le client entre le montant ;
 Le distributeur vérifie le montant et demande au client s’il désire un reçu ;
 Le client confirme sa demande de reçu ;
 Le distributeur éjecte la carte ;
 Le client récupère sa carte ;
 Le distributeur éjecte les billets et le reçu.
64 R.ABERBOUR 23/12/2020