3.6. Software Tools¶
3.6.1. General¶
At every commit of the development the repository strictly defines the tools and their versions that MUST be used when working on the project.
All developers MUST use exactly these tools and versions.
The continuous integration test runners MUST use exactly these tools and versions.
The tools and versions that are used MUST be defined in the documentation.
3.6.2. Third Party Tools¶
Supporting tools for software analysis SHOULD be ISO 9001 qualified. The following supporting tool classes are required to be used:
version control system
compiler
text editor
build automation system
unit testing framework
static program analysis tools
documentation tools
test runner
The following tools are shown in Table 3.3.
Tool |
Class |
Criticality |
Criticality comment |
---|---|---|---|
git |
version control system |
T3 |
|
TI ARM CGT |
compiler |
T3 |
used to build code for the target |
TI ARM CGT |
linker |
T3 |
used to link code for the target |
GCC |
compiler |
T2 |
used to build and link code for unit tests |
VS Code |
text editor |
T1 |
|
waf |
build automation system |
T3 |
controls build process; generates version dependent code |
Axivion Suite |
static program analysis tools |
T2 |
|
Cppcheck |
static program analysis tools |
T1 |
just a helper for the static analysis; Axivion is used as the main tool |
sphinx |
documentation tools |
T1 |
just a rendering tool for the documentation text files |
ceedling |
unit testing framework |
T2 |
|
Custom HIL implementation |
test runner |
T3 |
3.6.3. Repository Inherent Tools¶
3.6.3.1. General¶
Tools that are specifically developed to support this project MUST be included in the repository.
These tools MUST be checked by language appropriate checkers:
linters to reduce the presence of programmatically detectable error (if available)
source code formatters to simplify code reviews (if available)
Unit tests MUST be implemented for these tools.
3.6.3.2. Supporting Programming and Scripting Languages¶
Programming and scripting languages that support the projects objective MUST be chosen from the following list in order to limit the number of external dependencies:
Python 3
Ruby 2.7
shell scripts (for
cmd.exe
orbash
)