Chapitre 5:
Conception dynamique
Année Universitaire
2015-2016
3ème A
AU 2015-2016
DIAGRAMMES D’INTERACTION
2
Diagrammes d’interaction - Objectifs
• Décrire comment les objets interagissent au sein du
système…
– Montrer les interactions entre les objets dans le temps
– Présenter la séquence (l’ordre) et la dépendance des messages
échangés entre les objets
• Représenter certains aspects dynamiques pour la réalisation
– d’un cas d’utilisation
– d’une opération relative à un cas d’utilisation
3
Diagrammes d’interaction - Types
• Diagramme de séquence (système et objet)
– Diagramme de séquence système phase d’analyse
– Diagramme de séquence objet phase de conception
• Diagramme de communication
4
DIAGRAMME DE SÉQUENCE OBJET
5
Présentation - Rappel
• Un diagramme de séquence est à deux dimensions:
– Dimension verticale : le temps
• L'ordre (le séquencement) d'envoi d'un message est
déterminé par la position du message sur l'axe vertical du
diagramme
• Le temps s'écoule "de haut en bas" de cet axe
– Dimension horizontale : les objets (et les acteurs)
6
Diagramme de séquence système VS
diagramme de séquence objet
Analyse
Conception
7
Source : UML2 par la pratique
Exemple
Diagramme de séquence objet du CU
Source : UML2 Analyse et
« Ajouter emprunt » conception
8
Concepts clés
• Objets
• Lignes de vie
• Zones d’activation
• Messages
• Structures de contrôle :
– Fragments combinés
9
Objet, ligne de vie et zone d’activation
• Objet :
• Exemple :
– Représente une instance :
• d’un acteur
• d’une classe
• Ligne de vie :
– Traduit l'existence d'un objet pendant une période
de temps
Zone d’activation :
Représente le temps durant lequel un objet est actif : en train d'exécuter
une opération
10
Messages (1/5)
• Les objets communiquent entre eux via des messages
• Types des messages:
– Message synchrone
– Message asynchrone
– Message de retour
– Message de création
– Message de destruction
11
Messages
(2/5)
• Un message synchrone traduit l’invocation d’une opération:
– Un objet demande à un objet appelé d’exécuter une opération
– L’objet émetteur reste bloqué le temps que dure l’invocation de la
méthode
– Un objet peut envoyer un message à lui-même pour invoquer une
méthode locale : message réflexif
• Syntaxe :
numéro : [résultat = ] nomOpération([paramètres])
12
Messages
(3/5)
• Remarque
– L’opération invoquée doit être définie dans la classe relative à
l’objet récepteur et visible dans la classe relative à l’objet
émetteur
• Exemple :
13
Messages (4/5)
• Message asynchrone
– Envoyer un signal à un objet
– Invoquer une méthode sans bloquer l’émetteur
• Message de retour
– Renvoyer une valeur à l’objet appelant
• Message de création d’instance (synchrone)
– Invoquer l’opération de création d’un objet
• Message de destruction d’instance (synchrone)
– Invoquer l’opération de destruction d’un objet
14
Messages
(5/5)
• Exemple :
15
Exemple
• Exemple de traduction d’un diagramme de séquence
objet en code java:
public int jouer()
{
int v=0,v1,v2;
[Link]();
v1=[Link]();
[Link]();
v2=[Link]();
r = v1 + v2;
return v;
}
Adapté à partir du lien : [Link]
16
Les structures de contrôle
(1/2)
• Fragments combinés
– Fragment d’interaction comportant un opérateur
d’interaction (exemple : loop, opt, alt, ref…)
• Voir chapitre 2 : analyse dynamique
• Exemple 1 :
17
Source : Livre UML2 analyse et conception
Les structures de contrôle
(2/2)
• Exemple 2 :
18
Source : Livre UML2 analyse et conception
DIAGRAMME DE COMMUNICATION
19
Présentation
(1/2)
• Diagramme de communication (collaboration en UML 1.x)
• Une seule dimension : objets (et acteurs) + messages échangés
• L'ordre (le séquencement) d'envoi d'un message est
déterminé par la numérotation du message
• Présente les interactions entre les objets en insistant sur les
liens entre les objets
Les liens entre les objets se traduisent par des associations
entre les classes correspondantes à ces objets
20
Présentation
(2/2)
• Exemple : Un vol est ouvert à la réservation et refermé
sur ordre de la compagnie
Source : Livre UML2 par la pratique 21
Concepts clés
(1/5)
• Objets
– Un objet représente une instance :
• d’une classe
• d’un acteur
• Les connecteurs
– Relations entre les objets
• Les messages
– Ordonnés selon un numéro de séquence croissant
– Syntaxe
N° du message [clause d’itération][condition] : var =
nom_du_message(par)
22
Concepts clés
(2/5)
• N° du message
– N° hiérarchique du message (1, 1.2, …)
– 1a, 1b : envoi simultané de messages
• [clause d’itération]
– Envoi répété du message *[nombre_de_fois]
– Envoi en parallèle de plusieurs messages *||[nombre_de_fois]
• [condition]
– Condition de garde pour déclencher le message
• var : valeur de retour d’un message
• par : liste des paramètres du message
– Présentation
• Sens du message est précisé par une flèche
23
Concepts clés
(3/5)
• Exemple 1 : Ce diagramme montre la mise en œuvre de
l’opération fermerPortes() qui permet de fermer toutes les
portes d’un train.
24
Source : Livre UML2 pratique de la modélisation
Concepts clés
(4/5)
• Message de retour
– Certains messages sollicitent un résultat
– Exemple :
• Message réflexif
– Exemple de représentation
25
Concepts clés
(5/5)
• Exemple 2 :
26
Source : Livre UML2 par la pratique
DIAGRAMME DE SÉQUENCE VS
DIAGRAMME DE COMMUNICATION
27
Diagramme de séquence vs diagramme de
communication
• Les deux diagrammes véhiculent les mêmes
informations, lors de nos travaux de modélisation, nous
opterons soit pour l’un soit pour l’autre
• Le diagramme de séquence met l’accent sur les
séquences d’appel
• Le diagramme de communication met en évidence les
liens entre les objets
28
Etude d’un système d’information d’une bibliothèque (tirée du livre UML2 par la
pratique)
ETUDE DE CAS
29
Exemple
(1/6)
• S.I. d’une bibliothèque qui permet d’emprunter des
livres
Diagramme de cas d’utilisation
30
Exemple
(2/6)
31
Exemple
(3/6)
• Les opérations système du cas d’utilisation «Enregistrer les emprunts »
sont détaillées sur le diagramme de séquence système suivant :
32
Exemple
(4/6)
Post-conditions
• Pré-conditions un prêt p a été créé ;
– le catalogue de livres existe et n’est pas vide ; l’attribut date de p a été positionné à la date du
– l’adhérent a été reconnu par le système et jour ;
n’a pas atteint le seuil maximal d’emprunts. l’attribut dateRetour de p a été positionné à (la
date du jour + deux semaines) ;
p a été lié au livre l dont l’attribut ISBN vaut
l’ISBN passé en paramètre ;
p a été lié à l’adhérent concerné et à la
bibliothèque.
Analyse
Conception
33
Exemple
(5/6)
Diagramme de séquence objet pour l’opération système « emprunterLivre » :
34
Exemple
(6/6)
Diagramme de communication pour l’opération système « emprunterLivre »
35
Architecture logicielle - Bref aperçu
• L’architecture logicielle est le processus de conception de
l’organisation globale du système et incluant
– La subdivision du logiciel en sous-systèmes.
– Les décisions à prendre concernant leur interactions.
– La détermination des interfaces (des contrats).
• Modèle de référence : modèle en couches :
– S’applique aux applications munies d’une interface graphique
manipulant des données persistantes.
– Architecture logique en 3 couches, 5 couches,…
36
Architecture logicielle – Modèle en 3 couches
(1/2)
• Modèle en 3 couches
– Couche présentation
– Couche métier
– Couche persistance
• Couche présentation
– Prend en charge les interactions entre les utilisateurs et le
logiciel
– Permet de visualiser les informations
– Traduit les commandes de l’utilisateur en actions sur les
autres couches
• Exemples : Une ligne de commande, une interface graphique, un
navigateur internet
37
Architecture logicielle – Modèle en 3 couches
(2/2)
• Couche métier
– Correspond à la partie fonctionnelle de l'application
– Décrit les opérations que l'application opère sur les données
en fonction des requêtes des utilisateurs
– Offre des services applicatifs et métier à la couche
présentation en s'appuyant sur les données de la couche
inférieure
• Couche persistance
– Permet le stockage et la récupération des données
– Conserve les données neutres et indépendantes des serveurs
d'applications ou de la logique métier
38
Remarques
• Communications
– Présentation – Présentation
– Présentation – Métier Présentation – Persistance
– Métier – Métier
– Métier – Persistance
– Persistance – Persistance
39
Représentation
Gestionnaire Entité Entité
IHM
Source : Livre UML2 par la pratique
40
Exemple
Source : livre UML2 par la pratique
41
Représentation
Entité
IHM Gestionnaire
Entité
Source : Livre UML2 par la pratique
42
Exemple
:EcranGeneral
f:Formation
:EcranFormation :Formations
Source : livre UML2 par la pratique
43
DIAGRAMME D’ETAT-TRANSITION
44
Présentation
• Diagramme comportemental
• Utilisé pour les classes qui ont un comportement complexe
• Est associé à une instance d’une classe (objet) possédant plusieurs états
• Décrit comment un objet réagit à des événements en fonction de son état
courant et comment il passe à un nouvel état
45
Représentation
• Graphe orienté d’états et de transitions représentant un automate à
états finis
• Exemple : fonctionnement d’un bouton poussoir
– Suite à la pression sur le bouton poussoir la réaction de la machine dépend de son état
courant : si elle est en marche elle va s’arrêter et si elle est à l’arrêt elle se mettra en marche
46
Concepts clés
• État
– Activité
• Transition
– Évènement
– Condition de garde
– Action
• État composite
47
ÉTAT
48
État
• Un objet passe par plusieurs états durant sa durée de vie
• Un état : ensemble des valeurs des propriétés d’un objet
• Un objet à un état donné:
– Attend un évènement
– Accomplit une activité
• Etat initial
• Etat final
• Exemple :
49
TRANSITION
50
Transition (1/5)
• Décrit la réaction d’un objet lorsqu’un événement se produit
• Permet le passage d’un état à un autre
• Une transition possède en général :
– Un événement déclencheur
– Une condition de garde
– Une action
• Opération associée à la transaction
• Est non-interruptible
– Un état cible
51
Transition
(2/5)
• Présentation :
• Exemple simple :
52
Transition
(3/5)
• Transition réflexive ou transition propre
– L’état de départ et l’état cible sont identiques
– L’objet quitte un état pour y revenir
• Transition interne
– Transition qui se déclenche dans un état courant
– La transition a un état source mais d’état cible
• L’objet ne quitte pas l’état courtant
– Est inscrite dans l’état
53
Transition
(4/5)
• Illustration :
– Si on est dans l’état S et qu’il y a apparition d’une occurrence de
Event a alors x est activée
– Si on est dans l’état S et qu’il y a apparition d’une occurrence de
Event b alors y (on sort d’abord de S) puis z (déclenchée car
suffixant Event b) et enfin w (on re-rentre dans S) sont activées
54
Transition
(5/5)
• Exemple 1 : Diagramme d’états-transition de la cabine d’un ascenseur
• Exemple 2 : Diagramme d’états-transition du monnayeur d’un distributeur de boissons
55
ÉVÈNEMENT
56
Évènement
(1/2)
• Se produit à un instant donné et n’a pas de durée
• Déclenche une transition
• Types d’événements :
– Type appel de méthode (call)
– Type signal
• Exemple : clic de souris, interruption d’entrées-sorties
– Type changement de valeur (vrai/faux) : évaluation d’une expression
booléenne : when (condition_booléenne)
57
Évènement
(2/2)
– Type temporel : événement lié à l’écoulement du temps
• Après une durée précise: after (durée)
• A une durée précise: when (date)
• Exemple :
– Après deux minutes d’inactivité, l’écran de veille sera activé
58
ACTIVITÉ
59
Activité
(1/2)
• Spécifie un comportement optionnel de l’objet lorsqu’il atteint un nouvel état
(après le déclenchement d’une transition)
• Est interruptible
• Types d’activités :
– Activité d’entrée (entry) : actions effectuées au moment de l’entrée dans un
état
– Activité durable (do) : indique un travail effectué tant que l’objet est dans l’état
– Activité de sortie (exit) : actions effectuées au moment de la sortie d’un état
60
Activité
(2/2)
• Exemple:
– Dans un jeu vidéo, le personnage en état d’attaque va tout
d’abord sortir son arme, attaquer l’adversaire et ranger son
arme à la fin de l’attaque
61
Exemple
• Simulation d’un personnage de jeu vidéo :
62
ÉTAT COMPOSITE
63
État composite
(1/3)
• État qui contient plusieurs états
• Forme 1 : décomposition cachée
• Forme 2 : décomposition explicite
64
État composite
(2/3)
• Exemple : 2 représentations possibles pour factoriser
l’état combiné décroché
Pour tous ces états
le combiné est
décroché
65
Source : UML2 par la pratique
État composite
(3/3)
Ou
• Solutions de l’exemple:
66