QP/C++  7.1.3
Real-Time Embedded Framework
No Matches
Requirements (SRS)
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.


This Software Requirements Specification (SRS [IEEE 29148]) describes the requirements for the QP Real-Time Embedded Framework (RTEF). The SRS contains the following Sections:


QP** Real-Time Embedded Framework (RTEF) is a reusable software infrastructure and a runtime environment based on the Active Object (Actor) design pattern as well as Hierarchical State Machines to specify the internal behavior of Active Objects (a.k.a. Actors ([ROOM:94], [UML 2.5])).

This SRS document specifies the intended features of the QP Framework, as well as the interfaces to other software, such as QP Applications derived from the QP Framework, as well as the lower-level software providing services to the QP Framework.

The features and requirements specified in this SRS can be ultimately implemented in various programming languages, so this document pertains to a whole family of QP RTEFs, currently consisting of QP/C and QP/C++ frameworks implemented in C and C++, respectively. Other possible implementations of these requirements and features might be added in the future.


This SRS document is primarily intended for:

  • Application Developers who develop QP Applications based on the QP Framework.
This SRS is designed to be most helpful to the QP Application developers, who are also the primary users of the QP Framework.

This SRS can also be of interest to:

  • Test Engineers,
  • Quality-Assurance Engineers,
  • Software Architects,
  • System Engineers,
  • Hardware Engineers, as well as
  • Managers who oversee the software development.
QP users and main use cases

Document Conventions

This SRS contains two types of requirements:

  1. Requirements for the QP Framework itself; and
  2. Requirements for the QP Application.
The requirements for the QP Application cannot be satisfied by the QP Framework alone, so they are outside the scope of this SRS document. However, these requirements are still essential because they capture the assumptions made in the QP Framework as to how the QP Application needs to operate. In case a requirement for the QP Application is not satisfied, QP Framework cannot guarantee the correct execution of the QP Application.

Requirement UIDs

This SRS uses the Unique Identifiers (UIDs) with the following general structure:

+-------------- 1. work artifact class (here 'R' for Requirement)
| ++----------- 2. Project identifier (here 'QP' for QP Framework or 'QA' for QP Application)
| || +--------- 3. one-digit feature number
| || | ++------ 4. two-digit Requirement number
| || | ||  +--- 5. optional letter ('A', 'B', 'C'... for sub-requirement)
| || | ||  |
R QP x yy [A]

Examples: RQA001, RQP002B

Use of Shall/Should/etc.

Requirement definitions use consistent terminology to indicate whether something is mandatory, desirable, or allowed.


Shall is used to denote mandatory behavior.


Should is used to denote a desirable behavior that should typically occur but might not happen all the time or might be optional in exceptional cases. The special cases are typically clarified in sub-requirements.


Mayis used to denote allowed behavior that is optional but possible.

"must not"

Must not is used to denote a constraint – behavior that is not allowed.

SRS Organization

After a high-level overview, this SRS document contains sections devoted to specific feature areas. Each section starts with a description of the feature, followed by the associated requirements. The SRS ends with the summary of QP Application Requirements, which are essential assumptions made in QP for the proper functioning of the QP Applications.

The presented features are in order of relevance for the Application Developers working on QP Applications, who are the primary audience of this SRS:


[IEEE 29148] "Requirement Specification Standard", ISO/IEC/IEEE 29148:2018
[QP-SAS] QP Framework Software Architecture Specification (SAS)
[QP-SDS] QP Framework Software Design Specification (SDS)
[ROOM:94] Bran Selic, Garth Gullekson, Paul T. Ward: Real-Time Object-Oriented Modeling,
New York, John Wiley & Sons Inc, 1994, ISBN 978-0-471-59917-3
[PSiCC:02] Miro Samek, Practical Statecharts in C/C++, CMP Books 2002.
[PSiCC2:08] Miro Samek, Practical UML Statecharts in C/C++, 2nd Edition, Newnes 2008.
[ROOM:94] Bran Selic, Garth Gullekson, Paul T. Ward: Real-Time Object-Oriented Modeling,
New York, John Wiley & Sons Inc, 1994, ISBN 978-0-471-59917-3
[CODE2:04] Steve McConnell, Code Complete, 2nd Ed,Microsoft Press 2004.
[UML 2.5] OMG, "OMG Unified Modeling Language (OMG UML) Version 2.5.1", formal/2017-12-05, 2017
[Sutter:10] Herb Sutter, "Prefer Using Active Objects Instead of Naked Threads", Dr.Dobbs Journal, June 2010.
[Cummings:10] David M. Cummings, "Managing Concurrency in Complex Embedded Systems",
2010 Workshop on Cyber-Physical Systems.
[OOP-C:08] Quantum Leaps, Object-Oriented Programming in C,
[DbC:16] Quantum Leaps, Key Concept: Design by Contract,