Conception dynamique

UML, Diagrammes d'interaction, Programmation · course

Voir tous les documents en génie logiciel

Chapitre 5:

Conception dynamique

Année Universitaire

2015-2016

2016-2017

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

« Ajouter emprunt »

Source : UML2 Analyse et

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 :

– Représente une instance :

• d’un acteur

• d’une classe

• Ligne de vie :

• Exemple :

– 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;

de1.lancer();

v1=de1.lireValeur();

de2.lancer();

v2=de2.lireValeur();

Publicité

r = v1 + v2;

return v;

}

Adapté à partir du lien : http://www.wiziq.com/tutorial/23674-Diagramme-de-S-233-quence-UML

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 :

Source : Livre UML2 analyse et conception

17

Les structures de contrôle

(2/2)

• Exemple 2 :

Source : Livre UML2 analyse et conception

18

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.

Source : Livre UML2 pratique de la modélisation

24

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 :

Source : Livre UML2 par la pratique

26

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)

Publicité

• Pré-conditions

 Post-conditions

 un prêt p a été créé ;

– le catalogue de livres existe et n’est pas vide ;

– l’adhérent a été reconnu par le système et

n’a pas atteint le seuil maximal d’emprunts.

 l’attribut date de p a été positionné à la date du

jour ;

 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

Diagramme de communication pour l’opération système « emprunterLivre »

Exemple

(6/6)

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

IHM

Gestionnaire

Entité

Entité

Source : Livre UML2 par la pratique

40

Exemple

:

Source : livre UML2 par la pratique

41

Représentation

IHM

Gestionnaire

Entité

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

• État

– Activité

• Transition

– Évènement

– Condition de garde

– Action

• État composite

Concepts clés

47

Publicité

É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

• Présentation :

• Exemple simple :

Transition

(2/5)

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

• Exemple 1 : Diagramme d’états-transition de la cabine d’un ascenseur

Transition

(5/5)

•

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é

Source : UML2 par la pratique

65

• Solutions de l’exemple:

Ou

État composite

(3/3)

66