Académique Documents
Professionnel Documents
Culture Documents
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
T : TourControle
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
2.1.1 : Demarrer 1 : allumer :Chainehifi 2 : lecture(CD) 2.1 : lecture() 2.1.2 : afficherTitre :LecteurCD
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
[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
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.
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
: 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
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
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.
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
Mission
MissionTraction MissionTraction
MissionDeTourne
nature
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
1.3.6 * : ouvrir()
Ce message est envoy de manire squentielle un certain nombre de fois. Exemple 4
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
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