Skip to content

Commit 2b44183

Browse files
implementation process tooling team feedback fixes (#56)
1 parent b32a0f9 commit 2b44183

File tree

4 files changed

+42
-32
lines changed

4 files changed

+42
-32
lines changed

process/process_areas/implementation/guidance/implementation_checklist.rst

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,19 @@ Checklist
5252
-
5353
-
5454
* - IMPL_01_02
55-
- Are the SOLID design principles applied?
56-
- The Unit Design shall achieve the following principles:
57-
Correct order of execution of the functions,
58-
consistency of the interfaces between the units,
59-
correctness of data flow and data control between the units,
60-
simplicity, readability and comprehensibility, robustness,
61-
suitability for modifications, verifiability
62-
-
63-
-
64-
-
65-
* - IMPL_01_03
6655
- Is the implementation according to specification?
6756
- Check if the linked component requirements are fulfilled
6857
and detailed design also matches architecture description.
6958
-
7059
-
7160
-
72-
* - IMPL_01_04
61+
* - IMPL_01_03
7362
- Are the design decisions and constraints documented?
7463
- Check also for plausibility of these.
7564
-
7665
-
7766
-
78-
* - IMPL_01_05
67+
* - IMPL_01_04
7968
- Are all external libraries used by the component specified in the detailed design?
8069
- Check the automated dependency analysis.
8170
Also make sure ASIL rated units also only use ASIL or FFI rated libraries.

process/process_areas/implementation/guidance/implementation_process_reqs.rst

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,44 @@ Process Requirements
1919
:id: gd_req__static_diagram
2020
:status: valid
2121
:tags: mandatory
22-
:satisfies: wp__sw_implementation
22+
:satisfies: wf__sw_detailed_design
2323
:complies: std_req__iso26262__software_843
2424

25-
The static diagram represents the unit and their relationships using UML 2.0 notations by using PlantUML.
25+
The static diagram shall represent the unit and their relationships using UML notations.
2626

2727
.. gd_req:: Dynamic Diagram for Unit Interactions
2828
:id: gd_req__dynamic_diagram
2929
:status: valid
3030
:tags: mandatory
31-
:satisfies: wp__sw_implementation
31+
:satisfies: wf__sw_detailed_design
3232
:complies: std_req__iso26262__software_843
3333

34-
The dynamic diagram represents the unit and their relationships using UML 2.0 notations by using PlantUML.
34+
The dynamic diagram shall represent the unit and their relationships using UML notations.
35+
36+
.. gd_req:: Design to Code Linking
37+
:id: gd_req__design_code_link
38+
:status: valid
39+
:tags: mandatory
40+
:satisfies: wf__sw_detailed_design
41+
:complies: std_req__iso26262__software_843
42+
43+
The detailed design (units and interfaces in DD document) shall be linked
44+
to the source code which implements the units and interfaces in the DD.
45+
46+
Note: Not every code element must have such a link (i.e. is represented in the detailed design),
47+
these elements are implementation detail.
48+
49+
50+
.. gd_req:: Dependency Analysis
51+
:id: gd_req__dependency_analysis
52+
:status: valid
53+
:satisfies: wf__sw_verify_implementation
54+
:complies: std_req__iso26262__software_942
55+
56+
For each component a dependency tree view shall be created to support design inspection and Safety Analysis.
57+
It shall show the libraries used by the component (i.e. which libraries are linked to the component, defined as Bazel target) up to the leaves of the tree.
58+
59+
Note: This may be realized by using Bazel query mechanism.
3560

3661
.. needextend:: docname is not None and "process_areas/implementation" in docname
3762
:+tags: implementation

process/process_areas/implementation/implementation_concept.rst

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ This view focuses **only on units and their relationships**.
8989
Details such as **attributes and interfaces** are documented under the **Units within the Component section**
9090
(refer to the template for details).
9191

92+
Note that the detailed design may not be complete in the way that it covers every class which is coded.
93+
These not covered parts may contain implementation detail and should not be needed to understand the
94+
the detailed design.
95+
9296
Dynamic View
9397
````````````
9498
The **dynamic view** illustrates how the **units** interact with each other to fulfill a specific
@@ -98,10 +102,11 @@ It is represented using **UML behavioral diagrams**, including:
98102
- **Sequence Diagrams** – Depict the interactions between objects in a **time-ordered sequence**,
99103
highlighting how methods are invoked and how control flows between objects over time.
100104
- **State Machine Diagrams** – Show how the **state of an object changes** in response to events,
101-
allowing for the modeling of complex state transitions.
105+
allowing for the modeling of complex state transitions (if there is stateful behaviour).
102106

103107
These diagrams are essential for understanding the **dynamic behavior** of the component and how
104-
units collaborate to perform tasks.
108+
units collaborate to perform tasks. But this also means that if the dynamic behaviour is simple
109+
it does not require a dynamic diagram at all (similar to the rules depicted in :need:`gd_guidl__arch__design`).
105110

106111
Units within the Component
107112
--------------------------
@@ -120,9 +125,6 @@ For cpp using doxygen style comments-
120125
* @rst
121126
* .. sw_unit:: cpp unit
122127
* :id: sw_unit__<title>
123-
* :security:
124-
* :safety:
125-
* :status
126128
*
127129
* This implements the ....
128130
* @endrst
@@ -134,9 +136,6 @@ for rust -
134136

135137
//! .. sw_unit:: rust unit
136138
//! :id: sw_unit__<title>
137-
//! :security:
138-
//! :safety:
139-
//! :status
140139
//!
141140
//! This implements the ....
142141

@@ -156,9 +155,6 @@ For cpp using doxygen comments-
156155
* @rst
157156
* .. sw_unit_int:: cpp unit
158157
* :id: sw_unit_int__<title>
159-
* :security:
160-
* :safety:
161-
* :status
162158
*
163159
* This implements the ....
164160
* @endrst
@@ -170,8 +166,5 @@ For rust -
170166

171167
//! .. sw_unit_int:: rust unit
172168
//! :id: sw_unit_int__<title>
173-
//! :security:
174-
//! :safety:
175-
//! :status
176169
//!
177170
//! This implements the ....

process/process_areas/verification/verification_concept.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,12 @@ Following aspect should be considered when developing test cases:
139139
* **Comprehensive Coverage:** Test cases should cover all functional and tool requirements, including
140140
positive, negative, and boundary conditions. Specific attention should be given to corner cases and error handling.
141141
* **Requirements Testing:** Guarantees testing of Component, Feature, and Stakeholder requirements.
142-
* **Unit Testing:** Focus on isolating and testing individual units or components of the code.
142+
* **Unit Testing:** Focus on testing individual units or components of the code.
143143
Strive for high code coverage for branches and lines.
144144
Coverage goals are defined in the :need:`wp__verification__plan`.
145+
Consider not mocking away libraries the unit uses, as long as you can obtain sufficient
146+
structural coverage from the unit testing with included/integrated libraries,
147+
as this reduces effort on integration testing.
145148

146149
Use the following frameworks for unit testing:
147150

0 commit comments

Comments
 (0)