Vous êtes sur la page 1sur 18

Chapitre 5 : La modlisation des interactions entre objets Squence 1 : Concepts de base

Objectifs : Comprendre la modlisation de la communication entre objets Savoir construire des diagrammes dinteraction avec le langage UML Savoir utiliser les diagrammes dinteraction dans diffrents contextes Savoir croiser les diagrammes dinteraction avec dautres diagrammes UML Mots cls : Interaction, Message, diagramme dinteraction, diagramme de squence et diagramme de collaboration

Le concept d'interaction
Dfinition Une interaction est un comportement qui comprend un ensemble de messages changs par un ensemble dobjets dans un certain contexte pour accomplir une certaine tche. Exemple 1 : Linteraction entre les objets T:TourControle et A:Avion

Un message 1 : decoller A : Avion

T : TourControle

Un objet

Exemple 2 : Une interaction entre un acteur et un objet

Le concept de message
Dfinition Les messages reprsentent une communication unidirectionnelle entre objets qui transporte de l information avec l intention de dclencher une raction chez le rcepteur. Typologie des messages On distingue deux grands types de message: Appel d opration: demande un objet d excuter une opration. Il s'agit d'une invocation synchrone d'une opration avec un mcanisme pour rendre ensuite la main l'metteur. Envoi d'un signal : envoie d un signal un objet . Il s'agit d'une communication asynchrone explicite et nomme entre deux objets. Trois autres types de messages peuvent tre particulariss : Retour : ce type de message retourne une valeur l'appelant, Cration : ce message demande la cration d'un objet, Destruction : ce message demande la suppression d'un objet. Commentaires Le concept de message unifie toutes les formes de communication entre objets, en particulier lappel de procdure, lvnement discret, le signal entre flots dexcution ou encore linterruption matrielle. Un message est la matrialisation d'une communication au cours de laquelle se transmettent des informations et qui permet ventuellement d'obtenir des rsultats (paramtre de retour ou excution d'une activit).

Illustration

Commentaires 1/ Le type de message le plus utilis est "l'appel" d'opration. Il consiste invoquer une opration sur un autre objet. 2/ Lorsqu'un objet envoie un appel d'opration ou un signal un autre objet, il peut fournir des paramtres dans le message. 3/ Quand un objet envoie un message pour passer le contrle un autre objet, il peut envoyer une valeur. 4/ Les messages peuvent avoir pour origine ou pour destination des objets acteurs. 5/ Un message peut tre rflexif. Il peut s'agir par exemple d'un envoi de message entre un objet composite et ses composants.

Unobjet

Message rflexif

Unobjetcomposite

Uncomposanta

Uncomposantb

lments de spcification d'un message


La description d'un message comporte les lments suivants: - un nom pour identifier le message, on utilise en gnral le mme nom pour dsigner le message et l'vnement correspondant la rception du message, voire l'action dclenche, - la squence permet de prciser l'ordre d'mission des messages. La squence peut contenir ou pas des embotements, - des arguments, - une condition d'mission, le message est mis uniquement si la condition est vraie. Il existe dans UML une syntaxe pour spcifier les messages. On fournit dans les exemples cidessous des illustrations de description de message. Un squence ddie la spcification de message est propose dans ce chapitre. Illustration 1 : Messages avec numro de squence

2.1.1 : Demarrer 1 : allumer :Chainehifi 2 : lecture(CD) 2.1 : lecture() 2.1.2 : afficherTitre :LecteurCD

Commentaires 1/ Une squence commence par le chiffre 1.

2/ Les messages allumer() et lecture (CD) sont de mme niveau. 3/ Le message Lecture(CD) dclenche l'envoi du message Lecture(), qui dclenche l'envoi des messages Dmarrer() puis AfficherTitre() . Illustration 2 : Envoi de Message avec itration

Illustration 3 : Envoi de message conditionnel

[X>Y]: Message A
Illustration 4 : Envoi de message avec rsultat

P := question A
Illustration 5 : Envoi de message avec des arguments

Message Argument A
La notation : Les diagrammes d'interaction
UML fournit deux types de reprsentation des interactions : - Les diagrammes de collaboration - Les diagrammes de squence Les deux types de diagrammes sont quivalents. La diffrence entre ces deux diagrammes est

Argument B

une diffrence de centre d'intrt. Les diagrammes de collaboration mettent en vidence les liens entre objets et les squences d'envois de messages sur ces liens. Les diagrammes de squence mettent en vidence la chronologie des envois de messages.

Diagramme de Collaboration
Le diagramme de collaboration est un graphe dobjets et de liens entre objets avec des messages attachs ces liens. Ce diagramme souligne les relations structurelles entre les objets qui changent les messages. Exemple 1

Diagrammes de squence
La reprsentation se concentre sur l'expression temporelle des interactions. Le diagramme de squence permet de visualiser la squence des messages par une lecture de bas en haut. Les lments reprsents sur un diagramme de squence sont: Les objets qui participent linteraction avec ventuellement leurs tats, Les messages entre les objets, Une ligne verticale en pointill est attache chaque objet et reprsente sa ligne de vie, Une priode dactivit correspond au temps pendant lequel un objet effectue une action, soit directement, soit par lintermdiaire dun autre objet qui lui sert de sous-traitant. Les priodes dactivit se reprsentent par des bandes rectangulaires places sur les lignes de vie. Le dbut et la fin dune bande correspondent respectivement au dbut et la fin dune priode dactivit,

Les points de contrle. Il est possible d'ajouter du pseudo-code sur la partie gauche du diagramme pour reprsenter des boucles et des branchements, Les contraintes temporelles ventuelles. Principes de reprsentation dun diagramme de squence

Un exemple simple : Un diagramme de squence systme

Ce diagramme de squence dcrit linteraction entre un client et un site dachat dans le cadre dun achat de livre. Ce diagramme ne mettant en uvre quun acteur et le systme est appel diagramme de squence systme.

Un autre exemple de diagramme de squence

Commentaires Ce diagramme dtaille le diagramme prcdent. Il met en vidence les interactions entre les objets du systme au cours dun achat par un client. Fragments de diagrammes de squence types avec boites dactivation

Contextes dutilisation des diagrammes dinteraction


Les diagrammes dinteraction peuvent tre utiliss dans plusieurs situations : Modliser le contexte dun systme On peut utiliser un diagramme de collaboration de la manire suivante: Le systme tudi est reprsent par un objet central, Cet objet central est entour par d'autres objets symbolisant les diffrents acteurs, Des liens relient le systme chacun des acteurs, Sur chaque lien sont montrs les messages en entre et en sortie du systme sans numrotation. Ce diagramme de squence est appel diagramme de squence systme dans [Roques 2002] Illustration 1 : Exemple emprunt [Roques 2002]

: Responsabl e Logi stique crati on, m odi fi cati on, : Rcepti onniste annul ati on com m and e crati on cl ient condi ti ons com m ande en-co urs crati on, m odi fi cati on pl an affectati on ressources i nci dent m ission com m ande trai ter tat ressources : Rpartiteur crati on, m odi fi cati on m issi on crati on, m odi fi cati on profi l uti li sateur

statistiques transport

confi rm ation com m ande en-co urs

SIVEx

: Cli ent

rglem ent

l istes col is com m ande tiquette bordereaux m issi on factures arrt/dpart ta pe vnem ent m i ssi on i denti fi cati on col is poi ntage coli s dbut/fin inventaire

: Adm i nistrateur Systm e

factures relance : Com ptabl e : Progi ciel de Com ptabi l it

: Oprateur de Quai : Chauffeur

Dtailler un scnario de cas dutilisation Un scnario dcrit une excution particulire d'un cas d'utilisation du dbut la fin. Un scnario reprsente une squence d'interactions entre le systme et ses acteurs. Illustration 1 : niveau de dtail de type "boite noire"

Le systme est ici vu comme une boite noire et les messages sont changs entre le systme et ses acteurs. Ce type de diagramme de squence est appel diagramme de squence systme. Concevoir ou documenter une mthode de classe Les diagrammes de squence (ou de collaboration) peuvent tre utiliss pour reprsenter et documenter des mthodes mettant en jeu plusieurs classes diffrentes avec peu d'alternatives. Par exemple, La mthode qui calcule le total dune vente peut tre reprsente par le diagramme de collaboration ci-dessous. En particulier cette reprsentation permet de rflchir sur les responsabilits des classes.

Correspondance entre les diagrammes de squence et les autres diagrammes UML


Correspondance entre diagrammes de squence et diagrammes de classes

L'envoi d'un message de type "appel" un objet provoque le dclenchement d'une opration. Cette opration doit tre spcifie dans la dclaration de sa classe. En terme de diagramme, pour chaque message de type "appel" dans un diagramme de squence, il existe dans la classe (de l'objet destinataire du message) du diagramme de classe une opration de mme nom que le message. De mme les paramtres des messages doivent tre en correspondance avec les attributs des classes. Correspondance entre diagrammes de squence et diagrammes d'tat Il existe une correspondance entre les vnements dun diagramme dtat dun objet et les messages des diagrammes de squence. Par exemple, lvnement ev2 qui fait changer ltat de lobjet a correspond un envoi de message de lobjet b vers lobjet a .

