QP/C++ 8.1.2
Real-Time Event Framework
Loading...
Searching...
No Matches
Technology Viewpoint

Safety ViewpointContext Viewpoint

Viewpoint


SAS_QP_TECH_VP

Technology Viewpoint

Purpose
The architectural technology Viewpoint classifies the elements of the problem and the solution around well-known software paradigms and technologies.

Architectural Views
This architectural viewpoint frames the following views:


Views

The following traceable architectural views explain the applied programming paradigms and technologies:


SAS_QP_EDA

View: Event-Driven Architecture

Description
The QP/C++ Framework is a reusable event-driven architecture (EDA), where all interactions are triggered by events, which are delivered asynchronously and are processed without blocking.

Concerns

  • programming paradigm
  • software organization
  • real-time processing

Anti-Concerns
The non-blocking EDA architecture underlying the QP/C++ Framework is in contrast to the sequential architectures, such as a traditional "shared-state concurrency with blocking" in the Real-Time Operating System (RTOS), where the application explicitly awaits events in-line in the hard-coded blocking calls to the RTOS (e.g., time-delay, semaphore, etc).

Backward Traceability

  • SRS_QP_NF_21: QP/C++ Framework shall be deterministic in CPU utilization.
  • SRS_QP_NF_24: QP/C++ Framework shall facilitate deterministic real-time performance analysis (such as Rate-Monotonic Scheduling/Analysis).

Forward Traceability (truncated to 2 level(s))



SAS_QP_OOA

View: Object-Oriented Architecture

Description
This architecture specification of the QP/C++ Framework assumes an object-oriented view, utilizing the concepts such as:

  • encapsulation (classes)
  • inheritance
  • polymorphism
  • object-oriented design patterns
  • UML notation and semantics

These concepts are known to promote modularity, layering, and overall organization of the software.

Concerns

  • programming paradigm
  • software organization
  • software modularity
  • software interfaces
  • information hiding

Anti-Concerns
The object-oriented view does not restrict the choice of the programming language to only those commonly considered "object-oriented". 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].

Backward Traceability

Forward Traceability (truncated to 2 level(s))



SAS_QP_AF

View: Application Framework

Description
QP/C++ Framework is an application framework defined as a reusable architecture for a specific problem domain (embedded, real-time systems in the case of QP/C++ Framework). The concept of an application framework works particularly well in combination with the object-oriented approach (see SAS_QP_OOA).

Concerns
An application framework has the following key characteristics:

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

Anti-concerns
Software organized as a framework significantly differs from software organized as a "toolkit", such as a traditional Real-Time Operating System (RTOS).

Backward Traceability

Forward Traceability (truncated to 2 level(s))


Safety ViewpointContext Viewpoint