qpc/doxygen/sas.dox
Quantum Leaps 0a824adc60 5.6.2
2016-03-30 18:50:33 -04:00

166 lines
5.7 KiB
Plaintext

/*! @page sas_toc SAS
<h1>Software Architecture Specification (SAS)</h1>
<p>This document specifies the software architecture for the **QP/C** @termref{ao} @termref{framework}. This document describes the intended features of the QP/C framework, as well as the interfaces to other software, hardware, and various other technical dependencies. The quick links to the main sections of this SRS are given below:
</p>
- @subpage sas_intro
+ @ref sas_purpose
+ @ref sas_conv
+ @ref sas_scope
+ @ref sas_audience
+ @ref sas_refs
- @subpage sas_descr
+ @ref sas_prod
+ @ref sas_funct
+ @ref sas_user
+ @ref sas_assume
- @subpage sas
+ @ref sas_fun
- @ref sas_qf
- @ref sas_qep
- @ref sas_qv
- @ref sas_qk
- @ref sas_qxk
+ @ref sas_non-fun
+ @ref sas_constr
@next{sas_intro}
*/
/*##########################################################################*/
/*! @page sas_intro Introduction
Embedded software developers from different industries are independently re-discovering patterns for building concurrent software that is safer, more responsive and easier to understand than naked threads and various blocking mechanisms of a traditional Real-Time Operating System (RTOS). These best practices universally favor event-driven, asynchronous, non-blocking, encapsulated state machines instead of naked, blocking RTOS threads.
------------------------------------------------------------------------------
@section sas_purpose Purpose
<p>The specification of the QP/C @termref{ao} @termref{framework} is to represent a reusable @termref{architecture}, which supports efficient implementation of the @termref{ao} model of computation for deeply embedded applications, such as single-chip microcontrollers.
</p>
<strong>QP/C</strong> (Quantum Platform in C) is a lightweight software @termref{framework, framework} for building responsive and modular real-time embedded applications as systems of cooperating, event-driven @termref{ao, active objects} (@termref{ao, actors}).
------------------------------------------------------------------------------
@section sas_conv Document Conventions
<div class="separate"></div>
@subsection sas_conv_num Numbering of Requirements
<div class="separate"></div>
@subsection sas_conv_shall Use of "Shall" and "Should"
Requirement definitions use consistent terminology to indicate whether something is mandatory or desirable. _Shall_ is used to denote **mandatory** behavior. _Should_ is used to denote a **desirable** behavior that should typically take place, but might not happen all the time or might be optional in uncommon cases.
------------------------------------------------------------------------------
@section sas_scope Project Scope
------------------------------------------------------------------------------
@section sas_audience Intended Audience
This SRS document is primarily intended for **embedded software engineers**, who develop applications based on the QP/C framework.
This SRS can be also of interest to test engineers, software architects, system engineers, quality-assurance engineers, hardware engineers, as well as managers overseeing the software development.
------------------------------------------------------------------------------
@section sas_refs References
@next{sas_descr}
*/
/*##########################################################################*/
/*! @page sas_descr Overall Description
------------------------------------------------------------------------------
@section sas_prod Product Perspective
------------------------------------------------------------------------------
@section sas_funct Product Functions
- @reqref{RQPC101}
- @reqref{RQPC102}
------------------------------------------------------------------------------
@section sas_user User Characteristics
The main users of the QP/C framework are **embedded software engineers**, who develop applications based on the QP/C framework.
------------------------------------------------------------------------------
@section sas_assume Assumptions and Dependencies
@next{sas}
*/
/*##########################################################################*/
/*! @page sas Architecture Elements
------------------------------------------------------------------------------
@section sas_fun Functional Requirements
<div class="separate"></div>
@subsection sas_qf Active Object Framework
The software shall support hierarchical state nesting
<div class="separate"></div>
@subsection sas_qep State Machine Event Processor
@reqdef{RQPC101, The software shall support hierarchical state nesting}
@par Amplification
State hierarchy is the primary mechanism of behavioral reuse in state machines.
@par Rationale
This is a useful thing to have
@reqdef{RQPC102, The software shall support manual coding}
<div class="separate"></div>
@subsection sas_qv Cooperative Run-to-Completion Kernel
<div class="separate"></div>
@subsection sas_qk Preemptive Run-to-Completion Kernel
<div class="separate"></div>
@subsection sas_qxk Preemptive Blocking Kernel
------------------------------------------------------------------------------
@section sas_non-fun Non-functional Requirements
<div class="separate"></div>
@subsection sas_quality Software Quality Attributes
<div class="separate"></div>
@subsection sas_perform Performance Requirements
<div class="separate"></div>
@subsection sas_port Portability Requirements
<div class="separate"></div>
@subsection sas_safe Safety Requirements
<div class="separate"></div>
@subsection sas_secure Security Requirements
------------------------------------------------------------------------------
@section sas_constr Constraints
<div class="separate"></div>
@subsection sas_standards Compliance with Standards
*/