QP/C++  8.0.0
Real-Time Embedded Framework
Loading...
Searching...
No Matches
Software Design Specification
Remarks
This document is part of the QP/C++ Certification Kit↑ , which has been specifically designed to help companies in safety certification of their software based on the QP/C++ Framework treated as commercial off-the-shelf (COTS) software.

Structure Viewpoint

Revision History

QP
version
Document
revision
Date
(YYYY-MM-DD)
By Description
7.3.4 A 2024-05-05 MMS Initial release for IEC-61508 SIL-3 and IEC-62304 Class-C.
7.4.0 B 2024-07-30 MMS Updated for QP/C++ 7.4.0.
8.0.0 C 2024-10-18 MMS Updated for QP/C++ 8.0.0.

Purpose and Scope

This Software Design Specification (Unique Identifier: DOC_SDS_QP) describes the software design for the QP/C++ Framework that realizes the architecture specified in the QP Software Architecture Specification (DOC_SAS_QP), requirements specified in the QP Software Requirements Specification (DOC_SRS_QP), and QP Software Safety Requirements Specification (DOC_SSR_QP). By presenting a compliant Safety Viewpoint, this Software Design Specification also aims to achieve the required safety integrity levels:

  • IEC 61508 SIL 3
  • IEC 62304 Class C
  • ISO 26262 ASIL D
Remarks
This document is the best source of information about the design and operation of QP/C++ Framework as well as QP/C++ Applications derived from the framework.

Design Viewpoints

The Software Design Specification is organized according to the international standard [IEEE-1016:2009] Software Design Descriptions by means of the following design viewpoints, each consisting of various design views. The described viewpoints are followed by the traceable Software-Design-Specifications, which describe and specify the relevant views.

Stakeholders

This Software Design Specification is primarily intended for the following stakeholders:

  • Application Developers who develop QP/C++ Applications based on the QP/C++ Framework,
  • System Engineers,
  • Quality-Assurance Engineers,
  • Test Engineers, as well as
  • Managers who oversee the software development.

Concerns

This design specification addresses the following concerns (understood here as areas of interest with respect to a software design [IEEE-1016:2009]):

  • logical structure of QP/C++ Framework and QP/C++ Applications
  • interaction by means of events
  • state dynamics by means of hierarchical state machines
  • time management by means of Time Events
  • algorithms used to implement various functions
  • interface between QP/C++ Framework and the Operating System underlying the framework;
  • safe programming techniques

Document Conventions

Software-Design-Specification UIDs

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

 +---------------- [1] Work artifact class (e.g., 'SDS' for Software Design Specification)
 |  +------------- [2] Project identifier ('QP' for @QPX Framework or 'QA' for @QPX Application)
 |  |   +--------- [3] Design view (e.g., 'OSAL' for OS Abstraction Layer)
 |  |   |
SDS_QP_view

Examples: SDS_QP_QHsm, SDS_QA_START

References

[IEEE-1016:2009] IEEE Computer Society, "IEEE Standard for Information Technology - Systems Design - Software Design Descriptions", 2009
[ISO-42010:2011] ISO/IEC/IEEE, "International Standard ISO/IEC/IEEE 4210, Systems and software engineering - Architecture description", 2011
[IEC 61508-1:2010] IEC 61508-1:2010 Functional safety of electrical/electronic/programmable electronic safety-related systems- Part 1: General requirements
[IEC 61508-2:2010] IEC 61508-2:2010 Functional safety of electrical/electronic/programmable electronic safety-related systems- Part 2: Requirements for E/E/PE safety-related systems
[IEC 61508-3:2010] IEC 61508-3:2010 Functional safety of electrical/electronic/programmable electronic safety-related systems- Part 3: Software requirements
[IEC 61508-7:2010] IEC 61508-7:2010 Functional safety of electrical/electronic/programmable electronic safety-related systems- Part 7: Overview of techniques and measures
[ISO 26262-1:2018] ISO 26262-1:2018(en) Road vehicles — Functional safety — Part 1: Vocabulary. International Standardization Organization.
[ISO 26262-2:2018] ISO 26262-2:2018(en) Road vehicles - Functional safety - Part 2: Management of functional safety. International Standardization Organization.
[ISO 26262-3:2018] ISO 26262-3:2018(en) Road vehicles - Functional safety - Part 3: Concept phase. International Standardization Organization.
[ISO 26262-4:2018] ISO 26262-3:2018(en) Road vehicles - Functional safety - Part 4: Definitions and abbreviations. International Standardization Organization.
[ISO 26262-6:2018] ISO 26262-6:2018(en) Road vehicles - Functional safety - Part 6: Product development at the software level. International Standardization Organization.
[ISO 26262-8:2018] ISO 26262-8:2018(en) Road vehicles - Functional safety - Part 8: Supporting processes. International Standardization Organization.
[DOC_SRS_QP] Software Requirements Specification
[DOC_SAS_QP] Software Architecture Specification
[PSiCC:02] Miro Samek, Practical Statecharts in C/C++, CMP Books 2002.
https://www.state-machine.com/psicc
[PSiCC2:08] Miro Samek, Practical UML Statecharts in C/C++, 2nd Edition, Newnes 2008.
https://www.state-machine.com/psicc2
[OO-in-C:23] Object-Oriented Programming in C↑ , Quantum Leaps, GitHub, 2023
[GoF:94] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley 1994.
[UML2.5:17] "OMG Unified Modeling Language (OMG UML) Version 2.5.1", document formal/2017-12-05, OMG 2017
[UML-Dist:04] Martin Fowler, "UML Distilled, 3rd Edition", Addison-Wesley, 2004

Structure Viewpoint