Académique Documents
Professionnel Documents
Culture Documents
mb exemplaire centrale
leLivre:Livre appelant appelé
:MembreBiblio :Exemplaire téléphonique
unMembre
:EmprunteurDeLivre
1. décrocher()
a
A 1. emprunter(exemplaire) 1.1. okPourEmprunter()
{b-a < 1 sec.}
2. envoyer_signal()
b
• Si deux messages, dont l’envoi est conditionnel à • On ajoute une clause d’itération (introduite par un ∗) à
l’évaluation d’une garde, sont destinés à un même côté du message pour spécifier le nombre d’itérations
objet, on doit pouvoir exprimer le comportement de ou l’invariant de l’itération
l’objet dans chaque cas • ∗[i:=1..10] m()
• Le message est envoyé 10 fois
o1:Obj1 o2:Obj2 • ∗[x<10] m()
• Le message est envoyé de façon répétée jusqu’à
[i=0] 3.1: foo() ce que x soit plus grand ou égal à 10
• ∗[item not found] m()
[i=1] 3.1: bar() • Le message est envoyée de façon répétée
jusqu’à ce que l’item soit trouvé
o:Obj
Branchement : lorsque les
1.a. foo()
messages n’ont pas de garde
mutuellement exclusive, ils
1.b. bar() sont concurrents
Interactions concurrentes 27
o1:Obj o2:Obj
1: foo()
2:bar()