Dates and Events: |
OSADL Articles:
2023-11-12 12:00
Open Source License Obligations Checklists even better nowImport the checklists to other tools, create context diffs and merged lists
2022-07-11 12:00
Call for participation in phase #4 of Open Source OPC UA open62541 support projectLetter of Intent fulfills wish list from recent survey
2022-01-13 12:00
Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completedAnother important milestone on the way to interoperable Open Source real-time Ethernet has been reached
2021-02-09 12:00
Open Source OPC UA PubSub over TSN project phase #3 launchedLetter of Intent with call for participation is now available |
FLOSS for safety: Mastering mission critical development with GIT
Andreas Platschek, Nicholas Mc Guire, Georg Schiesser, Thomas Hisch, OpenTech EDV Research GmbH, Austria
Writing code for safety critical systems implies a lot of restrictions and requirements in the software development process. Depending on the field a specific development process has to be followed and fully documented. In order to be compliant with a standard ,e.g. DO-178B, ISO61508, ISO26262, MISRA-C, stringent traceability requirements must be followed allowing to justify the development process itself.
In this paper, we try to give some examples of features of git that are - in our eyes - useful in helping the developers to fulfill the traceability and documentation requirements of safety related development life-cycles. Examples for such techniques are a history for each and every line of code, or the sign-off mechanism, to find out who is responsible for any part of the code base - providing a method to ensure you know who to blame.
These git specific features can even be improved by using git hooks in combination with different tools, including formal methods, and back-end scripting, allowing to fully automate these QA related extensions.
The intention behind all of these techniques is to build a tool-chain for extended traceability [version control] around git, simplifying the verification process.
Although this paper targets safety critical systems in particular, some of the presented techniques may well be suited for enhancing the kernel development as well as for standard user space programing tasks.
[DISCLAIMER:] None of the proposed techniques replaces common sense, they are just a way of improving your code and development process.