Untitled Document

Automate Compliance to MISRA Guidelines

 

Overview

 

MISRA C:2012 Code review by violations
MISRA C:2012 Code review by violations

MISRA guidelines have been widely adopted to ensure the quality of safety-critical software in automotive, aerospace, defense, industrial, medical and rail applications. By following MISRA rules, developers can be assured that they are using the most stringent software coding standards to mitigate liability and risk in software applications on which human lives depend.


MISRA compliance tools from LDRA enforce good programming practises with complexity analysis and code coverage. Developers can choose from LDRArules—a cost-effective, standalone rules checker—or the complete LDRA tool suite, which integrates MISRA rules into the development lifecycle. Ultimately, LDRA tools help developers meet the highest quality software development standards for code that is more maintainable, readable, consistent and verifiable.

 

Benefits of adhering to programming standards

 

MISRA C:2012 Programming standards flowgraph
MISRA C:2012 Programming standards flowgraph

Compliance with programming standards such as MISRA helps developers:

 

- Promote portability and avoid unexpected results

- Ensure there is no reliance placed on compiler or platform-specific constructs

- Identify unreachable or infeasible code which often indicates a defect that will, at the very least, impact software maintainability

- Prohibit certain language constructs known to be a source of common errors

- Measurably reduce program complexity

- Improve program testability, easing standard compliance and certifiability

 

The ability to quickly and easily analyse software against programming standards delivers tangible benefits to development teams in terms of code quality, consistency and reduced time-to-deployment.

 

“LDRA has played an important role in the development and completion of MISRA C:2012,” commented Steve Montgomery, Chair of the MISRA C:2012 Working Group. MISRA is about collaboration and the latest version of MISRA C has benefited greatly from the involvement of all parties, including engineers across a number of sectors and disciplines. It is that expertise that will help programmers make safer use of the features of the C language.”

 

MISRA Tools from LDRA

 

Automated tools ease compliance to software development standards


The MISRA guidelines provide a subset of C or C++ programming rules in order to develop safe and reliable software. Automatic rule checking tools help enforce and ease compliance with this subset.

 

The LDRA tool suite provides the most comprehensive coding standards enforcement available

 

MISRA C:2012 Annotated Code
MISRA C:2012 Annotated Code

The LDRA tool suite assists with the eight primary tasks required to achieve an organization's software development and maintenance goals. All versions of the MISRA rules (MISRA C:1998, MISRA C: 2004, MISRA C:2012, MISRA C++:2008, and MISRA AC) are completely integrated into the LDRA tool suite for efficient MISRA checking within a familiar development environment.


The LDRA tool suite automates source code checking for conformance to MISRA guidelines during unit, system, or integration testing to ensure compliance throughout the software development cycle. This lets developers benefit from faster adoption of the standard in new and existing projects.

 

The LDRA tool suite locates and highlights areas of code that are non-conforming to aid documentation and modification. Extensive reports and graphical displays enhance understanding of the source code, facilitating improvements in testability, understandability, and maintainability in line with MISRA rules. The LDRA tool suite also enables coverage measures to be taken to ensure software testedness is measured and maintained, as recommended by the MISRA guidelines.

 

LDRArules provides cost-effective, standalone MISRA checker

 

LDRArules is a programming rule checker that brings together a collection of rules from a broad spectrum of programming standards, including MISRA. Implemented as a cost-effective, standalone product, LDRArules helps development teams improve their software quality by selecting and adhering to relevant industry programming standards. Companies can easily configure LDRArules for a specific programming standard such as MISRA, or choose to enforce in-house programming templates and improve their overall software development methodology. Developers can choose rules for a specific industry standard or they can select a combination of rules from a variety of standards, creating customized templates tailored for their company and projects. LDRArules documents which rules have been selected, ensuring complete transparency of what programming rules have been implemented.

 

MISRA FAQs

 

Who is using LDRA tools for MISRA standards compliance?

 

The LDRA tool suite is used by companies around the world to meet MISRA rules. A cross-section of clients currently utilising the LDRA tool suite include:


ldraimages/cozumler/logos_for_misra.jpg

 

Does LDRA publish a conformance matrix for compliance to MISRA rules?

 

Yes, LDRA publishes complete documentation of its compliance to MISRA rules, so developers can be confident in their compliance. This is especially important in industries such as avionics, where compliance to accepted coding rules can be part of the requirements traceability for rigorous assurance such as DO-178 Levels A or B.

 

Do LDRA products provide compliance for all versions of MISRA rules?

 

Both the LDRA tool suite and LDRArules offer full support within a single programming environment for all versions of the MISRA rules: MISRA C:1998, MISRA C:2004, MISRA C:2102, MISRA C++:2008 and MISRA AC. With these LDRA products, programmers have a consistent development environment for multiple projects, from those based on the newest MISRA rules through legacy projects that use any previous MISRA version. A simple drop-down menu lets developers choose support for multiple MISRA versions and programming language standards from within a single tool.