a:A

b:B

ev0

EA0 ev1 ev2

EB1 ev1 / send a.ev2 EB2

ev0 / send b.ev1 EA1 ev2 EA2

Evnement mis par un automate, et reu par un autre


Correspondance entre les paramtres des messages et les attributs des classes Dans lexemple ci-dessous, on montre que les paramtres de certains messages dun diagramme de collaboration sont en correspondance avec un diagramme de classe.

modifier <<create>>(nom, nature) En attente modifier Valider(dateDepartPrevue) Valide

Paramtres des messages

reference dateDepartPrvue dateArrivePrevue commentaire

Mission

MissionTraction MissionTraction

MissionDeTourne

nature

Squence 2 : La spcification des messages


Objectifs : Savoir spcifier de manire dtaille les messages sur les diagrammes dinteraction Mots cls : Message Pr-requis : Les concepts de base de la modlisation des interactions entre objets (squence 1, Chapitre 5)

Syntaxe dtaille des messages


UML permet de spcifier de manire trs prcise l'ordre et les conditions d'envoi des messages sur un diagramme dynamique. Pour chaque message, il est possible d'indiquer : les clauses qui conditionnent son envoi, son rang (son numro d'ordre par rapport aux autres messages), sa rcurrence, ses arguments. La syntaxe d'un message est la suivante : [pr "/"] [["["cond"]"] [sq] ["*"["||"]["["iter"]"]] ":"] [r ":="] msg"("[par]")" Commentaires pr : prdcesseurs (liste de numros de squence de messages spars par une virgule ; voir aussi "sq"). Indique que le message courant ne sera envoy que lorsque tous ses prdcesseurs le seront aussi (permet de synchroniser l'envoi de messages). cond : condition de garde, expression boolenne. Permet de conditionner l'envoi du message, l'aide d'une clause exprime en langage naturel. sq : numro de squence du message. Indique le rang du message, c'est--dire son numro d'ordre par rapport aux autres messages. Les messages sont numrots la faon de chapitres dans un document, l'aide de chiffres spars par des points. Ainsi, il est possible de reprsenter le niveau d'embotement des messages et leur prcdence. Exemple : l'envoi du message 1.3.5 suit immdiatement celui du message 1.3.4 et ces deux messages font partie du flot (de la famille de messages) 1.3. Pour reprsenter l'envoi simultan de deux messages, il suffit de les indexer par une

