Skip to content

Commit 4a6ad4a

Browse files
docs: improve rep process reqs for tooling
Ref: closes #28
1 parent 59a5295 commit 4a6ad4a

File tree

4 files changed

+76
-32
lines changed

4 files changed

+76
-32
lines changed

process/process_areas/requirements_engineering/guidance/requirements_guideline.rst

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,26 +39,29 @@ Templates
3939
- VS Code Snippet
4040
* - Stakeholder Requirements
4141
- :need:`[[title]] <gd_temp__req__stkh_req>`
42-
- stkh_req_t
42+
- ``stkh_req__``
4343
* - Feature Requirements
4444
- :need:`[[title]] <gd_temp__req__feat_req>`
45-
- feat_req_t
45+
- ``feat_req__``
4646
* - Component Requirements
4747
- :need:`[[title]] <gd_temp__req__comp_req>`
48-
- comp_req_t
48+
- ``comp_req__``
4949
* - AoU Requirements
5050
- :need:`[[title]] <gd_temp__req__aou_req>`
51-
- aou_req_t
51+
- ``aou_req__``
5252
* - Process Requirements
5353
- :need:`[[title]] <gd_temp__req__process_req>`
54-
- gd_req_t
54+
- ``gd_req__``
55+
* - Tool Requirements
56+
- :need:`[[title]] <gd_temp__req__tool_req>`
57+
- ``tool_req__``
5558

5659
Additionally for the formulation of requirements following template is available: :need:`[[title]]<gd_temp__req__formulation>`
5760

5861
Attributes
5962
----------
6063

61-
For all requirements following mandatory attributes need to be defined:
64+
For all requirements following mandatory attributes are defined:
6265

6366
.. needtable:: Overview of mandatory requirement attributes
6467
:tags: requirements_engineering
@@ -72,6 +75,8 @@ For all requirements following mandatory attributes need to be defined:
7275
* ID: The naming convention for the ID is defined `here <REPLACE_doc__naming_conventions>`.
7376
* Furthermore the requirements need to be versioned. Therefore a hash value of the requirement will to be calculated. The concept is described: :ref:`traceability concept for requirements`
7477
* For the remaining attributes only predefined values can be used. A more detailed description can be found here: :ref:`attributes of the requirements`
78+
* Note that "rationale" is only mandatory for Stakeholder Requirements ...
79+
* and process requirements do not need security and safety because these can be derived from the standards they comply to (as well type attributes as these would all be "Non-functional")
7580

7681
Checks
7782
------

process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,18 @@ Process Requirements
2424
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
2525
:complies: std_req__iso26262__support_6431, std_req__iso26262__support_6432
2626

27-
Requirements shall be hierarchically grouped into different levels.
27+
Requirements shall be hierarchically grouped into three levels.
2828

2929
Following levels are defined:
3030

3131
* Stakeholder requirement
3232
* Feature requirement
3333
* Component requirement
34+
35+
Additionally there shall be the following logical groups of requirements:
3436
* Assumption of use requirement
3537
* Process requirement
38+
* Tool requirement
3639

3740
.. _process_requirement_attributes:
3841

@@ -46,13 +49,13 @@ Process Requirement Attributes
4649
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
4750
:complies: std_req__iso26262__support_6425, std_req__iso26262__support_6432
4851

49-
Each requirement shall have a unique ID. It shall be in a format which is also human readable and consists of
52+
Each requirement shall have a unique ID. It shall consist of three parts:
5053

5154
* type of requirement
5255
* last part of the feature tree
5356
* keyword describing the content of the requirement.
5457

55-
The naming convention is defined here: `REPLACE_doc__naming_conventions`
58+
Consider the project's naming convention.
5659

5760
.. gd_req:: Requirement attribute: title
5861
:id: gd_req__requirements_attr_title
@@ -61,11 +64,9 @@ Process Requirement Attributes
6164
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
6265
:complies: std_req__iso26262__support_6424
6366

64-
The title of the requirement shall provide a short summary of the description. This means that e.g. the word "shall" must not be used int the title for:
67+
The title of the requirement shall provide a short summary of the description, but is not an "additional" requirement.
6568

66-
* Stakeholder Requirements
67-
* Feature Requirements
68-
* Component Requirements
69+
This means that the word "shall" must not be used in the title for all requirements.
6970

