QP/C  7.3.4
Real-Time Embedded Framework
No Matches
Software Architecture Specification

Core Classes in QP

Purpose and Scope

This document (Unique Identifier: DOC-QP-SAS) describes the architecture for the QP Real-Time Embedded Framework (RTEF). This software architecture description is designed to be most helpful to the QP Application developers, who are also the primary users of the QP Framework.

This document is part of the QP Certification Kit, which has been specifically designed to aid companies in safety certification of their software based on the QP Framework treated as commercial off-the-shelf (COTS) software.

Revision History

The revision history of the document DOC-QP-SAS is as follows:

Revision QP/C
By Description
0.0 7.3.0 2023-06-30 MMS Initial Release



The following package diagram shows the main components and context of use of the QP Framework. The architecture is layered, with QP Application on top using services of the QP Framework in the middle, which in turn uses services of the Kernel/RTOS at the bottom.

QP™ Framework Package Diagram
Because this Architecture Design Description is primarily intended for embedded software developers, this document covers the QP layers from top to bottom, in the order most relevant for the development of QP Applications.

QP Application

At the top sits the QP Application, which consists of Active Objects and Events. The application is not a part of QP, but rather is derived from the QP Framework that supplies the base classes as well as the API to be used in the application.

QP Framework

The QP framework right below the Application provides the base classes and APIs to be specialized by the QP Applications. QP Framework also provides the runtime environment to execute the QP Application on an embedded target.

QP provides the QActive abstract base class to be specialized into concrete Active Objects in the QP Application. The QActive abstract base class derives, in turn, from the QHsm base class, which provides the State Machine Implementation. QP provides also the QEvt base class for derivation of events with parameters.


"Kernel/RTOS" package at the bottom executes the Active Objects. Since this can be accomplished in several different ways, the QP specification offers several options in form of built-in kernels as well as traditional RTOS and General-Purpose OS environments.

The built-in kernels allow the QP Framework to run standalone without any 3rd-party RTOS. QP can be also configured (at compile time) to work with many traditional RTOSes and general-purpose OSes (such as Windows and Linux).

Object Orientation

The QP Framework is fundamentally object-oriented, which means that the framework itself and the QP Applications are fundamentally composed of classes. Consequently, this Architecture Design Description assumes an object-oriented point of view, utilizing the concepts of class, encapsulation, inheritance and polymorphism.

The object-oriented point of view does not impose the choice of object-oriented programming language. In traditionally procedural languages, such as C, object-oriented concepts can be applied as design patterns. A set of such patterns for the C programming language is described in the AppNote "Object-Oriented Programming in C".

Deriving QP Applications

The main mechanism of deriving an application from the framework is by inheriting the base classes provided by the framework and specializing them for the application at hand.


[DOC-QP-SRS] Software Requirements Specification
[DOC-QP-SDS] Software Design Specification

Core Classes in QP