lettre. Exemple : l'envoi des messages 1.3.a et 1.3.b est simultan. iter : rcurrence du message. Permet de spcifier en langage naturel l'envoi squentiel (ou en parallle, avec "||") de messages. Notez qu'il est aussi possible de spcifier qu'un message est rcurrent en omettant la clause d'itration (en n'utilisant que "*" ou "*||"). r : valeur de retour du message. Permet d'affecter la valeur de retour d'un message, pour par exemple la retransmettre dans un autre message, en tant que paramtre. msg : nom du message. par : paramtres (optionnels) du message.

Exemples dillustration
Exemple 1

3 : bonjour()
Ce message a pour numro de squence "3". Exemple 2

[heure = midi] 1 : manger()


Ce message n'est envoy que s'il est midi. Exemple 3

1.3.6 * : ouvrir()
Ce message est envoy de manire squentielle un certain nombre de fois. Exemple 4

3 / *||[i := 1..5] : fermer()


Reprsente l'envoi en parallle de 5 messages. Ces messages ne seront envoys qu'aprs l'envoi du message 3. Exemple 5

1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom)


Ce message (numro 2.5) ne sera envoy qu'aprs les messages 1.3 et 2.1, et que si "t < 10s". Exemple 6

1.3 / [disk full] 1.7.a * : deleteTempFiles() 1.3 / [disk full] 1.7.b : reduceSwapFile(20%)
Ces messages ne seront envoys qu'aprs l'envoi du message 1.3 et si la condition "disk full" est ralise. Si cela est le cas, les messages 1.7.a et 1.7.b seront envoys simultanment. Plusieurs messages 1.7.a peuvent tre envoys.

Squence 3 : Exercices
Exercice 1 : Etude de cas CEPAPUBLI
1. Construire le diagramme de contexte (au sens objet) pour le cas CEPAPUBLI

2. Construire les diagrammes de squence systme dans le cadre de ltude de cas CEPAPUBLI pour les cas d'utilisation maintenir le catalogue et effectuer une commande en ligne ( Site e-commerce)

Exercice 2
Diagramme de fonctionnement dynamique du "composite pattern" de Gamma Le composite pattern fournit un modle de reprsentation dobjets complexes. Le diagramme de classes associ ce pattern est donn ci-dessous :

Prsenter un diagramme de squence qui dcrit les envois de messages au moment de lappel de la mthode calculer taille pour un lment composite

Exercice 3 : Guichet automatique de banque


Cette tude de cas concerne un systme simplifi de guichet automatique de banque (GAB). Le guichet offre les services suivants : 1. Distribution dargent tout porteur de carte de crdit (carte VISA ou carte de la banque), via un lecteur de carte et un distributeur de billets 2. Consultation de solde de compte, dpt en numraire et dpt de chques pour les clients de la banque porteurs dune carte de crdit de la banque

Toutes les transactions doivent tre scurises et il est ncessaire de recharger le distributeur.

a) Fournir les cas dutilisation associs ce systme b) Prsenter les diagrammes de squence systme pour chacun des cas dutilisation

Exercice 4 : Etude de cas Organisme de formation


Pour chaque cas dutilisation identifi, construire les diagrammes de squence systme.

Vous aimerez peut-être aussi