Markdown Editor

Medical Device Software Lifecycle Template (IEC 62304)

IEC 62304 software file: safety class, development plan, requirements, architecture, SOUP list, testing, release, maintenance, problem resolution

ISO & ConformitéCompletIEC 62304:2006+A1:2015medicaldevicesoftwarelifecycle

Mode d'emploi: Use it when you develop or maintain software in or as a medical device and need the plan and lifecycle records. Fill the safety classification (section 2) and the SOUP list first, as they set how much of the process applies. The main pitfall is claiming a lower class for an item without an architecture that really segregates it.

Aperçu

Software Development Plan and Lifecycle File: [Software system name]

The software development plan and lifecycle records for medical device software, structured on IEC 62304:2006 with Amendment 1:2015 (Medical device software, Software life cycle processes, consolidated edition 1.1, June 2015). It covers the plan, software safety classification, requirements, architecture and segregation, the SOUP list, unit, integration and system verification, release, maintenance, software risk management, configuration management and problem resolution. A second edition of IEC 62304 is in development; as checked in October 2026 it was not yet published, and drafts propose changing the safety classes. Replace every [bracketed] value and every row marked Example. This is a documentation format, not regulatory or legal advice: check the current official texts, the rules of your target markets and a qualified regulatory professional.

Document control

FieldValue
Document ID[SDP-NNN]
Software system[Name, version]
Device[Device name and model]
Software safety class[A / B / C, see section 2]
Linked records[Risk management file ID, design and development file ID, usability engineering file ID]
Version[0.1]
Status[Draft / In review / Approved]
Owner[@software-lead]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential]

Approvals

RoleNameDecisionDate
Software lead[@name][Approved]YYYY-MM-DD
Risk management lead[@name][Approved]YYYY-MM-DD
Quality assurance[@name][Approved]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Plan and initial classification
0.4YYYY-MM-DD[@name]Example: Architecture, segregation argument and SOUP list added
1.0YYYY-MM-DD[@name]Example: Released with software version 1.0.0

Contents

  1. General requirements and context (cl. 4)
  2. Software safety classification (cl. 4.3)
  3. Software development plan (cl. 5.1)
  4. Software requirements (cl. 5.2)
  5. Architecture, segregation and SOUP (cl. 5.3)
  6. Detailed design, units and verification (cl. 5.4 to 5.6)
  7. Software system testing (cl. 5.7)
  8. Software release (cl. 5.8)
  9. Software maintenance (cl. 6)
  10. Software risk management (cl. 7)
  11. Configuration management (cl. 8)
  12. Problem resolution (cl. 9)
  13. Traceability matrix
  14. Glossary and references

1. General requirements and context (cl. 4)

ItemValue
Quality management systemExample: Corvane QMS certified to ISO 13485:2016, certificate [ID]
Risk management processExample: ISO 14971:2019, risk management file RMF-012
Intended use of the device[One line, from the risk management file]
Role of software in the deviceExample: Controls the pumping mechanism, alarms, drug library limits and the user interface
Legacy software (cl. 4.4)[None / name and justification route]
Cybersecurity process[For example IEC 81001-5-1:2021, plan ID]

2. Software safety classification (cl. 4.3)

ClassWorking meaning
ANo injury or damage to health is possible
BInjury is possible but not serious
CDeath or serious injury is possible
Software system or itemHazardous situations it can contribute toExternal risk control consideredClassRationale
Pump control software (PCS) (Example)Over-dose or under-dose (HZ-02)Hardware dose monitor stops the motor, but a wrong programmed rate within limits is still deliveredCRemaining harm after external control can still be serious
Safety monitor firmware (SMF) (Example)Failure to stop an over-delivery (HZ-02)None beyond the monitor itselfCIt is the risk control for a serious harm
User interface item (UI) (Example)Wrong value displayed or entered (HZ-04)Confirmation screen, drug library hard limits in PCSCShares the processor with PCS, segregation not argued
Event log export item (LOG) (Example)None identifiedNot applicableASegregated in a separate memory partition with no write access to dose data (section 5.3)

Classification reviewed by: [@name], YYYY-MM-DD. Re-classify when the risk management file changes the hazards in the table above.

3. Software development plan (cl. 5.1)

3.1 Lifecycle model and deliverables

ItemValue
Lifecycle modelExample: Iterative, two-week increments, with formal design reviews at architecture freeze and release candidate
DeliverablesRequirements specification (SRS), architecture document (SAD), detailed design (class C units), unit and integration test records, system test report, release notes, SOUP list
Link to system designEach SRS item traces to a design input in the design and development file
Integration planExample: Daily continuous integration build, hardware-in-the-loop integration test nightly

3.2 Standards, methods and tools

