rx for fda software compliance

53
Parasoft Corporation © 2016 1 Rx for FDA Software Compliance August 2016

Upload: parasoft

Post on 09-Jan-2017

285 views

Category:

Software


3 download

TRANSCRIPT

Parasoft Corporation © 2016 1

2016-09-26

Rx for FDA Software Compliance

August 2016

Parasoft Corporation © 2016 22

Your Presenters

Arthur Hicken is Chief Evangelist at Parasoft where

he has been involved in automating various software

development and testing practices for over 20 years.

He has worked on projects including cybersecurity,

database development, the software development

lifecycle, web publishing and monitoring, and

integration with legacy systems.

Follow him on Twitter @codecurmudgeon

Kelly Weyrauch has more than 30 years of software and

systems development experience, and 20 years of focus on

software processes and quality systems for medical devices.

As an independent consultant, he works with software and

systems creators to apply Agile concepts and Quality

Management System requirements to the unique context of

their development environment.

Follow him on LinkedIn @kellyweyrauch

Parasoft Corporation © 2016 33

Agenda

What the FDA expects

IEC 62304

Benefits of static analysis

How to integrate static analysis

How to reduce noise and stop wasting time

Parasoft Corporation © 2016 4

2016-09-26

Introduction to Medical Device Software Regulations

Where do Static Analysis Tools fit in?

Kelly Weyrauch – Agile Quality Systems LLC

Parasoft Corporation © 2016 5

Software as a Medical Device Software-only

Part of a medical device system

Software used to develop/manufacture/manage a device Development environments & tools

Automated test systems

Manufacturing systems

Quality Management System tools CAPA & Issue Tracking systems

Complaint handling systems

Document Control

Scope of Software Regulations

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 6

21 CFR 820 Quality System Regulation

820.30 Design Controls

21 CFR 11 Electronic Records; Electronic Signatures

ISO 13485 Medical devices— Quality management systems

Section 7 – Product Realization

IEC 62304 Medical device software— Software life cycle processes

ISO 14971 Medical devices — Application of risk management to medical devices

Software Development Regulations and Standards

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 7

GPSV General Principles of Software Validation (FDA)

AAMI TIR45:2012 Guidance on the Use of AGILE Practices in the Development of Medical Device

Software

AAMI TIR36:2007 Validation of software for regulated processes

Many other, more specialized standards & guidance documents

Software Development Guidance

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 8

FDA is responsible for protecting the public health by assuring the safety, efficacy and security of human and veterinary drugs, biological products, medical devices, our nation’s food supply, cosmetics, and products that emit radiation.

FDA is also responsible for advancing the public health by helping to speed innovations that make medicines more effective, safer, and more affordable and by helping the public get the accurate, science-based information they need to use medicines and foods to maintain and improve their health. …

