Short Description
An end-to-end latency is the observable time difference between a pair of stimulus and response events of a complex system. An end-to-end latency constraint puts limits on the time differences allowed for such a system, without regard to its internal structure.
End-to-end latency constraints can be of two forms. A reaction constraint says that for each occurrence of the stimulus event, a matching response event occurrence must be found within the prescribed time limits. An age constraint, on the other hand, states that for each occurrence of the response event, a matching stimulus event occurrence must exist. In general, a reaction constraint allows for the responses to occur more (but not less) frequently than the stimuli, while an age constraint allows a response event to be matched by a busier (but not slower) stimulus.
Links to TADL2 concepts
· EventChain
· ReactionConstraint
· AgeConstraint
· DelayConstraint
Abstraction level specific list of applicable events
The constraints can be applied to any type of events, see supporting material below.
Context Specific Example
The logical connection between a stimulus and a response event can be expressed using an eventChain construct:
c = eventChain {
stimulus = eventFunctionFlowPort { port = PedalIn },
response = eventFunctionFlowPort { port = BrakeOut }
}
To express a maximal reaction time of 200 ms for the event chain c one writes:
r = reactionConstraint {
scope = c,
upper = 200 ms
}
Figure 1. Reaction constraint with attributes minimum and maximum, and a reference to a scope event chain.
Giving c a maximal age of 200 ms instead looks as follows:
a = ageConstraint {
scope = c,
upper = 200 ms
}

Figure 2. Age constraint with attributes minimum and maximum, and a reference to a scope event chain.
To specify a minimal reaction time or minimal age of 50 ms as well, one just adds the attribute
lower = 50 ms
to any of the above constraints. An absent lower attribute is equal to 0.
Reaction and age constraints can alternatively be written using a common delay constraint, which also bypasses the use of an explicit event chain. The following two definitions are equivalent to the previous ones:
r = delayConstraint {
source = eventFunctionFlowPort{ port = PedalIn },
target = eventFunctionFlowPort{ port = BrakeOut },
upper = 200 ms
}
a = delayConstraint {
source = eventFunctionFlowPort{ port = BrakeOut },
target = eventFunctionFlowPort{ port = PedalIn },
upper = 200 ms
}

Figure 3. Delay constraint with attributes upper and lower. |