Skip to content

Commit 62c66fb

Browse files
authored
Merge pull request #447 from eclipse-score/aschemmel-tech-module-safety-status
Module Safety plan status and role updates
2 parents ff2fd35 + 46f40ac commit 62c66fb

File tree

14 files changed

+171
-174
lines changed

14 files changed

+171
-174
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2025 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
15+
.. document:: [Your Component Name] Implementation Inspection Checklist
16+
:id: doc__component_name_impl_inspection
17+
:status: draft
18+
:safety: ASIL_B
19+
:security: YES
20+
:realizes: wp__sw_implementation_inspection
21+
:tags: template
22+
23+
.. attention::
24+
The above directive must be updated according to your Component.
25+
26+
- Modify ``Your Component Name`` to be your Component Name
27+
- Modify ``id`` to be your Component Name in lower snake case preceded by ``doc__`` and followed by ``_impl_inspection``
28+
- Adjust ``status`` to be ``valid``
29+
- Adjust ``safety``, ``security`` and ``tags`` according to your needs
30+
31+
Implementation Inspection Checklist
32+
===================================
33+
34+
Purpose
35+
-------
36+
37+
The purpose of this checklist is to collect the topics to be checked during implementation,
38+
i.e. in the detailed design and the source code of the units.
39+
40+
The checklist shall be agnostic to which programming language is used. Differences shall be treated
41+
by linking to C++ or Rust specific documentation.
42+
43+
Checklist
44+
---------
45+
46+
.. list-table:: Implementation Checklist
47+
:header-rows: 1
48+
:widths: 10,30,50,6,6,8
49+
50+
* - Review ID
51+
- Acceptance Criteria
52+
- Guidance
53+
- Passed
54+
- Remarks
55+
- Issue link
56+
* - IMPL_01_01
57+
- Is the design according to guidelines?
58+
- see :need:`gd_temp__detailed_design` and :need:`doc_concept__imp_concept`
59+
(e.g. are the views done with the proposed UML diagrams)
60+
-
61+
-
62+
-
63+
* - IMPL_01_02
64+
- Is the implementation according to specification?
65+
- Check if the linked component requirements are fulfilled
66+
and detailed design also matches architecture description.
67+
-
68+
-
69+
-
70+
* - IMPL_01_03
71+
- Are the design decisions and constraints documented?
72+
- Check also for plausibility of these.
73+
-
74+
-
75+
-
76+
* - IMPL_01_04
77+
- Are all external libraries used by the component specified in the detailed design?
78+
- Check the automated dependency analysis.
79+
Also make sure ASIL rated units also only use ASIL rated libraries.
80+
-
81+
-
82+
-
83+
* - IMPL_02_01
84+
- Are the static and dynamic code analysis reports verified for violations?
85+
- All violations in ASIL related code must be justified. This includes the checks of coding guidelines.
86+
-
87+
-
88+
-
89+
* - IMPL_02_02
90+
- Do manual checks, that are derived from the coding guideline, find no safety critical error?
91+
- Check this for the programming language used (e.g. C++ <link_to_checks_list>, Rust <link_to_checks_list>)
92+
-
93+
-
94+
-
95+
* - IMPL_02_03
96+
- Are detailed design and source code consistent?
97+
- Check if the static and dynamic design descriptions match the code (e.g. naming of elements)
98+
and that the respective traceability is established
99+
-
100+
-
101+
-

process/folder_templates/modules/module_name/component_name/docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ Footnotes
178178
architecture/chklst_arc_inspection.rst
179179
component_classification.rst
180180
detailed_design/index.rst
181+
detailed_design/chklst_impl_inspection.rst
181182
requirements/index.rst
182183
requirements/chklst_req_inspection.rst
183184
safety_analysis/fmea.rst

process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst

Lines changed: 28 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -83,79 +83,52 @@ Module Work products List
8383
* - Work product Id
8484
- Link to process
8585
- Process status
86-
- Link to issue
8786
- Link to WP
88-
- WP status
8987

