QP/C++  7.3.4
Real-Time Embedded Framework
Loading...
Searching...
No Matches
Software Architecture Specification
Remarks
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.

Static Views

Purpose and Scope

This document (Unique Identifier: DOC-QP-SAS) describes the software architecture for the QP Framework, as it is specified in the QP Software Requirements Specification (DOC-QP-SRS). The scope of this document is to provide a master plan for the overall organization and operation of QP Framework as well as QP Applications to provide the context necessary to understand the framework. The detailed QP Framework design is described in a separate Software Design Specification [DOC-QP-SDS].

Revision History

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

Revision QP/C
version
Date
(YYYY-MM-DD)
By Description
0.0 7.3.0 2023-06-30 MMS Initial Release

Audience

This architecture specification is primarily intended for Application Developers who develop QP Applications based on the QP Framework. The use case diagram depicted in Figure SAS-01 shows the main users and typical use cases they engage in.

Figure SAS-01: Users and main use cases of QP Application and QP Framework.

Document Organization

This Software Architecture Specification is presented by means various views:

  • static views show and explain the compile-time structure;
  • dynamic views show and explain the run-time structure and behavior.
Remarks
The presented features are in order of relevance for the Application Developers working on QP Applications, who are the primary audience of this requirements specification:

Object-Orientation

This Architecture Design Specification assumes an object-oriented point of view, utilizing the concepts of class, inheritance and polymorphism.

Remarks
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 reference Object-Oriented Programming in C [OO-in-C:23].

Object-Oriented Framework

This Architecture Design Specification describes an object-oriented software framework, which significantly differs from software organized as a "toolkit", such as a traditional Real-Time Operating System (RTOS).

A software framework (e.g., QP Framework) provides a reusable architecture for a specific problem domain (embedded, real-time systems in case of QP Framework). A framework has key distinguishing characteristics that differentiate it from a "toolkit" (see also Framework vs. Toolkit in DOC-QP-SRS):

  • inversion of control: In a framework, unlike in a toolkit or in standard end-applications, the overall program's flow of control is not dictated by the application, but by the framework.
  • extensibility: application developers can extend the framework by deriving and specializing base classes provided inside the framework.
  • non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting application-implemented extensions. In other words, developers can extend the framework, but cannot modify its code.

Note
The mechanism for deriving an application from a software framework, such as QP, is by inheriting the base classes provided by the framework and specializing them for the application at hand. (See also the extensibility characteristics of a framework enumerated above.)

Document Conventions

Architecture Item UIDs

For traceability, this Software Architecture Specification uses the Unique Identifiers (UIDs) with the following structure:

+++--------------- 1. work artifact class ('SAS' for Software Architecture Specification)
||| ++------------ 2. Project identifier (here 'QP' for QP Framework or 'QA' for QP Application)
||| || ++-++------ 3. Architecture Item ID
||| || || ||  +--- 4. Optional variant letter ('A', 'B', 'C'...)
||| || || ||  |+-- 5. Optional version number (1, 2, 3...)
||| || || ||  ||
SAS-QP-xx-yy[-A2]

Examples: SAS-QA-01_00, SAS-QP-02_12

UML Semantics

Most diagrams presented in this Software Architecture Specification conform to the well established semantics of Unified Modeling Language [UML2.5:17]. In case a diagram uses any "non-normative" elements, the semantics of those are explained in the diagram description.

References

[DOC-QP-SRS] Software Requirements Specification
[DOC-QP-SDS] Software Design Specification
[OO-in-C:23] Object-Oriented Programming in C, Quantum Leaps, GitHub, 2023
[UML2.5:17] "OMG Unified Modeling Language (OMG UML) Version 2.5.1", document formal/2017-12-05, OMG 2017

Static Views