MISRA Compliance

The MISRA C and MISRA C++ documents are compilations of guidelines for coding in the C and C++ languages respectively.

They are widely used in the development of critical software systems when the requirements of a quality standard must be met. Many software projects specify that code quality should be assured by meeting the requirements of The Guidelines.

However, the meaning of the phrase “MISRA compliant” needs to be carefully defined.  In order for a claim of MISRA compliance to have meaning, it is necessary to establish:

  • Use of a disciplined software development process;
  • Exactly which guidelines are being applied;
  • The effectiveness of the enforcement methods;
  • The extent of any deviations from the guidelines;
  • The status of any software components developed outside of the project.

The MISRA C and MISRA C++ guidelines recognize that, in some situations, it is unreasonable or even impossible to comply with a coding guideline and that it is necessary to deviate from its requirements. The freedom to deviate does not necessarily compromise claims of compliance, but it does carry with it great responsibility. In the absence of a disciplined development process, it is easy for that freedom to be abused. At best, that will undermine the credibility of any claims of MISRA compliance; at worst, it will compromise code quality, safety or security.

MISRA Compliance provides such guidance!

It is therefore important to emphasize that a credible claim of compliance with MISRA C and MISRA C++ guidelines can only be made when code is developed under a process which meets the principles laid out in the MISRA Compliance document.

The guidance given in MISRA Compliance supersedes the compliance, deviation and process requirements published previously in the various MISRA C and MISRA C++ guidelines, and forms a Mandatory reference to MISRA C:2023 and MISRA C++:2023 (and any subsequent updates).