7071
.. gd_req:: Requirement attribute: description
7172
:id: gd_req__requirements_attr_description
@@ -102,7 +103,7 @@ Process Requirement Attributes
102103
:tags: attribute, mandatory
103104
:satisfies: wf__req__feat_req, wf__req__comp_req
104105

105-
Each requirement shall have a security relevance identifier:
106+
Each requirement (apart from proccess req) shall have a security relevance identifier:
106107

107108
* Yes
108109
* No
@@ -114,7 +115,7 @@ Process Requirement Attributes
114115
:complies: std_req__iso26262__support_6421, std_req__iso26262__support_6425
115116
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
116117

117-
Each requirement shall have a automotive safety integrity level (ASIL) identifier:
118+
Each requirement (apart from proccess req) shall have a automotive safety integrity level (ASIL) identifier:
118119

119120
* QM
120121
* ASIL_B
@@ -138,7 +139,8 @@ Process Requirement Attributes
138139
:tags: attribute, mandatory
139140
:satisfies: wf__req__stkh_req
140141

141-
Each stakeholder requirement shall provide a in the attribute rationale the reason why that the requirement is needed.
142+
Each stakeholder requirement shall provide an attribute rationale.
143+
The rationale shall contain the reason why the requirement is needed.
142144

143145
.. _process_requirement_linkage:
144146

@@ -154,9 +156,19 @@ Process Requirement Linkage
154156

155157
Requirements shall be linked to its adjacent level via the attribute satisfies.
156158

157-
* stakeholder requirements <-> feature requirements
158-
* feature requirements <-> component requirements
159-
* workflow <-> process requirements
159+
* stakeholder requirements <- feature requirements
160+
* feature requirements <- component requirements
161+
* workflow <- process requirements
162+
* process requirements <- tool requirements
163+
164+
.. gd_req:: Requirement Traceability
165+
:id: gd_req__req__traceability
166+
:status: valid
167+
:tags: attribute, automated
168+
:complies: std_req__iso26262__support_6432
169+
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
170+
171+
Bi-directional traceability shall be provided by adding a "back-link" via attribute satisfied by.
160172

161173
.. gd_req:: Requirement attribute: requirement covered
162174
:id: gd_req__req__attr_req_cov
@@ -200,21 +212,29 @@ Process Requirement Linkage
200212
* No
201213

202214
.. gd_req:: Requirement attribute: versioning
203-
:id: gd_req__req__attr_hash
215+
:id: gd_req__req__attr_version
204216
:status: valid
205217
:tags: attribute, automated
206218
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
207219
:complies: std_req__iso26262__support_6425, std_req__iso26262__support_6434
208220

209-
It shall be possible to provide a versioning for requirements. It shall be possible to detect if any of the mandatory attributes differ from the versioning: :need:`gd_req__req__attr_mandatory`
210-
211-
A more detailed description of the concept can be found here: :need:`gd_req__req__attr_hash`
221+
It shall be possible to provide a versioning for requirements. For this all mandatory attributes shall be taken into account: :need:`gd_req__req__attr_mandatory`
212222

213223
.. _process_requirement_checks:
214224

