Executable UML allows for a signal to be sent at some time in the future.
This action causes the signal to be received after the duration expires. (It is not relevant whether the sender delays sending the signal, or the receiver delays receipt. That decision is properly the domain of the model compiler.) A delayed signal cannot be manipulated directly by the application, because the delayed signal belongs in the domain of the model compiler, and any such manipulation would constitute domain pollution. However, there remains a need to refer to a delayed signal, for example, to cancel it:
There can be at most one delayed signal of a given name (an event specification) outstanding for each sender-receiver instance pair at any one time. Finally, a delayed signal can be caused to be produced at an exact time. The "exact time" is determined by the sender or receiver, according to the wishes of the model compiler.
This type of signal can be canceled too, using the same cancel action. |