Software validation is commonly defined as the set of activities that manage the risk associated with software failures. Given that state-of-the-art pacemakers may contain embedded software with up to 80,000 lines of code and infusion pumps may have over 170,000 lines of code, medical device design engineers must pay special attention to medical software validation strategies.
The early integration of static code analysis and formal verification techniques into medical software development and medical software validation workflows can significantly reduce the number of bugs introduced in medical software. These techniques also help prove the absence of any run-time errors that may have gone undetected through traditional medical software testing, thereby preventing a recall by the FDA.
Polyspace Bug Finder is a static code analysis tool used to analyze code components or entire embedded software projects to pinpoint numerical, data-flow, programming, and other bugs in C or C++ source code. It analyzes software control, data flow, and interprocedural behavior in medical software, and it lets you triage and fix bugs early in the development process. To prove that your software is robust, use Polyspace Code Prover.
Polyspace Code Prover uses abstract interpretation with static code analysis to prove, identify, and diagnose run-time errors such as overflows, divide by zeros, and out-of-bound pointers in medical software. This technique verifies all run-time conditions and automatically provides a diagnosis of proven, failed, unreachable, or unproven for each code operation. To quickly find and triage bugs, use Polyspace Bug Finder.
Traditional software verification and testing methods are often inefficient or inadequate in meeting the current challenges of embedded medical software. Polyspace Bug Finder and Polyspace Code Prover employ advanced verification techniques based on formal methods to provide an optimum solution that addresses the software validation requirements of the high-integrity medical device software development process. Using code verification tools early in software development enables teams to find and eliminate bugs and run-time errors when they are easiest and cheapest to fix.