215225
Process Requirements Checks
216226
'''''''''''''''''''''''''''
217227

228+
.. gd_req:: Requirement check: suspicious
229+
:id: gd_req__req__attr_suspicious
230+
:status: valid
231+
:tags: attribute, automated
232+
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
233+
:complies: std_req__iso26262__support_6425, std_req__iso26262__support_6434
234+
235+
Based on the requirement versioning it shall be checked if a parent requirement was updated but not the linked child requirements.
236+
In case an update was detected, the attribute requirement covered shall be set to "No"
237+
218238
.. gd_req:: Requirements mandatory attributes provided
219239
:id: gd_req__req__attr_mandatory
220240
:status: valid
@@ -240,6 +260,9 @@ Process Requirements Checks
240260
* Stakeholder Requirements
241261
* Feature Requirements
242262
* Component Requirements
263+
* Tool Requirements
264+
265+
List of these weak words: just, about, really, some, thing, absolutely (to be extended)
243266

244267

245268
.. gd_req:: Requirements linkage level
@@ -249,7 +272,7 @@ Process Requirements Checks
249272
:complies: std_req__iso26262__support_6432
250273
:satisfies: wf__req__stkh_req, wf__req__feat_req, wf__req__comp_req
251274

252-
Every feature- and component requirement shall be linked to at least one parent requirement according to the defined traceability scheme:
275+
Every feature- and component requirement shall be linked to at least one valid parent requirement according to the defined traceability scheme:
253276

254277
:ref:`traceability concept for requirements`
255278

@@ -260,7 +283,7 @@ Process Requirements Checks
260283
:complies: std_req__iso26262__support_6423
261284
:satisfies: wf__req__feat_req, wf__req__comp_req
262285

263-
It shall be checked if every feature- and component requirement is linked at least to one architectural element.
286+
It shall be checked if every feature- and component requirement is linked at least to one valid architectural element on the same level.
264287

265288
.. gd_req:: Requirements linkage safety
266289
:id: gd_req__req__linkage_safety

process/process_areas/requirements_engineering/guidance/requirements_templates.rst

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
Templates
1818
=========
1919

20-
.. gd_temp:: Stakeholder Requirements Templates
20+
.. gd_temp:: Stakeholder Requirements Template
2121
:id: gd_temp__req__stkh_req
2222
:status: valid
2323
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
@@ -27,11 +27,12 @@ Templates
2727
.. stkh_req:: <Title>
2828
:id: stkh_req__<Title>
2929
:reqtype: <Functional|Interface|Process|Legal|Non-Functional>
30+
:security: <YES|NO>
3031
:safety: <QM|ASIL_B|ASIL_D>
3132
:rational: <The rationale provides the reason that the requirement is needed.>
3233
:status: <valid|invalid>
3334
34-
.. gd_temp:: Feature Requirements Templates
35+
.. gd_temp:: Feature Requirements Template
3536
:id: gd_temp__req__feat_req
3637
:status: valid
3738
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
@@ -46,7 +47,7 @@ Templates
4647
:satisfies: <link to stakeholder requirement id>
4748
:status: <valid|invalid>
4849
49-
.. gd_temp:: Component Requirements Templates
50+
.. gd_temp:: Component Requirements Template
5051
:id: gd_temp__req__comp_req
5152
:status: valid
5253
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
@@ -61,7 +62,7 @@ Templates
6162
:satisfies: <link to feature requirement id>
6263
:status: <valid|invalid>
6364
64-
.. gd_temp:: AoU Requirement Templates
65+
.. gd_temp:: AoU Requirement Template
6566
:id: gd_temp__req__aou_req
6667
:status: valid
6768
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
@@ -76,19 +77,34 @@ Templates
7677
:status: <valid|invalid>
7778
:mitigates: <link to safety analysis>
7879
79-
.. gd_temp:: Process Requirements Templates
80+
.. gd_temp:: Process Requirements Template
8081
:id: gd_temp__req__process_req
8182
:status: valid
8283
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
8384

8485
.. code-block:: rst
8586
8687
.. gd_req:: <Title>
87-
:id: gd_req__<Tool>__<Title>
88+
:id: gd_req__<process>__<Title>
8889
:satisfies: <link to guidance id>
8990
:complies: <link to standard requirement>
9091
:status: <valid|invalid>
9192
93+
.. gd_temp:: Tool Requirements Template
94+
:id: gd_temp__req__tool_req
95+
:status: valid
96+
:complies: std_wp__iso26262__software_651, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425
97+
98+
.. code-block:: rst
99+
100+
.. tool_req:: <Title>
101+
:id: tool_req__<tool>__<Title>
102+
:reqtype: Non-Functional
103+
:security: <YES|NO>
104+
:safety: <QM|ASIL_B|ASIL_D>
105+
:satisfies: <link to process req id>
106+
:status: <valid|invalid>
107+
92108
.. gd_temp:: Requirement Formulation Template
93109
:id: gd_temp__req__formulation
94110
:status: valid

process/process_areas/requirements_engineering/requirements_concept.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ Following attributes need to be filled manually for each requirement:
194194
- This attribute contains a hash value which is calculated over all mandatory requirement attributes. However this script needs to be executed manually, as this information is required to be present in the rst file.
195195
- Script / Bazel Target
196196
* - Satisfies Hash
197-
- It contains the hash of the parent requirement. If the parent requirement is changed the hash will also change and the linkage has to be revisited again. A more detailed description is provided here: :need:`gd_req__req__attr_hash`
197+
- It contains the hash of the parent requirement. If the parent requirement is changed the hash will also change and the linkage has to be revisited again. A more detailed description is provided here: :need:`gd_req__req__attr_version`
198198
- Script / Bazel Target
199199
* - Implemented by
200200
- During Build the code files are parsed for a defined tag which includes the requirement id. If this is located a link to the code will be added in the requirement

0 commit comments

Comments
 (0)