Process Requirements#
Requirements Structure
|
status: valid
|
||||
Requirements shall be hierarchically grouped into three levels. Following levels are defined:
|
|||||
Process Requirement Attributes#
Requirement attribute: UID
|
status: valid
|
||||
Each requirement shall have a unique ID. It shall consist of three parts:
Consider the project’s naming convention. |
|||||
Requirement attribute: title
|
status: valid
|
||||
The title of the requirement shall provide a short summary of the description, but is not an “additional” requirement. This means for example that the word “shall” is not allowed in the title for all requirements. |
|||||
Requirement attribute: description
|
status: valid
|
||||
Each requirement shall have a description. Note ISO/IEC/IEEE/29148 - Systems and software engineering — Life cycle processes — Requirements engineering defines general concepts including terms and examples for functional requirements syntax. The concepts shall apply. |
|||||
Requirement attribute: type
|
status: valid
|
||||
Each requirement, apart from process and tool requirements, shall have a type of one of following options:
|
|||||
Requirements attribute: security
|
status: valid
|
||||
Each requirement, apart from process and tool requirements, shall have a security relevance identifier:
|
|||||
Requirement attribute: safety
|
status: valid
|
||||
Each requirement, apart from process and tool requirements, shall have a automotive safety integrity level (ASIL) identifier:
|
|||||
Requirement attribute: status
|
status: valid
|
||||
Each requirement, apart from process and tool requirements, shall have a status:
|
|||||
Requirement attribute: rationale
|
status: valid
|
||||
Each stakeholder requirement shall provide an attribute called rationale. The rationale shall contain the reason why the requirement is needed. |
|||||
Requirement attribute: valid_from
|
status: valid
|
||||
Stakeholder and feature requirements can have a validity attribute that tells from which milestone onwards the requirement is part of a feature. This validity attribute is defined as including the defined milestone. Milestone shall be valid release version tag, e.g. v1.0.2 as defined in Platform Release Note Template: Platform Release Note Template (gd_temp__rel_plat_rel_note). Thus the corresponding requirement is valid from the defined milestone, including it. |
|||||
Requirement attribute: valid_until
|
status: valid
|
||||
Stakeholder and feature requirements can have a validity attribute that tells until which milestone the requirement is part of a feature. This validity attribute is defined as excluding the defined milestone. Milestone shall be valid release version tag, e.g. v1.0.2 as defined in Platform Release Note Template: Platform Release Note Template (gd_temp__rel_plat_rel_note). Thus the corresponding requirement is only valid until the defined milestone, excluding it. |
|||||
Process Requirement Linkage#
Requirement Linkage
|
status: valid
|
||||
Requirements shall be linked to its adjacent level via the attribute satisfies.
|
|||||
Requirement Traceability
|
status: valid
|
||||
Bi-directional traceability shall be provided by adding a “back-link” via attribute satisfied by (i.e. make a <-> out of the <- in Requirement Linkage (gd_req__req_linkage)). |
|||||
Requirement attribute: requirement covered
|
status: valid
|
||||
It shall be possible to specify the requirement coverage, meaning the requirement is covered fully by its linked children.
|
|||||
Requirement attribute: link to implementation
|
status: valid
|
||||
It shall be possible to link requirements to code (to the respective line of code in an attribute of the requirement). |
|||||
Requirement attribute: link to test
|
status: valid
|
||||
It shall be possible to link requirements to tests and automatically include a link to the test case in the attribute testlink. |
|||||
Requirement attribute: test covered
|
status: valid
|
||||
It shall be possible to specify if requirements are completely covered by the linked test cases.
|
|||||
Requirement attribute: versioning
|
status: valid
|
||||
A versioning for requirements shall be provided. For this all mandatory attributes shall be taken into account: see Requirements mandatory attr... (gd_req__req_check_mandatory) |
|||||
Process Requirements Checks#
Requirement check: suspicious
|
status: valid
|
||||
Based on the requirement versioning it shall be checked if a parent requirement was updated but not the linked child requirements (or tests). In case an update was detected, the attribute requirement (or test) covered shall be set to “No” Note: This refers to Requirement attribute: requ... (gd_req__req_attr_req_cov) and Requirement attribute: test... (gd_req__req_attr_test_covered) |
|||||
Requirements mandatory attributes provided
|
status: valid
|
||||||||||||
It shall be checked if all mandatory attributes for each requirement is provided by the user. For all requirements following attributes shall be mandatory:
There is one exception from the above: “rationale” attribute is mandatory only for stakeholder requirements. |
|||||||||||||
Requirements no weak words
|
status: valid
|
||||
It shall be ensured that no weak words are contained in the requirement description for:
List of these weak words: just, about, really, some, thing, absolutely (to be extended) |
|||||
Requirements linkage level
|
status: valid
|
||||
Every feature- and component requirement shall be linked to at least one parent requirement according to the defined traceability scheme: |
|||||
Requirements linkage architecture
|
status: valid
|
||||
It shall be checked if every feature- and component requirement is linked at least to one valid architectural element on the same level. This should also include requirement type checking:
Note that the linking is done from the architecture element to the requirement as described for example in Allocate feature requirements to architectural elements. |
|||||
Requirements linkage architecture switch
|
status: valid
|
||||
The check Requirements linkage archit... (gd_req__req_linkage_architecture) shall only be enabled for a release build, otherwise it would block creating requirements first without architecture. |
|||||
Requirements linkage safety
|
status: valid
|
||||
It shall be checked that (child) QM requirements (Safety == QM) can not be linked against a (parent) safety requirement (Safety != QM). Note: This ensures that safety requirements are properly derived into their children. Also a mix of safe and QM aspects in a parent is avoided by this. |
|||||
Requirements validity
|
status: valid
|
||||
Validity attributes (Requirement attribute: vali... (gd_req__req_attr_valid_from) and Requirement attribute: vali... (gd_req__req_attr_valid_until)) shall be checked for correctness (i.e. they denote an existing milestone) and consistent (e.g. the until is not before from) Several of the above checks are not to be executed on requirements not valid in the next milestone, these are TBD |
|||||