CategoryChoiceVersionTool qualification or validation
Programming language and coding standardExample: C with an internal coding standard derived from a published safety subset[Version]Static analysis rule set reviewed
CompilerExample: Certified C compiler for the target MCU[Version]Supplier qualification kit, record [TQ-01]
Static analysisExample: Commercial analyser[Version]Validated for intended use, record [TQ-02]
Requirements and test managementExample: Application lifecycle management tool[Version]Computer software validation per QMS

3.3 Activities by class

The table summarises which activities this plan applies to each class. Check the standard's own requirements tables for the authoritative mapping; this summary is a working aid only.

ActivityClass AClass BClass C
Development plan and requirementsYesYesYes
Architecture documentNot required by the standardYesYes
Detailed design of each unitNot required by the standardNot required by the standardYes
Unit verificationNot required by the standardYesYes, with additional acceptance criteria
Integration testingNot required by the standardYesYes
System testingYesYesYes

4. Software requirements (cl. 5.2)

IDRequirementTypeSourceRisk control?Verification
SRS-045 (Example)The safety monitor shall stop the motor within 2 s when delivered volume exceeds the programmed volume by more than 5%Risk controlRMF HZ-02YesST-210
SRS-052 (Example)The software shall reject a rate above the drug library hard limit for the selected drugRisk controlRMF HZ-04, usability fileYesST-230
SRS-060 (Example)The software shall raise a high-priority occlusion alarm within the time stated in the alarm specificationFunctional, alarmSystem requirement SYS-120YesST-240
SRS-075 (Example)The software shall accept only signed drug library filesSecurityThreat model [TM-NNN]YesST-260
SRS-090 (Example)The event log shall record every alarm with time stamp and codeFunctionalPost-market needsNoST-280

5. Architecture, segregation and SOUP (cl. 5.3)

5.1 Software items

ItemPurposeRuns onClassInterfaces
UI (Example)Programming screens, alarms displayMain MCUCPCS via message queue
PCS (Example)Rate control, drug library checks, alarm logicMain MCUCUI, motor driver, LOG
SMF (Example)Independent volume check and motor stopSeparate safety MCUCVolume sensor, motor stop line
LOG (Example)Stores and exports event recordsMain MCU, separate memory partitionARead-only interface from PCS

5.2 Segregation argument

[State how items of different classes are kept apart and how that is verified.] Example: LOG runs in a memory-protected partition enforced by the MCU memory protection unit; it has no write path to PCS data and its failure cannot stop or change delivery. The separation is verified by fault injection test IT-140 and the memory map review DR-07.

5.3 SOUP list

IDSOUP itemVersionUsed byFunctional and performance requirementsRequired hardware and softwareKnown anomalies reviewed
SOUP-01 (Example)Real-time kernel (commercial, vendor A)[x.y.z]PCS, UIPre-emptive scheduling, task switch below 10 microsecondsMain MCU, 64 kB RAMVendor anomaly list reviewed YYYY-MM-DD, 2 items not applicable
SOUP-02 (Example)Cryptographic library (open source)[x.y.z]PCSSignature verification of drug library filesMain MCUPublic vulnerability database checked YYYY-MM-DD
SOUP-03 (Example)Display graphics library (commercial, vendor B)[x.y.z]UIRenders all screens within 100 msMain MCU, display controllerVendor release notes reviewed

6. Detailed design, units and verification (cl. 5.4 to 5.6)

UnitItemDetailed design refAcceptance criteriaVerification methodRecord
RateCalc (Example)PCSSDD-PCS-03Correct rate for every unit conversion, boundary values, overflow handlingUnit test, code review, static analysisUT-031, CR-031
LimitCheck (Example)PCSSDD-PCS-05Hard and soft limits enforced for every drug entryUnit test with library fixturesUT-052
VolumeCompare (Example)SMFSDD-SMF-01Stop triggered above 5% over programmed volume (tested at 5.1%), no stop at 4.9% or at exactly 5%Unit test, timing analysisUT-101
Integration stepItemsTestResult
IT-100 (Example)PCS with SOUP-01Task timing under maximum load[Pass / Fail]
IT-120 (Example)PCS with UIProgramming flows end to end[Pass / Fail]
IT-140 (Example)LOG partitionFault injection, LOG crash has no effect on delivery[Pass / Fail]

7. Software system testing (cl. 5.7)

TestRequirementConfigurationExpected resultResultAnomaly
ST-210 (Example)SRS-045Build [tag] on production-equivalent hardwareMotor stops within 2 s at 5.1% over-deliveryPass, worst case 1.4 sNone
ST-230 (Example)SRS-052Build [tag], drug library [version]Entry rejected above hard limit for every drugPassNone
ST-260 (Example)SRS-075Build [tag]Unsigned library refused with messageFail on first run, pass after fixPR-0147

8. Software release (cl. 5.8)

