As of R2019a, Polyspace Bug Finder™ has transitioned into three new products: Polyspace Bug Finder, Polyspace Bug Finder Server™, and Polyspace Bug Finder Access™. Polyspace Code Prover has also transitioned into three new products: Polyspace Code Prover, Polyspace Code Prover Server™, and Polyspace Code Prover Access™.
There are three main drivers for these changes, which are based on feedback from customers and industry trends. These new products:
- Enable team-based collaboration, so team members can review and triage Polyspace results and monitor project quality using a web-based UI.
- Integrate Polyspace into different phases of the software development lifecycle. For example, developers can find bugs before submitting code to the repository, and quality engineers can review analysis results generated on the integrated build.
- Allow you to use plugins and scripts to integrate Polyspace with popular bug tracking and build automation tools such as Jira and Jenkins.
The new Polyspace Access products, Polyspace Bug Finder Access and Polyspace Code Prover Access, provide new capabilities that enable software development teams to collaborate on their analysis and verification results. They provide a centralized repository with a web-based UI and have 3 main advantages:
- Developers, managers, and quality engineers can triage, assign, and resolve Polyspace findings. You can create and assign bug tracking tickets, such as Jira tickets, from the web UI.
- Managers and team leads can use the Polyspace Access dashboards to monitor project quality and drill down to investigate problematic files and results.
- Quality and development leads can track the progress of projects against standards such as MISRA and CERT-C.
The server products, Polyspace Bug Finder Server and Polyspace Code Prover Server are static analysis and verification engines designed to run on server computers. You can easily integrate them into software development processes such as continuous integration, or CI, using scripts and plug-ins for automation tools such as Jenkins. After the analysis and verification is completed, you can automatically assign results to component owners, send email notifications to owners, and upload results to Polyspace Bug Finder Access and Polyspace Code Prover Access.
Starting in R2019a, Polyspace desktop products, Polyspace Bug Finder and Polyspace Code Prover, do not require MATLAB. Polyspace Bug Finder is the base product and it is required to run Polyspace Code Prover. There is no loss in bug finding and code proving functionality due the R2019a transition.
For details, see:
AUTOSAR C++14 Support
In R2019a, Polyspace Bug Finder can detect violations of the AUTOSAR C++14 coding standard.
The AUTOSAR C++14 standard was created as an update to MISRA C++ 2008, which covers only the C++03 language. Since then, there have been major improvements in the C++ language, the addition of powerful C++ language features, and advances in compilers. With more widespread adoption of object-oriented language in safety critical embedded system, there was a need to cover C++ 11/14.
The AUTOSAR C++14 standard retains only a more relevant subset of MISRA C++: 2008 rules, incorporates later C++ language versions such as C++14, and includes elements from other coding standards such as CERT C++ and High Integrity C++ (HIC++).
Changes in Coding Standards Checking
In R2019a, the workflow for checking coding standards has been simplified. You can explicitly check for security standards such as CERT® C and ISO/IEC TS 17961. You can configure your analysis to check for all supported rules from the standard or reduce the checking to a predefined subset or define your own subset of rules.
Previously, to check for a security standard, you enabled defect checkers and MISRA C®: 2012 checkers that corresponded to rules from the standard.
R2019a offers other improvements such as:
- Support for GCC versions 7.x, Clang versions 4.x or 5.x, and Microsoft Visual C++ 2017 compilers
- Improved CERT C++ support
- Code metrics with Number of Recursions and Number of Direct Recursions
For details, see: