Wednesday, April 25, 2007

The Motor Industry Software Reliability Association (MISRA)

The Motor Industry Software Reliability Association (MISRA) is a collaboration between vehicle manufacturers, component suppliers and engineering consultants which seeks to identify a set of rules that should be followed in safety- critical electronic applications of the automotive industry. They have already developed rules for the C programming language and are actively pursuing for other high level languages including auto code generation using MATLAB.

The MISRA software guidelines, "Development Guidelines for Vehicle Based Software" was published in 1994 and has since been widely accepted by the industry. They call for the use of a restricted subset of the high level languages so that the derived final executable code becomes fail safe to an extent. The latest version of the guidelines is MISRA-C:2004.

To give more information on these MISRA has recently launched a website http://www.misra-c.com/. This site includes information on all the coding guidelines as well as answers to frequently asked questions. A discussion forum is also there.

Although developed for the automotive industry it is now used in various other fields where safety and reliability are of prime concern such as medical equipment manufacturing.

A variety of tools such as QAC, Cosmic Software MISRA CHECKER, LDRA tool suite are now available to check if the code is MISRA compliant.

Need for Coding Guidelines

This blog is intended to give information on the various coding guidelines used in the automotive industry. The coding guidelines for high-level languages, especially C along with auto code generation using SIMULINK and STATEFLOW will be the focus of attention.

C is widely used in the automotive industry due to its flexibility and universal acceptance facilitating greater support. But C has grown so flexible that that it has become virtually impossible to address all areas of concern. The high level of integrity and reliability required for safety- critical applications such as in automotive systems will not be present in the final executable code derived from C unless the flexibility is restricted. Here comes the significance of coding guidelines.

So coding guidelines identify certain aspects of C that have to be avoided to prevent the application from crashing. The industry has to follow a single set of guidelines for obvious reasons and has been widely using the MISRA guidelines.