QP/C  8.0.0
Real-Time Embedded Framework
Loading...
Searching...
No Matches
Technology Viewpoint

Purpose and ScopeContext Viewpoint

The purpose of the Technology Viewpoint is to classify the elements of the problem and the solution around well-known software paradigms and technologies.

Views

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

SAS_QP_OO

SAS_QP_OO : Object-oriented view
Description
This architecture specification of the QP/C Framework assumes an object-oriented view, utilizing the concepts such as:
  • class
  • inheritance
  • polymorphism
  • object-oriented design patterns
  • UML notation and semantics
Concerns
  • programming paradigm
  • software organization
  • software interfaces
  • information hiding
Anti-Concerns
The object-oriented 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].

SAS_QP_EDA

SAS_QP_EDA : Event-driven architecture view
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 EDA architecture underlying QP/C Framework is in contrast to the sequential architectures, such as a traditional Real-Time Operating System (RTOS), where the application explicitly awaits events in-line in the hard-coded blocking calls (e.g., time-delay, semaphore, etc.)

SAS_QP_AF

SAS_QP_AF : Application framework view
Description
QP/C Framework is an application framework defined as a reusable architecture for a specific problem domain (embedded, real-time systems in case of QP/C Framework).
Concerns
Application framework has the following key characteristics:
  • inversion of control: In a framework, unlike in a toolkit or in 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).

Purpose and ScopeContext Viewpoint