QP/C  7.1.1
Real-Time Embedded Framework
No Matches

Software Architecture Specification (SAS) More...


 Core Classes in QP

Detailed Description

Core Classes in QP

This document is part of the QP Certification Pack, which has been specifically designed to aid companies in safety certification of their software based on the QP real-time embedded frameworks.

NOTE: This is just a preview. The complete QP Certification Pack can be requested from Quantum Leaps.


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.

Figure 200: QP™ Framework Package Diagram
Because this SAS is primarily intended for embedded software developers, this SAS 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 build-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 SAS document 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.


[SRS] Software Requirements Specification (SRS)
[SDS] Software Design Specification (SDS)

Core Classes in QP