Achieving compliance with MISRA Coding Guidelines according to MISRA C:2004, MISRA C:2012 and MISRA C++:2008 in critical systems
The various versions of the MISRA Guidelines for the use of the C and C++ languages in critical systems were and are developed by the MISRA consortium. MISRA stands for Motor Industry Software Reliability Association.
The original focus of the MISRA standards is therefore on the development of safety-relevant and reliable software in the automotive environment and thus within the scope of ISO 26262. Compliance with the MISRA guidelines is regularly required for software development in all industries throughout the embedded sector, especially when it comes to functional safety. By applying the generally accepted MISRA rules, code quality is controlled along the supply chain.
Axivion’s MISRA Checker covers 100 percent of the automatically testable rules of MISRA C:2004, MISRA C:2012 (including Amendment 1 Security Rules and Amendment 2) and MISRA C++:2008 in consideration of MISRA Compliance:2016 and MISRA Compliance:2020.
The MISRA Checker of the Axivion Suite is certified by SGS TUEV Saar for use in software projects with safety requirements according to ISO 26262 up to ASIL D, IEC 61508 up to SIL 4, IEC 62304 up to Class C.
Achieve MISRA compliance through simple process integration into Safety Quality Management
The Axivion Suite provides you with central building blocks for your Safety Quality Management, especially if you want or have to adhere to the procedures outlined by MISRA (e.g. documented in the documents MISRA Compliance:2016 and MISRA Compliance:2020):
- The customisable severity classification of rules and rule groups allows you to prioritise your work and categorise the rules in a MISRA-compliant way. MISRA categorises the rules it contains as mandatory, required or advisory. To be MISRA-compliant, rules marked as mandatory must not be violated. If justifications exist, a rule categorised as required may be deviated from. MISRA provides a documented process for this.
- By means of justifications in the code or in external files, deviations from the MISRA rules can be handled in a structured and systematic way in the work process in order to develop in conformity with the standards. MISRA justifications and permissions can be specified directly.
- By applying different delta intervals, progressions over the development can be observed and evaluated. In addition, the delta analysis can be used to make the achievement of targets such as “do not introduce new findings” transparent.
- Automatically generated reports on the MISRA compliance of your code make documentation easier.
Easy integration into IDEs and CI environments
The results of Axivion’s MISRA check integrate into a wide range of IDEs and CI environments. This allows easy integration into your processes from local checks to full-blown automated checks in the CI — all including the same configuration and results. With flexible controllability from the command line and scripting capabilities of the Axivion Suite, the MISRA Checker can be integrated into virtually every practical environment.
Easy focus in day-to-day business reduces risks
Axivion’s unique delta mechanism helps you and your team focus on the daily work: writing safe code. In reviews, delta analysis can easily identify MISRA rule violations caused by work on sprints, releases, feature branches, etc.
Tool qualification for software development according to ISO 26262, IEC 61508 or IEC 62304
The MISRA Checker of the Axivion Suite is certified by SGS TUEV Saar for use in software projects with safety requirements according to ISO 26262 up to ASIL D, IEC 61508 up to SIL 4, IEC 62304 up to Class C. The Tool Qualification Kit together with Axivion’s Safety Manual ensures that you can trust the Axivion Suite MISRA checks in your environment and use cases up to the required ASIL level.
The image shows the list of changes for MISRA violations in the period from August to September. In addition to new violations, one MISRA violation was also rectified during the same period.
Good to know: Relationship between MISRA C++ 2008 and AUTOSAR C++14
Ultimately, adherence to any coding guidelines can never be an absolute guarantee that the code developed will be free of quality and security problems. After all, such problems can also happen as a result of faulty requirements or logic errors, or through code constructs that are not covered by the rules. Therefore, quality assurance in a safety-critical environment must always be multidimensional. The use of a MISRA check is always only one quality component among many. Fortunately, Axivion Suite offers many more program analyses in addition to the MISRA checks to bring the potential inherent in static analyses fully to bear: From checking for clones, cycles and dead code to architecture analysis.
For the C++ area, MISRA C++:2008 is no longer state of the art; the AUTOSAR C++14 rules are often used instead. In future, MISRA and AUTOSAR coding guidelines will be merged again as MISRA C++ 202X. Just like the rules themselves, the coding guideline checks of the Axivion Suite are therefore constantly being further developed.
A selection of Success Stories about MISRA