... (http://www.fda.gov/AboutFDA/WhatWeDo/)

Same things Industry wants! Industry & Regulatory should align on the same goals

Requires effort to show they are aligned

FDA Mission Statement

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 9

Satisfying regulatory expectations should be a natural result of doing good work

Should not be viewed as

Adversarial

Conflicting

Bureaucratic

Legalistic

Impractical

Offensive to your engineering sensibilities

Industry & Regulatory Alignment

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 11

21 CFR 820 mentions software only 3 times 820.30(g) Design Controls: Design Validation

“Design validation shall include software validation and risk analysis, where appropriate.” (No definition of what “Software Validation” means.)

820.70(i) Production & Process Controls: Automated Processes “When computers or automated data processing systems are used as part of production or the quality system, the

manufacturer shall validate computer software for its intended use according to an established protocol.”

820.181(a) Device Master Record “Device specifications including … software specifications”

Software “requirements” (expectations) come from Guidance Documents General Principles of Software Validation (GPSV)

Guidance for the Content of Premarket Submissions for Software Contained in Medical Devices

Others

FDA Software Regulations

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 12

Regulators often not experienced with software

For software as a medical device, may bring bias of hardware-development experience, especially with assumptions of a linear lifecycle

For software tools, may bring bias of manufacturing systems

So you should be the software expert

Showing how your process satisfies regulations

FDA Software Regulations

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 13

Explain what you do

In Processes and Plans

Demonstrate that you do it

By producing adequate records

“Demonstrate” may seem like non-value-added burden

Especially to those doing the work

Necessary, so find ways to optimize the value/cost, to avoid the perception of “burden”

Be In Control,Show That You Are In Control

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 15

…Is ALWAYS a lousy reason

Too simple

Offloads responsibility for owning our process

Often a cover for another argument, usually one that is not well thought out and probably dysfunctional

We own our process (and the FDA does say that)

But regulators are stakeholders to be satisfied

Satisfy ourselves that your process is good, and the regulators will be satisfied

“Cuz the FDA Said So…”

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 16

Build a good product

Safe & Effective

Have a good process for building that product

Do good work

With evidence of that good work

Tell a good story that will convince anyone

Why you think your product is good

Why you think your process is good

That you know what you are doing

Keys To Success

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 17

Specifically created for medical device software

Though many elements are foundational to any robust software development process

IEC 62304

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 18

A framework – processes, activities and tasks

Identifies requirements for

What needs to be done

What needs to be documented

Software only

Assumes software is part of a broader system that defines higher-level activities for design inputs and design (product) validation

IEC 62304 – What it is

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 19

Does not prescribe how to meet the requirements

Not a “how to” with defined methods or practices

Does not require a specific software life cycle

Does not specify documents

Says what to document, not where it must go.

These decisions are left to you

IEC 62304 – What it isn’t

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 2020

IEC 62304 Medical Device Software –Software Life Cycle Processes

(c) Agile Quality Systems 2016

SYSTEM development ACTIVITIES (including RISK MANAGEMENT)

Customer needsCustomer needs

satisfied

7 Software RISK MANAGEMENT

8 Software configuration management

9 Software problem resolution

Activities outside the scope of this standard

5.2

Software

requirements

analysis

5.1

Software

development

planning

5.8

Software release

5.7

Software SYSTEM

testing

5.3

Software

ARCHITECTURAL

design

5.4

Software

detailed

design

5.6

Software integration

and integration

testing

5.5

Software UNIT

implementation

Parasoft Corporation © 2016 21

Mentioned briefly in FDA General Principles of Software Validation, 2002

In 2000’s, driven largely by concerns over the high failure rate in infusion pump systems & software, FDA recognizes value in using Static Analysis techniques to reduce software errors

Often an “expectation” in submissions and quality system inspections

Static Analysis

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 2222

Software Unit Implementation

(c) Agile Quality Systems 2016

SYSTEM development ACTIVITIES (including RISK MANAGEMENT)

Customer needsCustomer needs

satisfied

7 Software RISK MANAGEMENT

8 Software configuration management

9 Software problem resolution

Activities outside the scope of this standard

5.2

Software

requirements

analysis

5.1

Software

development

planning

5.8

Software release

5.7

Software SYSTEM

testing

5.3

Software

ARCHITECTURAL

design

5.4

Software

detailed

design

5.6

Software integration

and integration

testing

5.5

Software UNIT

implementation

Parasoft Corporation © 2016 23

Implement software units – write the code

Establish acceptance criteria for software units Coding Standards are a “should have” (defined in the Plan)

Establish strategies, methods and procedures for verifying each software unit Reviews

Static Analysis

Unit Tests

Address this in the Verification Strategy section of the Plan

Perform and document results of software unit verification According to the strategies and methods

Does not require all software units to be tested

Software Unit Implementation

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 2424

Software Integration and Integration Testing

(c) Agile Quality Systems 2016

SYSTEM development ACTIVITIES (including RISK MANAGEMENT)

Customer needsCustomer needs

satisfied

7 Software RISK MANAGEMENT

8 Software configuration management

9 Software problem resolution

Activities outside the scope of this standard

5.2

Software

requirements

analysis

5.1

Software

development

planning

5.8

Software release

5.7

Software SYSTEM

testing

5.3

Software

ARCHITECTURAL

design

5.4

Software

detailed

design

5.6

Software integration

and integration

testing

5.5

Software UNIT

implementation

Parasoft Corporation © 2016 25

Integrate the software units (build the software system)

Verify that software units have been integrated (build was successful) Review of build procedures, make-files, configurations, etc.

Compiler checks, static analysis, etc.

Test integrated software system performs as expected in accordance with plan Functionality, behavior, performance, etc

Regression tests

Document test results

Can be done as part of software system testing (see later slide)

Capture problems (software problem resolution process)

Software Integration and Integration Testing

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 26

Define in your Software Development Procedure/Processes:

Strategy for using Static Analysis as a part of your overall verification strategy

Requirements for how and when to use it

As part of code (unit-level) verification

As part of integration verification

Recommendation for use of Static Analysis

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 27

Kelly Weyrauch

[email protected]

763-688-0980

www.AgileQualitySystems.com

Connect with me on LinkedIn

Contact Information

(c) Agile Quality Systems 2016

Parasoft Corporation © 2016 2828

Recalls due to Software Failure

http://www.fda.gov/downloads/AboutFDA/CentersOffices/OfficeofMedical

ProductsandTobacco/CDRH/CDRHReports/UCM308208.pdf

Parasoft Corporation © 2016 2929

FDA on Static Analysis

3.1.2 “Software testing is one of many verification activities intended to confirm that software development output meets its input requirements. Other verification activities include various static and dynamic analyses, code and document inspections, walkthroughs, and other techniques.”

5.2.4 “Source code should be evaluated to verify its compliance with specified coding guidelines.”

General Principles of Software Validation; Final Guidance for Industry and FDA Staff

Parasoft Corporation © 2016 3030

What Choice

Prevent Defect InsertionQuality System

Design Control

Risk Management

Remove Defects by DetectionCode Review

Design Review

Testing: unit, integration, system, alpha, beta

Customer Dissatisfaction

Recall

Roll the dice

John Murray, US FDA, March 2008

Parasoft Corporation © 2016 3131

Fix or Prevent

Parasoft Corporation © 2016 3232

Static analysis is more than detection

Relationship of automated analysis Preventative static analysis

Flow analysis

Runtime error detection

Uninitialized memory example Runtime will find it IF the test suite is thorough

Flow analysis may find it depending on complexity

Pattern to prevent: Initialize variables upon declaration

Many standards like MISRA are focused on prevention rather than detection

Parasoft Corporation © 2016 3333

Static analysis – what it can do

Identify defective code - runtime bugs

Flag defect-prone code (possible bugs and “gotchas”)

Suggest defensive programming practices

Monitor application-specific guidelines (e.g. portability)

Enable policy enforcement (security)

Flag unmaintainable / poorly readable / “dialect” code

Parasoft Corporation © 2016 3434

Sample Static Analysis Policy

Which rules run on all code

Which rules run on certain conditions

International, performance, etc

What level of compliance is required

When are suppressions acceptable

Where does SA fit the process

Parasoft Corporation © 2016 3535

Static Analysis Feedback Loop

Identify Error

Isolate Root Cause

FixNew Rule to Prevent

Monitor

Code review

Regression

QA

Field bugs

Parasoft Corporation © 2016 3636

How to choose rules

Based on why you’re using static analysis

Study expected issues

Analyze bug-tracking system

Don’t just turn on rules because it’s a good idea

Pick few enough to use sustainably

Parasoft Corporation © 2016 3737

Why MISRA for Medical?

Coding Standards

Well-defined

Updated

Flexible

Deviation Strategy

Auditable

What else would you start with?

Parasoft Corporation © 2016 3838

FDA/MISRA Alignment

FDA Guideline MISRA Capability

“Least burdensome approach” Lightweight and flexible

Company defines standards Proven standards pre-packaged

Work must be traceable Provides traceability methodology

Process must be auditable Defines auditable reports

Parasoft Corporation © 2016 3939

Sample Rules for FDA Static Analysis

Avoid accessing arrays out of bounds

Avoid use before initialization

Avoid null pointer dereferencing

Avoid overflows due to [various causes]

Avoid division by zero

Ensure deallocation functions guarantee resource freeing

Do not use resources that have been freed

Do not free resources using invalid pointers

Do not abandon unreleased locks

Do not use blocking functions while holding a lock

Ensure resources are freed

Do not abandon unreleased locks

Properly terminate character strings

Never return a reference to a local object

Parasoft Corporation © 2016 4040

Dashboards Vs Process Intelligence

1970s Electrocardiogram

• Isolated data points

• No priority

• No warnings – just data

• No analysis

21st Century Monitor

• Multi-variate analysis

• Customizable

• Critical alerts

• Valuable data

Parasoft Corporation © 2016 4141

Harnessing “Big” Data

Aggregate data

Correlate data

Mine data

Create

Reports

Dashboards

Tasks

Alerts

Continuous testing/delivery/release

Parasoft Corporation © 2016 4242

Execution / CI Build

Parasoft DTP

Raw

Ob

servation

s

Parasoft Development Testing Platform

Static Analysis Engine

Testing and Coverage

PHPMD

AP

I

FindBugs

AP

I

CheckStyle

AP

I

Other 3rd

Party …

AP

I

Desktop IDE

Web UI

External SystemRequirements and Defects

Source Control

Workflow(Task)

Intelligence(Dashboards/

Reports)

Practice/Domain Data

(REST API)

Prioritized Findings

Web UI

Process Intelligence

Engine

Policy Management

Parasoft Corporation © 2016 4343

Parasoft Development Testing Platform

Optimal Routes

Historic

Data

Road

Construction

Traffic Conditions

Map/Road Data

Speed Limits

Parasoft Corporation © 2016 4444

Parasoft DTP

ProcessIntelligence

Engine

PIE – Derivative (Predictive) Analysis

External Systems

Application Hotspots

Prioritized Actionable

Information

ExternalProcesses

3rd Party System

CI/CD/CR Infrastru

cture

System Monitoring

Product FeedbackCustomer

Support

Code Review

Metrics

People

Code

Defect

Static Analysis

Tests

User Stories Coverage

Parasoft DTP

Parasoft Corporation © 2016 4545

What can PIE do?

What do I test first? Where is the

business logic and how testable is it?

Test Stability Index; Look at your

unstable tests. Identify valuable

Tests

Find Application Hotspots: Technical

Risk vs Business Risk, Technical Debt,

Density KPIs, Clusters

I made changes, which tests need to

be re-run?

What is the risk of new code? Did I test

the new code changes?

Don’t make the problem worse &

review existing issues when your

working withcode

Parasoft Corporation © 2016 46

2016-09-26

Real world examples

Parasoft Corporation © 2016 4747

Customer Challenge: Reducing the Burden of Compliance

In order to develop solutions for the pharmaceutical market, a company must not only follow very strict requirements, but also prove that they actually satisfied these rigorous expectations. To achieve this, they must provide evidence that the system is designed, constructed, and tested according to best practices implemented throughout the various phases of the lifecycle.

Parasoft Corporation © 2016 4848

The Benefit:Faster, Easier, Better Documented Compliance

Time saved doing tedious tasks

Better consistency

Easy traceability and auditability

Precisely fit to their needs

”With Parasoft’s solution, previously arduous, boring and difficult-to-document tasks were transformed into tasks that we

could perform systematically—in an automated and rapid manner.“

Parasoft Corporation © 2016 4949

Customer Challenge: Streamline Certification for Medical Device Software under IEC 62304

“Our products are used intraoperative. If any failure occurs during an operation, the operation

might have to be aborted. Moreover, since we monitor nerves and their signals, incorrect interpretations and decisions made by our

software could lead to wrong decisions by the user...and could cause injuries for the patient.”

The US FDA accepts IEC 62304 compliance as evidence that medical device software has been

designed to an acceptable standard.

Parasoft Corporation © 2016 5050

The Solution: Automating Risk Management Processes with Parasoft

Multiple languages: C, C++, .NET

Integration with existing systems: IDE, bug-tracking, source control

Parasoft Corporation © 2016 5151

The Benefit: Increased Efficiency through Automation

“The current level of verification for each requirement task (including task pass/fail

status and coverage) is bi-directionally traceable to all associated tests. Full

traceability is crucial for IEC compliance.

Using the Parasoft solution significantly increases our efficiency because many

manual steps could be automated.“

Parasoft Corporation © 2016 5252

Parasoft Support for FDA

Static analysis

Policy definition management

Requirement definition and tracking

Unit test

Peer review

Runtime error detection

Coverage

Parasoft Corporation © 2016 5353

Summary

Financial and health risks are increasing

FDA requires a rigorous mature process

Static analysis both provides tight controls and prevents real problems from occuring

Proper configuration and deployment reduce common static analysis problems

Parasoft Corporation © 2016 5454

FDA Resources

FDA - “General Principles of Software Validation”http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/GuidanceDocuments/ucm085281.htm…guidance outlines general validation principles that the Food and Drug Administration (FDA) considers to be applicable to the validation of medical device software…

FDA – 21 CFR 820

http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=820&showFR=1

…Quality System Regulations

ANSI/AAMI 62304“Medical device software-Software life cycle processes”http://webstore.ansi.org/…A recommended practice provides guidelines for the use, care, and/or processing of a medical device or system.

Parasoft Corporation © 2016 5555

Blog: http://alm.parasoft.com

Web: http://www.parasoft.com/jsp/resources

Facebook: https://www.facebook.com/parasoftcorporation

Twitter: @Parasoft @CodeCurmudgeon

LinkedIn: http://www.linkedin.com/company/parasoft

Google+ Community: Static Analysis for Fun and Profit

IoT API's session - API World - San Jose, CA Sep 13th

Managing Auto Supply Chain Risk – Automotive Software Kongress - Germany Sep 21-22

StarWest Conference - Anaheim CA - Oct 5-6