Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 62304, first published in 2006 and amended in 2015, is the internationally recognized standard governing the software life cycle processes for medical devices. It establishes a framework of activities and tasks necessary for the safe design, development, and maintenance of medical device software — whether the software is embedded within a hardware device or stands alone as Software as a Medical Device (SaMD). For engineers entering the medical technology field, understanding IEC 62304 is not optional; it is a regulatory prerequisite for market access in virtually every jurisdiction, including the European Union (MDR), the United States (FDA 510(k) and PMA), Canada, Japan, and Australia.
The standard introduces a three-tier software safety classification system that determines the rigor of development processes required. Class A — No injury or damage to health possible (e.g., patient appointment scheduling software). Class B — Non-serious injury possible (e.g., a drug dosage calculator with manual override that cannot exceed hard-coded limits). Class C — Death or serious injury possible (e.g., ventilator control software, infusion pump algorithms, radiation therapy planning systems).
The critical engineering insight is that the safety class cascades down from the overall device risk. For example, a software component that reads a sensor in a ventilator is Class C by virtue of its context, even though reading a sensor in isolation is a benign activity. The standard states that if any function in the software system is Class C, then the entire software system must be developed to Class C rigor — with one important exception: software items that cannot contribute to a hazardous situation may remain at a lower class if clearly justified and documented in the software safety plan. This “declassification” requires robust evidence that the software item is truly incapable of causing harm, including traceability to the system-level risk analysis.
| Class | Severity of Injury | Required Development Activities | Example Devices |
|---|---|---|---|
| A | No injury or damage to health | Documented software maintenance process only | Patient scheduling, billing software |
| B | Non-serious injury possible | All Class A + requirements analysis, architecture, unit verification, integration testing, problem resolution | Blood pressure monitor (non-invasive), pill dispenser with alerts |
| C | Death or serious injury possible | All Class B + detailed design documentation, unit testing with coverage analysis, software change impact analysis, rigorous traceability | Ventilators, infusion pumps, defibrillators, radiation therapy software |
IEC 62304 mandates a defined software development process derived from ISO/IEC 12207 (software life cycle processes) but adapted specifically for medical device safety. The core processes are: software development planning, software requirements analysis, software architectural design, software detailed design (Class C only), software unit implementation and verification, software integration and integration testing, and software system testing. Each process phase requires specific output documents, and the standard is explicit about which outputs are required for each safety class.
A key engineering challenge is the requirement for SOUP (Software Of Unknown Provenance) management. SOUP refers to third-party software components — operating systems, libraries, communication stacks — that were not developed under a controlled medical device software process. Rather than requiring full re-verification of SOUP (which is often impractical), IEC 62304 requires the manufacturer to identify the SOUP, determine its anomaly risk level, and apply appropriate risk mitigation. For example, a real-time operating system in an infusion pump must be assessed for known anomalies, and the pump software must demonstrate that no SOUP anomaly can lead to an unacceptable hazardous situation. This SOUP management process is frequently cited as one of the most challenging aspects of IEC 62304 compliance, particularly when open-source libraries are involved.
The software maintenance process is equally important. After initial market release, IEC 62304 requires a post-market surveillance system that feeds anomaly reports back into the development process. Each anomaly must be assessed for its safety impact, and if a change to the software is required, the change must follow a defined change control process that includes impact analysis, re-verification, and regression testing. The standard specifies that changes to Class C software must undergo the same level of scrutiny as the original development, including re-execution of all affected unit tests, integration tests, and system-level verification activities. The 2015 amendment clarified that fielded software updates (including security patches) are subject to these same processes, closing a loophole that previously allowed post-market changes to bypass formal validation.
| Document / Activity | Class A | Class B | Class C |
|---|---|---|---|
| Software development plan | Recommended | Required | Required |
| Software requirements specification | — | Required | Required |
| Software architecture document | — | Required | Required |
| Software detailed design | — | — | Required |
| Unit verification results | — | Required | Required (with coverage) |
| Integration test plan and results | — | Required | Required |
| Software system test plan and results | — | Required | Required |
| Problem resolution reports | Required | Required | Required |
| Software change impact analysis | — | Required | Required |
| Risk management file (per ISO 14971) | — | Required | Required |