Seminar on the MISRA C rules for the development of safety-critical software with ANSI/ISO C
The Rule Catalogue MISRA C:2012
In this MISRA C course, the development of safety-critical software with the programming language ANSI/ISO C in the C89/90 and C99 variants in embedded systems in the automotive field is observed. For this purpose, the failure possibilities in a software project are analyzed and discussed. The typical failures occurring in the implementation with standard C are classified and associated to the MISRA rules. Beside the work on the rules, the structure of the MISRA Rule Document from 2012 is discussed. The rules themselves are covered in detail and the documentation requirements necessary to prove the compliance with the rules are discussed. The objective of the seminar is to get to know the principles and rules that MISRA offers for failure prevention in C projects. To complete this technical subject matter it is also possible to discuss the introduction of coding guidelines in software projects.
The following subject matters are covered:
- The Motivation behind the MISRA rule catalogue.
- The Error in Software.
- The Error in Coding (Implementation).
- Thoughts on Development of Embedded Systems.
- Safety-relevant and Safety-critical Software.
- Special Sources of Error in C.
- Undefined Behavior of C.
- Implementation-dependent Behavior of C.
- Common Errors in C.
- Legibility and Clearness of C Code.
- The C Language and the Developer’s Intuition.
- Improved Description of the Rules in front of older MISRA Standards.
- Simplification of the Rule Description.
- Clear Classification of Rules and Guidelines.
- Automatic Verifiability.
- Rule Scope.
- Required and Recommended Rules.
- Rules for ISO C99.
- Static Code Analysis.
- Programming Guidelines and Coding Styles.
- Development Process.
Any C Compiler that is compatible with ANSI C89 or ISO C90 can be used. For MISRA C:2012 the compiler may also support the C99 standard, which is the case for most compilers in use today. The recommended platforms are Windows, MacOSX, UNIX or Linux systems. The only important thing is that course participants master the C programming language and simple data operations on the system they use. A few rules are run through with real program examples.
Last modified 16.07.2023