QP/C++  7.3.4
Real-Time Embedded Framework
Loading...
Searching...
No Matches
Quality Attributes

Preemptive Dual-Mode Kernel

This section contains quality attributes (a.k.a., non-functional requirements) of the QP Framework

Performance

SRS-QP-20_00

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

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.

Portability

SRS-QP-20_30

SRS-QP-20_30
QP Framework shall be portable to a wide range of real-time kernels
Description

Ease of Development

SRS-QP-20_40

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.

Preemptive Dual-Mode Kernel