Static Analysis for C/C++

Parasoft Static Analysis for C and C++ not only analyze code using the industries deepest and broadest set of static and flow analysis rules, the raw analysis data can also be merged with test results, metrics analysis, coverage analysis, and other quality findings to highlight systemic issues in the development process and prevent defects from happening again.

Capabilities

Static Analysis for FDA

  • Out-of-the-box test configuration for FDA/medical devices
  • Analyzes C, C++, Java, and .NET languages
  • Direct integration into embedded development environments
  • Also includes peer code review, unit testing, coverage analysis, and runtime error detection
READ MORE
Parasoft C/C++test is certified by TUV SUD for use in developing safety-critical applications

Static Analysis for Safety-critical

  • Out-of-the-box test configuration for MISRA, ISO 26262, JSF, FDA, more
  • Analyzes C, C++, Java, and .NET languages
  • Direct integration into embedded development environments
  • Also includes peer code review, unit testing, coverage analysis, and runtime error detection
READ MORE

Static Analysis for Secure Application Development (SAST)

  • Out-of-the-box test configuration for MISRA, ISO 26262, JSF, FDA, more
  • Analyzes C, C++, Java, and .NET languages
  • Direct integration into embedded development environments
  • Also includes peer code review, unit testing, coverage analysis, and runtime error detection
READ MORE

Supported environments

Custom Messages

Defects Detected

  • Exceptions
  • Initialization
  • Logical errors
  • Performance degradation
  • Portability problems
  • Resource and memory leaks
  • Security vulnerabilities
  • Threads and synchronization

Out-of-the-box Test Configurations

  • CERT
  • CWE SANS Top 25
  • Effective C++ (Meyers)
  • Effective STL (Meyers)
  • Ellemtel
  • FDA
  • HIS Source Code Metrics
  • ISO 26262
  • Joint Strike Fighter
  • MISRA C, C 2004, C++ 2008, C 2012
  • OWASP Top 10
  • PCI Data Security
  • SAMATE
  • Sutter-Alexandrescu
  • The Power of Ten for Safety Critical

Static Code Analysis Rules

  • All member variables should be initialized in constructor
  • Avoid unused local variables
  • Declare copy constructor for classes with dynamically allocated memory
  • Do not call delete on non-pointers
  • Do not invoke malloc/realloc for objects having constructors
  • Initialize all pointer variables
  • Initialize static class members
  • Make destructors virtual in base classes
  • Never return a reference to a local object
  • Properly terminate character strings
  • Throw by value, catch by reference

Data Flow Rules

  • Avoid accessing arrays out of bounds
  • Avoid buffer overflow
  • Avoid conditions that evaluate to the same value
  • Avoid division by zero
  • Avoid null pointer dereferencing
  • Avoid use before initialization
  • Do not use blocking functions while holding a lock
  • Do not abandon unreleased locks
  • Ensure resources are freed

Metrics Analysis

  • Cyclomatic Complexity
  • Essential Complexity
  • Class Inheritance Level
  • Halstead Complexity

Resources

Electronics: PC Maker Enhances the Enterprise User Experience w/ Development Testing

Download »

SELEX-ES Case Study

SELEX-ES wanted to eliminate software defects early in the SDLC. Learn how Parasoft static analysis helped them increase reliability while reducing reduced development time, costs, and resources.
Download »

Thales Case Study

By applying Parasoft solutions to its Integrated Tramway Management Solutionsnproject—then later deploying it across the entire Automatic Vehicle Location System division—Thales Italia reduced its rate of defective components by 30% and significantly increased application performance.
Download »

IMA Case Study

By working with Parasoft , IMA significantly increased the efficiency and auditability of the strict quality process they adopted to comply with pharmaceutical industry regulations.
Download »

Inomed Case Study

Download »

Samsung Electronics Case Study

Download »

Wipro Case Study

Download »