For embedded software developers making the transition to the recently update C++ standard – C++'11 – Programming Research (PRQA) has just release a major new upgrade, Version 3.2, to its QA·C++ static analysis tool. http://www.programmingresearch.com/
PRQA has targeted the new upgrade of QA·C++ at the growing number of development teams that have transitioned to C++’11. In addition to the coverage of key C++’11 constructs in the original version, such as rvalue references and variadic templates, Version 3.2 further extends this coverage. http://www.programmingresearch.com/products/qacpp/
Version 3.2 adds user defined literals, the noexcept operator, alias templates, the constexpr keyword, aliginof and alignas, inheriting and delegating constructors.
To support the increasing requirement for the detection of security problems, QA·C++ now includes a pre-configured grouping which comprises security related rules, providing an easier mechanism to assess a source code’s adherence to security related guidelines and best practices. A full mapping of PRQA’s CERT C++ (and CERT C) coverage is also now provided on the CERT website. www.securecoding.cert.org.
The number of metrics produced by QA·C++ has effectively doubled from 26 to 53, and Version 3.2 provides 29 function-, 16 file- and 8 class-related metrics.
Many of these are specified by Hersteller Initiative Software (HIS), used by the automotive industry as a basis for measuring software quality. These enhancements extend the capabilities of QA·C++ to deliver metrics-based code quality measurement, as well as coding standard enforcement.http://en.wikipedia.org/wiki/HIS_(automotive_group)
QA·C++’s integration with auto-code generators, including IBM's XML-based Rhapsody, has been further improved, making it easier to differentiate between issues detected in machine-generated code and messages related to hand-written code, helping developers to focus on inspecting and fixing the latter.
Version 3.2 also includes a number of other significant refinements, such as data initialization in constructors, implicit signed/unsigned conversions and overloaded stream operators, which further reduce noise and improve the overall accuracy of the tool. A series of short educational videos is also available on the PRQA webside.