![]() ![]() |
||||
|
||||
Flow implementation latency analysis on declarative AADL models follows the same algorithm
as that for instance models except for the first step, and for possibly recording the result of the
analysis as the latency property value of the flow specification.
The first step of a flow implementation latency analysis is to take into account the incoming
connection of a flow path or flow sink. If this connection is a delayed connection, then we
address sampling by causing a samplingLatency to be added to the totalLatency only if the
connection itself has a latency property value. Any additional processing latency coming into
the component will be handled in the enclosing flow implementation latency calculation. If that
connection declaration is not delayed the accumulated processing latency is not treated as
sampled since sampling rate information is not available. This approach makes checking
against expected latency as specified in the flow specification a little less precise if the delayed
connection is used on connection declarations into and out of components. Note that the end-
to-end flow latency analysis on instance models does always take into account delayed
connections correctly as it operates on semantic connections.
The flow implementation latency is calculated in terms of the immediate subcomponents in the
component hierarchy, not in terms of the leaf components. In other words, the flow
specification latency property value of the immediate subcomponent or its partitionLatency
property is used in the calculation. The flow specification latency property value may have been
explicitly specified by the user, or it may have been derived by calculating its flow
implementation’s latency. By processing the component implementation declarations bottom
up, the analysis plug-in propagates calculated latency of the flow implementation up the
hierarchy as flow specification latency, if no latency was specified, or if the flow implementation
latency exceeds the flow specification latency. This is done by adding a latency property
association and/or updating its latency value. |
||||