Predictability
- Predictability
- the soundness quality factor
representing the degree to which the behavior of an
application or
component
is deterministic (i.e., predictable) for a given set of inputs when in a given state
As illustrated in the preceding figure, Predictability is part of the following inheritance hierarchy:
- Type: Concrete
- Superclass: Soundness
- Subclasses:
The typical responsibilities of Predictability are to:
- Model the degree to which behavior is deterministic.
- Support the analysis and specification of
predictability requirements.
- Provide a foundation for evaluating the quality of an architecture.
Predictability is typically decomposed into the following aggregation hierarchy of subfactors:
Predictability is typically measured in terms of the:
- Percentage of behaviors that were deterministic.
Typical mechanisms for implementing predictability include:
- Deterministic scheduling mechanisms (e.g., use cyclic
executive, avoid event/interrupt driven scheduling).
- Avoid concurrency.
- Avoid automatic garbage collection.
The following guidelines have been found to be useful when
producing predictability requirements:
- Predictability is important for safety and testability.
- Predictability includes:
- Values of outputs
- Functional behavior (e.g., service requests).
- Timing and sequencing