CheckResultEvidence
All planned verification complete[Yes / No]Sections 6 and 7
Known residual anomalies listed and evaluated as not contributing to unacceptable risk[Yes / No]Anomaly list [REL-ANOM-NNN]
Released version identified[Version, commit, build ID]Release notes
Build procedure documented and repeatable[Yes / No]Build record [BLD-NNN]
Software and documentation archived[Yes / No]Archive location and retention period

9. Software maintenance (cl. 6)

ItemValue
Feedback sourcesComplaints, service reports, vigilance, SOUP vendor notices, vulnerability feeds
EvaluationEach report becomes a problem report in section 12 and is assessed for safety impact
Change approvalChange control board, decision recorded in [CCR-NNN]
Re-releaseThrough section 8, with regression testing justified
Regulatory assessment of changes[Procedure that decides whether a change needs notified body or regulator notification]

10. Software risk management (cl. 7)

Hazard (RMF)Software itemPotential causeRisk control measureRequirementVerification
HZ-02 (Example)PCS RateCalcArithmetic overflow in unit conversionIndependent safety monitor, range checksSRS-045ST-210, UT-031
HZ-02 (Example)SOUP-01Task starvation delays motor controlWatchdog on SMF, timing testsSRS-045IT-100, ST-210
HZ-04 (Example)UIDecimal point entry misreadDrug library hard limits, confirmation screenSRS-052ST-230, usability file USAB-07

Software changes: before each change, record whether it introduces a new cause, affects an existing risk control, or changes the classification.

11. Configuration management (cl. 8)

Configuration item typeIdentificationStorageChange control
Source codeRepository path and commitVersion control systemPull request with review
SOUPID, version, checksumArtefact repositoryChange request and re-evaluation
ToolsName and versionTool registerChange request, re-validation
DocumentsDocument ID and versionDocument control systemQMS document control

12. Problem resolution (cl. 9)

IDDateDescriptionSafety relevanceDecisionVerificationStatus
PR-0147 (Example)YYYY-MM-DDUnsigned drug library accepted when file header truncatedCould load limits not approved by pharmacy (HZ-04)Fix in 0.9.3ST-260 re-runClosed
PR-0152 (Example)YYYY-MM-DDScreen flicker on alarm silenceNone identifiedFix in next releasePlanned ST-270Open

13. Traceability matrix

HazardRequirementItemUnitsIntegrationSystem testResult
HZ-02 (Example)SRS-045SMF, PCSVolumeCompare, RateCalcIT-100ST-210Pass
HZ-04 (Example)SRS-052PCS, UILimitCheckIT-120ST-230Pass
HZ-04 (Example)SRS-075PCSSignature checkIT-120ST-260Pass after PR-0147

14. Glossary and references

TermWorking meaning in this file
Software systemThe integrated software of one device or component, made of software items
Software item and unitA part of the software; a unit is the smallest part not further divided for testing
SOUPSoftware already developed and generally available that was not developed for incorporation into this device, or earlier software without adequate records of its development process
SegregationSeparation that prevents one item from affecting another, used to justify different classes
AnomalyAny behaviour that deviates from requirements or expectations
ReferenceEdition or dateUse
IEC 62304, Medical device software, Software life cycle processes2006 + A1:2015 (consolidated edition 1.1, 2015-06-26)Process structure and clause numbers
ISO 149712019Risk management process
ISO 134852016Quality management system
IEC 81001-5-12021Security activities in the product lifecycle
IEC 82304-12016Health software products outside a physical device
EU example: Regulation (EU) 2017/745, Annex I section 17Check the consolidated textSoftware requirements in the general safety and performance requirements
US example: FDA guidance Content of Premarket Submissions for Device Software FunctionsFinal, June 2023Documentation levels (Basic, Enhanced) for submissions: https://www.fda.gov/regulatory-information/search-fda-guidance-documents/content-premarket-submissions-device-software-functions
UK example: Medical Devices Regulations 2002 (as amended) and MHRA guidanceCheck current MHRA pagesGreat Britain market requirements

Standard and licence note

Structure aligned with IEC 62304:2006+AMD1:2015 (consolidated edition 1.1, published 2015-06-26; stability date 2028 on the IEC webstore, checked October 2026). A second edition is under development; drafts discussed in 2026 propose a wider health software scope and replacing the A, B and C classes, so check the IEC webstore for the current edition before use. Clause numbers are given for orientation only. All wording, tables, IDs and examples are original; no text, table or definition is reproduced from the standard. The device, software items, SOUP and results are fictional examples. This template is not regulatory or legal advice: check the current official texts, the rules of your target markets and a qualified regulatory professional.

Official text: IEC, purchase or licensed access: https://webstore.iec.ch/en/publication/22794 (also available from national standards bodies).

Template licence: MIT.

Modèles associés