9088
* - :need:`wp__module_safety_plan`
9189
- :need:`gd_guidl__saf_plan_definitions`
9290
- :ndf:`copy('status', need_id='gd_guidl__saf_plan_definitions')`
93-
- <Link to issue>
9491
- this document
95-
- see above
9692

9793
* - :need:`wp__module_safety_package`
9894
- :need:`gd_guidl__saf_package`
9995
- :ndf:`copy('status', need_id='gd_guidl__saf_package')`
100-
- <Link to issue>
10196
- this document (including the linked documentation)
102-
- see above (and below)
10397

10498
* - :need:`wp__fdr_reports` (module Safety Plan)
10599
- :need:`gd_chklst__safety_plan`
106100
- :ndf:`copy('status', need_id='gd_chklst__safety_plan')`
107-
- <Link to issue>
108101
- :need:`doc__module_name_safety_plan_fdr`
109-
- :ndf:`copy('status', need_id='doc__module_name_safety_plan_fdr')`
110102

111103
* - :need:`wp__fdr_reports` (module Safety Package)
112104
- :need:`gd_chklst__safety_package`
113105
- :ndf:`copy('status', need_id='gd_chklst__safety_package')`
114-
- <Link to issue>
115106
- :need:`doc__module_name_safety_package_fdr`
116-
- :ndf:`copy('status', need_id='doc__module_name_safety_package_fdr')`
117107

