Concepts : Evénements
et signaux
Rubriques
Dans le monde réel, des choses se passent, souvent de manière simultanée et
imprévisible. Les "choses qui se passent" sont appelées "événements".
Dans le contexte des automates à états, les événements modélisent l'occurrence
d'une impulsion pouvant déclencher une transition d'état.
Les événements peuvent être des signaux, des appels, le passage d'heure ou un
changement d'état. Des événements peuvent être synchrones ou asynchrones.
Un signal est une sorte d'événement qui représente la spécification d'une
impulsion asynchrone entre deux instances.
Des événements peuvent être externes ou internes. Les événements externes
sont ceux qui sont transmis entre le système et ses acteurs.
Les événements internes sont ceux qui sont transmis avec les objets résidant
dans le système. Il existe quatre types d'événements : signaux, appels,
passage d'heure et changement d'état.
Un signal représente un objet diffusé (émis) de manière asynchrone par un
objet, puis reçu (intercepté) par un autre. Les exceptions sont un exemple de
type de signal.
Les signaux peuvent comporter des instances, bien que celles-ci ne
soient pas généralement modélisées de manière explicite.
Les signaux peuvent être impliqués dans des relations de généralisation,
activant la modélisation des hiérarchies d'événements.
Les signaux peuvent être dotés d'attributs et d'opérations. Les attributs
d'un signal lui servent de paramètres.
Un signal peut être émis en tant qu'action d'une transition d'état dans
un automate à états ou l'envoi d'un message dans une interaction. L'exécution
d'une opération peut également émettre des signaux. Lors de la modélisation
d'une classe ou d'une interface, une part importante de la spécification du
comportement de l'élément réside dans la spécification des signaux pouvant être
émis par ses opérations. La relation entre une opération et les événements
qu'il peut émettre est modélisée à l'aide d'une relation de dépendance,
stéréotypée par <<send>>.
Juste comme un événement de signal représente l'occurrence d'un signal, un
événement d'appel représente la diffusion d'une opération. Dans les deux cas,
l'événement peut déclencher une transition d'état dans un automate à états.
Alors qu'un signal est un événement asynchrone, un événement d'appel est, en
général, synchrone. Ceci signifie que lorsqu'un objet invoque une opération
sur un autre, le contrôle passe de l'émetteur au récepteur
jusqu'à ce que l'opération soit terminée, moment où l'émetteur reprend le
contrôle. La modélisation d'un événement d'appel est visualisée de la
même façon qu'un événement de signal.
Dans les deux cas, l'événement s'affiche avec ses paramètres comme déclencheur
d'une transition d'état.
Bien qu'il n'y ait pas d'aides visuelles permettant de distinguer un
événement de signal d'un événement d'appel, la différence apparaît dans la classe du
récepteur, étant donné qu'il va déclarer une opération traitant l'événement d'appel.
Dans le cas d'un signal, il y a une transition dans l'automate à états qui est
déclenchée par le signal.
Un événement temporel représente le passage d'heure. Les événements
temporels sont utilisés pour synchroniser des parties du système dépendantes de
l'heure à l'aide d'un mécanisme d'horloge commun.
Un événement de changement représente un changement de l'état du système ou de
la satisfaction de certaines conditions.
Les événements de signaux et d'appel impliquent au moins deux objets :
un émetteur et un récepteur.
Lorsque le signal est émis, l'émetteur le diffuse, puis continue son flux de
contrôle sans attendre de retour émanant du récepteur.
Ceci est en parfait contraste avec la sémantique de l'appel d'opération dans
lequel l'émetteur attend que le récepteur réponde avant de reprendre son flux de
contrôle. Pour cette raison, les opérations sont généralement utilisées pour
représenter un comportement "bloquant" (comportement qui bloque ou
empêche d'autres choses de se produire), alors que les signaux représentent un
comportement non bloquant.
L'acte d'un objet émettant un signal à un ensemble d'objets est appelé
"multidiffusion" et est représenté par l'envoi d'un signal à un
conteneur contenant un ensemble de récepteurs.
La diffusion est l'acte d'émission d'un signal à tous les objets d'un système.
Elle est représentée par l'émission d'un signal à un objet qui représente le
système dans sa totalité. Cet "objet système" en retour réalise le
mécanisme de distribution du message qui s'assure que le signale est envoyé à
tous les objets appropriés du système.
|