Process Requirements#
Please notice, that detail design description files (within MarkDown or RestructuredText) are optional. Also diagrams are optional, but if they are created, they shall have the following attributes to ensure consistency and traceability.
Static Diagram for Unit Interactions
|
status: valid
|
||||
The static diagram shall represent the units and their relationships using UML notations. |
|||||
Diagram Attributes#
Diagram attribute: UID
|
status: valid
|
||||
Each diagram shall have a unique name. It shall consist of three parts:
Consider the project’s naming convention. |
|||||
Diagram attribute: title
|
status: valid
|
||||
The title of the diagram 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 diagram. |
|||||
Diagram attribute: description
|
status: valid
|
||||
Each diagram shall have a description. |
|||||
Diagram Checks#
Diagram mandatory consistency
|
status: valid
|
||||
It shall be checked if all diagrams are consistent with the source code and the design principles outlined in the development plan. This includes checking that the naming of the units, their interfaces and functions in any diagrams or descriptions matches the naming in the source code to ensure traceability. That means the diagrams and descriptions should not be outdated and be consistent with the source code and not introduce new terminology or concepts that are not present in the code. |
|||||
Unit Attributes#
Unit naming
|
status: valid
|
||||
Each unit shall have a proper naming, which is unique within the component and follows a consistent naming convention. The name should be descriptive and reflect the functionality of the unit to ensure traceability and understandability. The naming convention should be defined in the project guidelines and consistently applied across all units. |
|||||
Unit description
|
status: valid
|
||||
Each unit shall have a description in the source code. |
|||||
Interface Attributes#
Interface naming
|
status: valid
|
||||
Each interface shall have a proper naming, which is unique within the component and follows a consistent naming convention. The name should be descriptive and reflect the functionality of the interface to ensure traceability and understandability. Consider the project’s naming convention. |
|||||
Interface description
|
status: valid
|
||||
Each interface shall have a description in the source code if the source code does not already provide sufficient information. It should provide a clear and comprehensive explanation of the interface’s purpose, its inputs and outputs, and how it interacts with other units or components. The description should be sufficient to allow users of the interface to understand how to interact with it without needing to read the implementation details. It should also include any relevant information about the expected behavior, constraints, and any assumptions made in the design of the interface. The documentation should be maintained and updated as the implementation evolves to ensure it remains accurate and useful. |
|||||
Dependency Analysis#
Dependency Analysis
|
status: valid
|
||||
For each component a dependency tree view shall be created to support design inspection and Safety Analysis. It shall show the libraries used by the component (i.e. which libraries are linked to the component, defined as CI build tool target) up to the leaves of the tree. |
|||||
Complexity Analyses#
Design Complexity Analysis
|
status: valid
|
||||
A complexity analysis for the components shall be performed by automated tool support. It shall consider appropriate code metrics like lines of code, cyclomatic complexity, number of public interfaces, number of parameters and so on. The results of the analysis shall be documented in the SW Verification Report. As default an exceeds of the following limits shall be reported for the complexity measures (ASIL B / QM):
The project may specify own limits for the complexity measures in the project guidelines, if there is a rationale for deviating from the default limits. Therefore the tooling shall support configuration of the limits globally for the project and per component, if the component wants to use own lower (more strict) limits. |
|||||