ECLAIR FOR MISRA C++

The ECLAIR MP1 package is a combination of several of the many applications that run on top of ECLAIR, a powerful platform for the automatic analysis, verification, testing and transformation of C and C++ programs. This particular package combines:

  • a state-of-the-art, medium-weight static analyzer that almost completely automates the assessment of compliance with MISRA C++:2008, BARR-C:2018, AUTOSAR-C:2009, as well as other, complementary coding rules;
  • a precise and flexible implementation of the source code metrics defined by HIS;
  • the ECLAIR Bug Finder, a very fast static analyzer able to detect bugs and weaknesses that can lead to crashes, misbehaviors, and security vulnerabilities;
  • the ECLAIR Project Organization Checker, for the automatic checking of the system architecture, independence and freedom from interference of software components.

 

DISCOVER ECLAIR MP1 PACKAGE

 

Checkers for the new version of MISRA C++ are currently being developed: they will be incrementally added, at no extra cost, to MP1 package until when MISRA C++:202x is officially released.

 

Highlights

  • Proper coverage of MISRA C++:2008, not just a version of MISRA C in disguise: the language and many rules are radically different and require completely different checkers.
  • No time wasted in writing compiler personality files (often of questionable correctness).
  • Automatic production of accurate, faithful and (optionally) tamper-proof compliance reports.
  • Easy-to-use yet powerful graphical user interface.
  • Real-time use from within most popular IDEs or batch use with reports stored in a database.
  • Guideline violation and metric reports optionally available to the entire development team and management using web-based technology.
  • Powerful mechanisms of differential reporting allow correlating changes in the code and the appearance/disappearance of violations (with possible interfaces to issue-tracking systems).
  • No stress: free consultancy services for the initial configuration. This includes full assistance to help your company make the transition to the MP1 package.

 

MISRA-C++:2008

MISRA C++:2008 is the software development C++ subset developed by MISRA for the motor industry, which is now a de facto standard for safety-, life-, and mission-critical embedded applications in many industries including aerospace, railway, medical, telecommunications and others.

Coverage and Precision

The ECLAIR MP1 package offers one of the most extensive, properly said MISRA C++:2008 coverages available on the market, by providing support for around 87% of the guidelines.

Guidelines are enforced using very general and accurate checkers, which operate on the precise sequences of tokens and abstract syntax trees that are manipulated by the compiler. Coupled with the fact that ECLAIR always checks each guideline in the appropriate context (at the token, declaration, translation unit, whole program or whole system levels), this makes sure that the checkers for decidable rules are exact (neither false positives nor false negatives). For undecidable rules, ECLAIR’s MP1 package provides a medium-weight solution to the tradeoff among computational complexity, number of false positives and number of false negatives. In any case, when false negatives are possible, they are always clearly and unambiguously delimited.

Compliance Reports

ECLAIR can be configured to automatically produce compliance reports required to meet contractual obligations and industrial standards such as ISO 26262. The compliance report is obtained from the actual configuration, which, if properly done, will contain the reason for each deviation. Thus, carrying its rationale, any deviation goes straight from the configuration to the report. In addition, thanks to ECLAIR’s ability to intercept and fully understand the communication with the toolchain, the compliance report contains full details about the code and its analysis: which files have been compiled and/or analyzed (with full path and a cryptographic hash of their contents), the compiler/linker options, the full version of ECLAIR, . . . , with even a cryptographic hash of the generated executables. All this allows the linking of the MCU’s ROM actual content with the compliance report.

HIS Source Code Metrics 

Source code metrics are recognized by many software process standards (and from MISRA) as providing an objective foundation to efficient project and quality management. One of the most well known set of metrics has been defined by HIS (Herstellerinitiative Software, an interest group set up by Audi, BMW, Daimler, Porsche and Volkswagen).

The HIS source code metrics, while well established, include some metrics that are obsolete and miss others that are required or recommended by software process standards, such as those that allow estimating function coupling. For this reason, HIS source code metrics are supplemented by numerous other metrics that allow software quality to be assessed in terms of complexity, testability, readability, maintainability and so forth. Keeping track of these metrics also provides an effective and objective method to assess the quality of the software development process.

Coverage

ECLAIR’s MP1 package provides very precise and flexible coverage for the 12 HIS metrics with boundary limits: CALLING, CALLS, COMF, GOTO, LEVEL, PARAM, PATH, v(G), RETURN, STMT, VOCF and ap_cg_cycle. In addition, it contains 36 non-HIS metrics: the 48 metrics provided make ECLAIR’s MP1 package a complete software measurement solution. All metrics may be incrementally reported, showing exactly where in the code the value was computed or aggregated (e.g., maximized, summed, averaged) over a single function, translation unit, program, or the whole project. If a limiting value for a metric is provided, ECLAIR can report where this value is attained and also, if needed, each subsequent point in the code where a value that breaches the limit is computed.

Proper Integration with the Toolchain

ECLAIR intercepts every invocation of the toolchain components (compilers, linker, assembler, archive manager) and it automatically extracts and interprets the options that the build system has passed to them. This allows for the seamless integration with any build system. All this is automatic and supports build processes that involve the automatic generation of source files that depend on the configuration, without requiring the development and maintenance of a separated analysis procedure: with ECLAIR the existing build procedure can be used verbatim.

ECLAIR Packages

Here are the available ECLAIR packages.

B
        
MC2
 
MC3
        
MP1
We are a passionate team of experts. Do not hesitate to let us have your feedback:
You may be surprised to discover just how much your suggestions matter to us.