This section contains quality attributes (a.k.a., non-functional requirements) of the QP Framework
SRS-QP-20_00 |
---|
All services provided by QP must not use the standard heap |
Description QP Framework must not force Applications to use potentially unsafe and indeterministic memory allocation policies, like the standard heap. In other words, the QP Framework should internally use only static memory with worst-case memory consumption known at compile-time. |
SRS-QP-20_01 |
---|
All services provided by QP shall use limited and known amount of call stack |
Description The call stack (or multiple call stacks, if used) is a limited resource taking up a significant portion of the precious RAM in deeply embedded applications targetted by QP Framework. The stack is a critical) resource in that its exhaustion (a.k.a. stack overflow) represents a system _failure, rather than merely some degradation of performance. Therefore, it is imperative for QP Framework (and QP Application by extension) to use the call stack efficiently and deterministically. |
SRS-QP-20_30 |
---|
QP Framework shall be portable to a wide range of real-time kernels |
Description |
SRS-QP-20_40 |
---|
All State Machine Implementation Strategies provided by QP Framework shall be easy to debug |
Description "Easy to debug" state machine implementation means that it should always be possible to set a single debugger breakpoint in the code to stop upon the execution of a given state machine element, such as a state transition or entry to a given state, exit from a given state, a given guard condition, etc. An example of a hard to debug implementation would be one in which a given transition or entry to a state would be represented more than once in the code. A single breakpoint would not necessarily be sufficient to guarantee that the breakpoint is reached when that element is executed. Hard to debug state machine implementations are often the result of "flattening" the hierarchical state machine to the non-hierarchical representation, which causes repetitions of transitions. |
Rationale The ease of debugging is essential for effective development and maintenance of the state machine code. |