118108
* - :need:`wp__fdr_reports` (module's Safety Analyses & DFA)
119-
- Safety Analysis FDR tbd
120-
- <automated>
121-
- <Link to issue>
109+
- :need:`gd_chklst__safety_analysis`
110+
- :ndf:`copy('status', need_id='gd_chklst__safety_analysis')`
122111
- <Link to WP>
123-
- <automated>
124112

125113
* - :need:`wp__audit_report`
126114
- performed by external experts
127115
- n/a
128-
- <Link to issue>
129116
- <Link to WP>
130-
- <WP status (manual)>
131-
132-
* - :need:`wp__module_sw_release_note`
133-
- :need:`gd_temp__software_development_plan`
134-
- `copy('status', need_id='gd_temp__software_development_plan')`
135-
- <Link to issue>
136-
- <Link to WP>
137-
- <automated>
138117

139118
* - :need:`wp__module_safety_manual`
140119
- :need:`gd_temp__safety_manual`
141120
- :ndf:`copy('status', need_id='gd_temp__safety_manual')`
142-
- <Link to issue>
143121
- :need:`doc__module_name_safety_manual`
144-
- :ndf:`copy('status', need_id='doc__module_name_safety_manual')`
145122

146123
* - :need:`wp__verification_module_ver_report`
147124
- :need:`gd_temp__mod_ver_report`
148125
- :ndf:`copy('status', need_id='gd_temp__mod_ver_report')`
149-
- <Link to issue>
150126
- :need:`doc__module_name_verification_report`
151-
- :ndf:`copy('status', need_id='doc__module_name_verification_report')`
152127

153128
* - :need:`wp__module_sw_release_note`
154129
- :need:`gd_temp__rel_mod_rel_note`
155130
- :ndf:`copy('status', need_id='gd_temp__rel_mod_rel_note')`
156-
- <Link to issue>
157131
- :need:`doc__module_name_release_note`
158-
- :ndf:`copy('status', need_id='doc__module_name_release_note')`
159132

160133
Component <name> Work products List
161134
-----------------------------------
@@ -166,93 +139,67 @@ Component <name> Work products List
166139
* - Work product Id
167140
- Link to process
168141
- Process status
169-
- Link to issue
170142
- Link to WP
171-
- WP/doc status
172143

173144
* - :need:`wp__requirements_comp`
174145
- :need:`gd_temp__req_comp_req`
175146
- :ndf:`copy('status', need_id='gd_temp__req_comp_req')`
176-
- <Link to issue>
177147
- :need:`doc__component_name_requirements`
178-
- doc :ndf:`copy('status', need_id='doc__component_name_requirements')` & WP below
179148

180149
* - :need:`wp__requirements_comp_aou`
181150
- :need:`gd_temp__req_aou_req`
182151
- :ndf:`copy('status', need_id='gd_temp__req_aou_req')`
183-
- <Link to issue>
184152
- :need:`doc__component_name_requirements`
185-
- doc :ndf:`copy('status', need_id='doc__component_name_requirements')` & WP below
186153

187154
* - :need:`wp__requirements_inspect`
188155
- :need:`gd_chklst__req_inspection`
189156
- :ndf:`copy('status', need_id='gd_chklst__req_inspection')`
190-
- <link to issue>
191157
- :need:`doc__component_name_req_inspection`
192-
- :ndf:`copy('status', need_id='doc__component_name_req_inspection')`
193158

194159
* - :need:`wp__component_arch`
195160
- :need:`gd_temp__arch_comp`
196161
- :ndf:`copy('status', need_id='gd_temp__arch_comp')`
197-
- <Link to issue>
198162
- :need:`doc__component_name_architecture`
199-
- doc :ndf:`copy('status', need_id='doc__component_name_architecture')` & WP below
200163

201164
* - :need:`wp__sw_arch_verification`
202165
- :need:`gd_chklst__arch_inspection_checklist`
203166
- :ndf:`copy('status', need_id='gd_chklst__arch_inspection_checklist')`
204-
- <link to issue>
205167
- :need:`doc__component_name_arc_inspection`
206-
- :ndf:`copy('status', need_id='doc__component_name_arc_inspection')`
207168

208169
* - :need:`wp__sw_component_fmea`
209170
- :need:`gd_temp__comp_saf_fmea`
210171
- :ndf:`copy('status', need_id='gd_temp__comp_saf_fmea')`
211-
- <Link to issue>
212172
- :need:`doc__component_name_fmea`
213-
- doc :ndf:`copy('status', need_id='doc__component_name_fmea')` & WP below
214173

215174
* - :need:`wp__sw_component_dfa`
216175
- :need:`gd_temp__comp_saf_dfa`
217176
- :ndf:`copy('status', need_id='gd_temp__comp_saf_dfa')`
218-
- <Link to issue>
219177
- :need:`doc__component_name_dfa`
220-
- doc :ndf:`copy('status', need_id='doc__component_name_dfa')` & WP below
221178

222179
* - :need:`wp__sw_implementation`
223180
- :need:`gd_guidl__implementation`
224181
- :ndf:`copy('status', need_id='gd_guidl__implementation')`
225-
- <Link to issue>
226-
- <Link to WP>
227-
- <automated>
182+
- :need:`doc__component_name_detailed_design` & <Link to code>
228183

229184
* - :need:`wp__verification_sw_unit_test`
230185
- :need:`gd_guidl__verification_guide`
231186
- :ndf:`copy('status', need_id='gd_guidl__verification_guide')`
232-
- <Link to issue>
233187
- <Link to WP>
234-
- <automated>
235188

236189
* - :need:`wp__sw_implementation_inspection`
237190
- :need:`gd_chklst__impl_inspection_checklist`
238191
- :ndf:`copy('status', need_id='gd_chklst__impl_inspection_checklist')`
239-
- <Link to issue>
240-
- <Link to WP>
241-
- <automated>
192+
- :need:`doc__component_name_impl_inspection`
242193

243194
* - :need:`wp__verification_comp_int_test`
244195
- :need:`gd_guidl__verification_guide`
245196
- :ndf:`copy('status', need_id='gd_guidl__verification_guide')`
246-
- <Link to issue>
247197
- <Link to WP>
248-
- <automated>
249198

250199
* - :need:`wp__sw_component_class`
251200
- :need:`gd_guidl__component_classification`
252201
- :ndf:`copy('status', need_id='gd_guidl__component_classification')`
253-
- <Link to issue>
254202
- :need:`doc__component_name_comp_class`
255-
- :ndf:`copy('status', need_id='doc__component_name_comp_class')`
256203

257204
Note: In case the component is a new development, :need:`wp__sw_component_class` shall be removed from the above list (and also from the folders).
258205
In case an OSS element is used in the module, part 6 has to be filled out.
@@ -262,63 +209,70 @@ OSS (sub-)component qualification plan
262209

263210
For the selected OSS component the following work products will be implemented (and why):
264211

265-
If the OSS element is classified as a
212+
If the OSS element is classified as
266213
- component, then the below table shall match the above, adding the reasoning for tailoring of work products according to the OSS component classification.
267214
- lower level component, then no work products additional to the component’s will be planned and activities below are part of the component’s issues.
268215

269216
.. list-table:: OSS (sub-)component <name> Work products
270217
:header-rows: 1
271218

272219
* - Work product Id
273-
- Link to issue
274220
- Reasoning for tailoring
275221

276222
* - :need:`wp__requirements_comp`
277-
- <Link to issue>
278223
- Always needed (for Q and QR classification) and also improves process Id 2
279224

280225
* - :need:`wp__requirements_comp_aou`
281-
- <Link to issue>
282226
- Always needed (for Q and QR classification) and also improves process Id 5
283227

284228
* - :need:`wp__requirements_inspect`
285-
- n/a
286-
- Checklist used in Pull Request Review
229+
- <Reasoning for tailoring>
287230

288231
* - :need:`wf__cr_mt_comparch`
289-
- <Link to issue>
290232
- <Reasoning for tailoring, needed for example in case of deficits in process Id 3&4 and complexity Ids 1&4>
291233

292234
* - :need:`wp__sw_component_fmea`
293-
- <Link to issue>
294235
- <Reasoning for tailoring, could help arguing too high cyclomatic complexity covered by safety mechanisms>
295236

296237
* - :need:`wp__sw_arch_verification`
297-
- <Link to issue>
298238
- <Reasoning for tailoring, needed if also wf__cr_mt_comparch is required>
299239

300240
* - :need:`wp__sw_implementation`
301-
- n/a
302-
- If source code is modified, this is not a OSS qualification any more.
241+
- Tailored - If source code is modified, this is not a OSS qualification any more.
303242

304243
* - :need:`wp__verification_sw_unit_test`
305-
- <Link to issue>
306244
- <Reasoning for tailoring, can improve deficits in process Id 6 and complexity Id 3>
307245

308246
* - :need:`wp__sw_implementation_inspection`
309-
- <Link to issue>
310247
- <Reasoning for tailoring, can improve deficits in process Id 6 and complexity Id 2>
311248

312249
* - :need:`wp__verification_comp_int_test`
313-
- <Link to issue>
314250
- Always needed (for Q and QR classification)
315251

316252
* - :need:`wp__sw_component_class`
317-
- <Link to issue>
318253
- Always needed as basis for tailoring.
319254

320-
Work Product Status (for Safety Package)
321-
========================================
255+
Module Safety Package
256+
=====================
257+
258+
To create the safety package (according to :need:`gd_guidl__saf_package`) the following
259+
documents and work products status have to go to "valid" (after the relevant verification were performed).
260+
261+
Module Documents Status
262+
-----------------------
263+
264+
For all the work product documents the status can be seen by following the "Link to WP".
265+
A summary of the status is also documented in the project's documentation management plan.
266+
267+
See <add here the section reference to the documentation management plan>
268+
269+
Component Documents Status
270+
--------------------------
271+
272+
For all the work product documents the status can be seen by following the "Link to WP".
273+
A summary of the status is also documented in the project's documentation management plan.
274+
275+
See <add here the section reference to the documentation management plan>
322276

323277
Component Requirements Status
324278
-----------------------------

0 commit comments

Comments
 (0)