Arguably, the most critical part of IEC 62304 compliance is the Risk Management Process. Indeed, safety of the software is the point of the standard. The good engineering practices defined in the Development and Maintenance Processes of the standard are widely accepted as how quality software should be made. But the IEC 62304 Risk Management Process defines a new way of looking at the hazards that software can cause.
To do the Software Hazard Analysis, one must assume that bad things will happen in the software. For example, a very inopportune software hang, memory corruption, or unexpected use could occur. Then if that happens, what hazard can that create? Like an FMEA, you have to go through all the decomposed parts of the software (software items), and ask that question. But before we go there, let’s get a couple of concepts under our belt.
The crux of the risk management process is to provide traceability from your hazardous situations to a risk control measure, when the cause is software. Looking at the system hazard analysis, hazardous situations have been identified. Now we have to document the potential software causes and risk control.
Below are simple example table entries providing the traceability.
Note there is no requirement to quantify the severity of the hazardous situation here, as that is presumed done in the system ISO 14971 documentation. That severity should drive to which class the item belongs.
I list the new requirement as the verification to avoid duplication. Clause 5.1.1 requires traceability between all requirements and their test case, so by listing the requirement, and having your requirements trace matrix, you have the verification needed.