Skip to content

Commit c43c4c4

Browse files
authored
Merge pull request #2663 from qorix-group/vohae_sdp_audit_fix
Add critiera for prog. design language to SDP
2 parents bb5ef8f + 9195626 commit c43c4c4

File tree

3 files changed

+44
-12
lines changed

3 files changed

+44
-12
lines changed

docs/contribute/development/cpp/coding_guidelines.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
# SPDX-License-Identifier: Apache-2.0
1313
# *******************************************************************************
1414
15-
Writing C++ Code
16-
################
15+
Writing C++ Code incl. Coding Guidelines
16+
########################################
1717

1818
.. document:: Coding Guidelines C++
1919
:id: doc__cpp_coding_guidelines

docs/contribute/development/rust/coding_guidelines.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
# SPDX-License-Identifier: Apache-2.0
1313
# *******************************************************************************
1414
15-
Writing Rust Code
16-
#################
15+
Writing Rust Code incl. Coding Guidelines
16+
#########################################
1717

1818
.. document:: Coding Guidelines Rust
1919
:id: doc__rust_coding_guidelines
@@ -40,6 +40,8 @@ reporting and code metrics generators, are still unavailable, and the
4040
consortium is evaluating what further tooling and support are necessary to
4141
enable certification and safe use of Rust in automotive applications.
4242

43+
`Safety-Critical Coding Guidelines <https://github.com/rustfoundation/safety-critical-rust-coding-guidelines>`_
44+
4345
`Safety-Critical Rust Consortium <https://rustfoundation.org/safety-critical-rust-consortium>`_
4446

4547
`Safety-Critical Rust Consortium Guidelines <https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines/>`_

docs/platform_management_plan/software_development.rst

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,40 @@ Scope is the complete SW platform and the development parts of the process.
4444
Approach
4545
++++++++
4646

47-
Design and programming language
48-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49-
50-
For specifying **Detailed Design** (like for the Architecture) a mixture of UML diagrams and natural language is used.
51-
Additionally for the Detailed Design linking to code, Doxygen style comments are used.
52-
This is described in :need:`doc_concept__imp_concept` and guided by :need:`gd_temp__detailed_design`
53-
54-
As required in :need:`stkh_req__dev_experience__prog_languages`, S-CORE allows the use of two programming languages:
47+
Selection of design and programming language
48+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49+
50+
For the selection of design and programming language a stakeholder requirement is defined in :need:`stkh_req__dev_experience__prog_languages`,
51+
which is based on experience. The criteria for selection are based on the following aspects:
52+
53+
* Unambiguous definition of syntax and semantics
54+
* Suitability for specifying and managing for safety related requirements and design
55+
* Support of modularity, abstraction and encapsulation
56+
* Support of the use of structured constructs
57+
58+
The selected languages form the stakeholder requirements were analysed in the following table:
59+
60+
.. list-table:: Selection of design and programming language
61+
:header-rows: 1
62+
:widths: 33,33,33
63+
64+
* - Criteria
65+
- C++
66+
- Rust
67+
* - Unambiguous definition of syntax and semantics
68+
- Standardized, strict syntax, strong tooling
69+
- Strict syntax, single compiler, strong tooling
70+
* - Suitability for safety related programming
71+
- Certified tools, MISRA, static analysis, traceability
72+
- Compiler-enforced safety, strong type system, documentation, emerging safety support, certified tools
73+
* - Support of modularity, abstraction and encapsulation
74+
- Classes, templates, modules, access control
75+
- Modules, crates, traits, strong visibility control
76+
* - Support of the use of structured constructs
77+
- Full support for structured programming
78+
- Full support, enforced by language design
79+
80+
S-CORE allows the use of two programming languages:
5581

5682
**C++ with the language set of C++17** - in case additional elements from C++20 are needed this will be considered by
5783
:need:`rl__safety_manager`, :need:`rl__security_manager` and :need:`rl__quality_manager`
@@ -62,6 +88,10 @@ For the Rust code of ASIL rated units the "safe subset" shall be used (which is
6288

6389
C language is allowed in incubation phase, as long it is compilable be the selected compiler, but not for a S-CORE release.
6490

91+
For specifying **Detailed Design** (like for the Architecture) a mixture of UML diagrams and natural language is used.
92+
Additionally for the Detailed Design linking to code, Doxygen style comments are used.
93+
This is described in :need:`doc_concept__imp_concept` and guided by :need:`gd_temp__detailed_design`
94+
6595
Design guideline
6696
^^^^^^^^^^^^^^^^
6797

0 commit comments

Comments
 (0)