Guideline#
Requirements Guideline
|
status: valid
security:
safety:
|
||||
This document describes the general guidances for requirements based on the concept which is defined Concept Description.
General Hints#
Templates#
Need templates displaying the correct syntax and attribute definition are provided for each requirement type. For VScode code snippets are included in the workspace settings which will provide in-place the definition of requirements including all mandatory attributes:
Requirement Level |
Template |
VS Code Snippet |
---|---|---|
Stakeholder Requirements |
stkh_req_t |
|
Feature Requirements |
feat_req_t |
|
Component Requirements |
comp_req_t |
|
AoU Requirements |
aou_req_t |
|
Process Requirements |
gd_req_t |
Additionally for the formulation of requirements following template is available: Requirement Formulation Tem...
Attributes#
For all requirements following mandatory attributes need to be defined:
Title |
---|
Requirement attribute: rationale |
Requirement attribute: safety |
Requirement attribute: status |
Requirement attribute: type |
Requirement attribute: UID |
Requirement attribute: description |
Requirements attribute: security |
Requirement attribute: title |
Title and description: For the formulation of requirements following template shall be used Requirement Formulation Tem...
ID: The naming convention for the ID is defined here <TBD>.
Furthermore the requirements need to be versioned. Therefore a hash value of the requirement will to be calculated. The concept is described: Traceability Concept for Requirements
For the remaining attributes only predefined values can be used. A more detailed description can be found here: Attributes of the Requirements
Checks#
During the sphinx build checks will be performed on the requirements. Those are specified via following process requirements:
Title |
ID |
---|---|
Requirements no weak words |
|
Requirements mandatory attributes provided |
|
Requirements linkage architecture |
|
Requirements linkage level |
|
Requirements linkage safety |
Workflow for Creating a Requirement#
This section describes in detail which steps need to be performed to create a requirement based on Fig. 2
Step |
Description |
Responsible |
---|---|---|
Create parent requirement |
||
2. |
Review parent requirement |
|
Merge valid parent requirement to main branch |
||
Derive child requirement and establish traceability |
||
Review child requirement |
||
Merge valid child requirement to main branch |
||
Generate linkage document |
||
Perform formal review of requirements |
Create parent requirement#
In this step the parent requirements shall be created. Stakeholder- and feature requirements should be generated in the score repository.
Therefore following guidelines are available:
Review parent requirement#
As soon as the parent requirements are in a mature state it can be reviewed according to <TBD> and merged into the main branch of the score repository. However this is not the formal inspection of the requirements, this will follow in an upcoming step.
Following roles should be included in the review:
Derive child requirement and establish traceability#
In an upcoming step the child requirements shall be derived from the parent requirements. Feature requirements shall be placed in the score repository again, while component requirements shall be placed in the module repository. During this process the derived requirements shall also be linked according to the defined traceability matrix to the parent requirements.
Following guidelines are available:
Review child requirement#
As soon as also the child requirements are in a mature state they can be reviewed according to <TBD> and merged into the main branch of the respective repository. Again this is not a formal inspection as it will be performed in a later step.
Generate linkage document#
As parent and child requirements are now available the linkage of the requirements can be established. This should be performed as described in Coverage of requirements
Perform formal review of requirements#
In a last step the requirements shall be formally inspected. Therefore a checklist exists: Requirements Inspection Che...
Following roles should be included in the review:
Workflow for Creating and Linking Assumption of Use (AoU)#
An AoU is a category of requirement which is originates from a safety concept of an architectural element (and thus it is confirmed by a safety analysis). As it can not be fulfilled by the architecture element (e.g. component) itself, it needs to be fulfilled by the user of the module. In Safety Elements out of Context (SEooC) the AoUs will normally be part of the safety manual. In this project (as it develops SEooCs) these AoUs are created both internally and externally - if existing SEooCs are integrated into the platform (e.g. a qualified Operating System). For AoU which arise from Score specific modules the template is almost identical to the one for feature/component requirements. The only difference is that it defined such that the attribute “satisfies” is replaced with the attribute “mitigates” (see picture below). For externally provided AoUs of course the sentence template cannot be taken into account, as these are only imported from an external safety manual. It is also not possible to link it to other development artifacts via the attribute “mitigates”.
AoUs can be of different class and shall be handled by tracing those
to Feature/Component Architecture (via satisfies), if those are on Component Level and can be fulfilled there
to Stakeholder Requirements (via satisfies), if AoU are of general nature and can be fulfilled by platform
or by containing those in Platform Safety Manual, if AoU cannot be fulfilled by platform but need to be satisfied by the user of the platform
Fig. 4 AoU Traceability#
Fig. 4 is an extension of the workproduct traceability to show the handling of (external) AoU. Note that the component level displayed in green shows two components - on the right the one exporting AoU to be fulfilled by others, left the component which fulfills and exports AoU (but without the traceability shown on the right to reduce complexity).