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:
The following traceable architectural views explain the applied programming paradigms and technologies:
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
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
Forward Traceability (truncated to 2 level(s))
View: Object-Oriented Architecture
Description
This architecture specification of the QP/C++ Framework assumes an object-oriented view, utilizing the concepts such as:
These concepts are known to promote modularity, layering, and overall organization of the software.
Concerns
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))
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:
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))