About this DocumentContext 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
Object-oriented view
- Description
- This architecture specification of the QP 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
Event-driven architecture view
- Description
- The QP 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 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
Application framework view
- Description
- QP Framework is an application framework defined as a reusable architecture for a specific problem domain (embedded, real-time systems in case of QP 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).
About this DocumentContext Viewpoint