Independent learning for medical-device professionals
CommentaryConsulting
LearningMTL-107 · CORE MEDICAL DEVICE TOPIC

Software Lifecycle

How to organise medical-device software as a controlled, risk-informed stream of work from product definition to retirement—not simply as a coding phase.

What you will learn

By the end of this topic, you should be able to place software within the complete medical-device lifecycle, define the essential plans and evidence, connect software requirements to product needs and risk controls, manage architecture and third-party components, control releases and changes, and recognise where software lifecycle work interfaces with cybersecurity.

01

Software lifecycle means more than software development

A software lifecycle is the connected set of activities used to define, create, verify, release, maintain and retire software. It includes planning, risk management, configuration control, problem resolution and objective evidence as well as design and coding.

For a medical device, software does not succeed merely because it builds or passes unit tests. It must contribute safely and reliably to the intended medical purpose, operate correctly within the complete system, remain controlled after release and support conclusions that reviewers can trace.

The central principle

Every released software behaviour should have a known purpose, an identified source, a controlled implementation and sufficient evidence for the product decision it supports.

MTL-303 — IEC 62304 Software Lifecycle explains the detailed process framework of the standard. This core topic concentrates on how those software activities fit into practical medical-device development.

02

Start with the medical-device context

Software planning begins before a software requirement is written. The team first needs a stable understanding of the intended purpose, users, patients, use environments, claims, regulatory route and the role software plays in achieving the medical outcome.

  • What device function or clinical workflow does the software support?
  • Which users interact with it, and what knowledge or training can be assumed?
  • Where will it operate: hospital, home, laboratory, mobile platform, cloud environment or a combination?
  • What happens if the software is unavailable, delayed, incorrect or misunderstood?
  • Which external systems, accessories, networks and data sources are required?
  • Which behaviours are safety related, security related or necessary for essential performance?
  • Which product claims depend on software-generated data or decisions?

MTL-102 — Intended Purpose, Users and Use Environments establishes these boundary conditions. Software scope that is defined without them tends to grow informally and leaves critical assumptions undocumented.

03

Define the software system and its boundaries

A connected medical device may contain several different software elements. The organisation should identify what it develops, what it configures, what it acquires and what remains outside its direct control.

Embedded software

Firmware, drivers, real-time control, sensing, actuator control and low-level communications within the device.

Application software

User interfaces, workflow logic, data presentation and applications running on computers or mobile platforms.

Cloud services

Remote processing, storage, device management, portals, analytics and interfaces to other systems.

Supporting software

Installers, service utilities, manufacturing tools, configuration applications and data-conversion software.

Draw the boundary explicitly. Identify interfaces, data ownership, timing assumptions, failure responses, update paths and responsibility for each element. A label such as “the app” is rarely precise enough for requirements, risk analysis or release control.

04

Plan a proportionate and reviewable lifecycle

The lifecycle plan explains how software will be developed and controlled. It should be proportionate to the device, software safety significance, complexity, novelty, organisation and selected development model.

ScopeSoftware systems, items, versions, interfaces and delivered configurations
ActivitiesRequirements, architecture, implementation, integration, verification, release and maintenance
ResponsibilitiesOwnership, competence, reviews, approvals, independence and supplier interfaces
MethodsLifecycle model, coding practices, reviews, analyses, tests and acceptance criteria
ControlsConfiguration, change, problem resolution, anomalies, tools and records
EvidenceRequired outputs, traceability, reports, release records and completion criteria

Agile, iterative and incremental methods can be used. The important point is that increments remain controlled: approved inputs are available at the right time, risks and interfaces are considered, evidence is preserved and the released baseline is known.

05

Connect software decisions to product risk

Software can initiate a hazardous situation, fail to perform a risk control, present misleading information or prevent another control from operating. These contributions must be analysed as part of the device risk-management process.

MTL-105 — Medical-device Risk Management explains the complete risk process. For software, risk analysis should influence requirements, architecture, segregation, defensive behaviour, verification depth and the handling of unresolved anomalies.

Software safety classification under IEC 62304 is not the same as overall device classification or a simple project risk score. The rationale considers the possible contribution of software failure to hazardous situations and the effect of external risk controls. Record the assumptions and revisit them when the architecture or controls change.

06

Build a connected requirements hierarchy

Software requirements translate system responsibilities into implementable and verifiable behaviour. They should cover normal operation, boundaries, timing, data, interfaces, faults, recovery, installation, maintenance and relevant risk controls.

1

User and product needs

Define the outcome, workflow and intended-use expectation.

2

System requirements

Allocate complete-device behaviour across hardware, software, users and external systems.

3

Software requirements

Define observable software behaviour, interfaces, data and acceptance conditions.

4

Implementation and evidence

Link design and code to reviews, analyses, tests, anomalies and release decisions.

MTL-103 — User Needs and Design Inputs explains how needs become controlled inputs. Bidirectional traceability should allow the team to find the implementation and evidence for every software requirement—and explain the source of every implemented requirement.

07

Use architecture to manage complexity and risk

Architecture describes the major software items, their responsibilities and their interfaces. It should make important design decisions visible before those decisions become distributed across source code.

  • Allocate safety-related and risk-control functions deliberately.
  • Define data flows, state transitions, timing and resource assumptions.
  • Identify external interfaces, protocols and failure behaviour.
  • Separate or segregate functions where independence is relied upon.
  • Show how the design detects, contains and recovers from faults.
  • Identify third-party components and platform dependencies.
  • Keep architecture consistent with the implemented and released configuration.

Architecture is not a single diagram prepared for an audit. It is a maintained explanation of how the software fulfils its allocated responsibilities and how critical interactions are controlled.

08

Make implementation disciplined and reviewable

Implementation practices should reduce defect introduction and make important behaviour understandable. The appropriate rigour depends on safety significance, complexity, technology, team capability and the effectiveness of later detection.

Design detail

Describe algorithms, states, data structures, interfaces and error handling at the level needed for reliable implementation and review.

Coding practice

Apply defined language rules, defensive techniques, static analysis and justified treatment of warnings.

Review

Examine critical logic, interfaces, concurrency, numerical behaviour, fault handling and security-sensitive code with suitable competence.

Unit evidence

Confirm detailed behaviour, boundaries and error conditions using controlled tests, analysis or other suitable methods.

Generated code, low-code platforms and reusable internal libraries do not remove lifecycle responsibility. The team still needs to understand the source, configuration, limitations and evidence appropriate to their contribution.

09

Verify from units to the complete device

Software verification builds evidence at several levels. Unit evidence finds local defects; integration evidence examines interactions; software-system evidence confirms the assembled software; device-system evidence confirms behaviour with representative hardware, users, data and external systems.

UnitDetailed logic, calculations, boundaries and local fault handling
IntegrationInterfaces, sequencing, timing, shared resources and data exchange
Software systemEnd-to-end software requirements and complete software behaviour
Device systemSoftware operating with hardware, users, accessories and external systems
Risk controlsImplementation and effectiveness in relevant hazardous sequences
RegressionEvidence that changes have not damaged affected or dependent behaviour

MTL-106 — Verification and Validation explains evidence strategy, configuration, protocols, anomalies and representative validation across the complete device.

10

Control third-party and previously developed software

Operating systems, libraries, drivers, databases, cloud services and open-source components can shorten development, but they introduce dependencies the manufacturer did not fully design or verify.

  • Identify each component, supplier, version, licence and intended role.
  • Evaluate suitability, known limitations and available evidence.
  • Analyse how failure could contribute to hazardous situations.
  • Define compensating controls when component evidence is limited.
  • Record known anomalies and assess their relevance to the device.
  • Control upgrades, patches, build dependencies and configuration.
  • Monitor information that may change the component’s acceptability after release.

A component inventory is useful only when it remains connected to architecture, risk, configuration and maintenance decisions.

11

Release a known and reproducible configuration

Software release is a controlled decision that the specified version has met its completion criteria and is suitable for its intended next use. The record should identify exactly what was released and the evidence supporting that decision.

  • Unique software and build identifiers.
  • Controlled source, dependencies, compiler, build scripts and configuration.
  • Completed planned verification and justified residual anomalies.
  • Updated risk, traceability and change records.
  • Installation, upgrade, rollback and compatibility information.
  • Release notes and known limitations appropriate to recipients.
  • Approval and secure retention of the released baseline.

A build stored on a developer’s computer is not a controlled release. The organisation should be able to reproduce or otherwise authenticate the delivered configuration and relate field reports to the exact version in use.

12

Maintenance is development with additional responsibilities

After release, software problems, support requests, platform changes, vulnerabilities, supplier updates and product improvements enter a controlled maintenance process. Each proposed change needs impact analysis before implementation.

1

Receive and classify

Record feedback, complaints, anomalies, vulnerabilities and requested changes.

2

Assess impact

Consider intended use, safety, security, interfaces, regulatory status, installed versions and existing evidence.

3

Change under control

Update requirements, architecture, risk and verification in proportion to the effect.

4

Release and monitor

Control deployment, communication, field action, support and confirmation of effectiveness.

Problem resolution records should preserve the original observation, investigation, cause, decision, correction and verification. Closing a ticket is not the same as demonstrating that the product issue is resolved.

13

Cybersecurity is connected—but deserves its own lifecycle

Software lifecycle controls provide foundations for cybersecurity: known assets, controlled requirements, architecture, component management, verification, configuration and maintenance. Cybersecurity adds threat modelling, security risk, secure design, vulnerability testing, coordinated disclosure, security updates and monitoring of a changing threat environment.

These activities should share interfaces and evidence, but safety risk and security risk should not be treated as interchangeable. MTL-108 — Medical-device Cybersecurity addresses the security lifecycle in detail, including its relationship with safety, privacy and post-market vulnerability management.

14

Retain control when work, tools or platforms are external

Outsourcing development does not outsource manufacturer accountability. Define deliverables, lifecycle responsibilities, review rights, configuration access, anomaly reporting, maintenance support and evidence expectations before work begins.

Development and test tools also need proportionate assurance. Consider what the tool does, how an error could affect the product or evidence, whether the error would be detected and what controls are already present. The response may range from basic configuration control to formal tool validation.

Contracts matter, but technical oversight matters more. The manufacturer needs sufficient internal competence to understand decisions, challenge evidence and support the software throughout the device lifetime.

15

Worked example: a connected injection device

A connected injection device contains embedded control software, a patient mobile application and a cloud service used by clinicians. The system team allocates dose delivery, feedback, records and connectivity responsibilities before the software teams define their detailed requirements.

Embedded control

Controls sensing, motor operation, dose-state logic, local feedback and safe responses when communication is unavailable.

Mobile application

Guides the patient, displays device status, transfers records and handles interrupted or incompatible connections.

Cloud service

Stores authorised records, presents clinician information and manages interfaces without becoming necessary for safe completion of an injection.

Lifecycle evidence

Traceability connects user needs and risk controls to each subsystem, interface tests, complete-device validation and the released version set.

A late change to the communication protocol affects more than code. The impact analysis considers requirements, architecture, timing, battery consumption, error handling, cybersecurity, mobile compatibility, risk controls, regression and the field-update approach.

16

Common failure patterns

“The software team can start from a feature list.”

Features without intended-use, system and risk context create hidden assumptions and weak acceptance criteria.

“Agile means documentation comes later.”

Iteration changes timing, not the need for controlled decisions, traceability and evidence.

“System testing will find software defects.”

System tests cannot economically exercise every unit, interface, boundary, timing and fault condition.

“Open source is already tested.”

Popularity does not establish suitability, version control, known-anomaly assessment or safety evidence for the device.

“A software release is just a build.”

A release is a controlled configuration supported by completed evidence, residual-anomaly assessment and approval.

“Maintenance begins after launch.”

Update, support, monitoring and retirement arrangements should influence architecture and planning before the first release.

17

Practical software-lifecycle checklist

  • The role of every software element in the medical device is defined.
  • Software boundaries, interfaces, platforms and external dependencies are known.
  • A proportionate lifecycle plan defines activities, responsibilities, outputs and completion criteria.
  • Software safety classification and its rationale are documented and maintained.
  • Requirements trace to system needs, risk controls, architecture, implementation and evidence.
  • Architecture addresses critical interactions, fault responses and segregation assumptions.
  • Implementation practices and reviews are defined in proportion to risk and complexity.
  • Verification covers units, integration, software-system and device-system behaviour.
  • Third-party components, versions, anomalies and dependencies remain controlled.
  • Builds and releases are identifiable, reproducible and approved.
  • Problems and changes receive impact analysis, regression and risk review.
  • Maintenance, field updates and retirement are planned before release.
  • Cybersecurity activities are connected to—but not hidden inside—the software lifecycle.
KEY TAKEAWAYS

Seven points to remember

  1. Software lifecycle work begins with the device’s intended purpose and system context.
  2. Define boundaries and responsibilities before detailed software work expands.
  3. Plan requirements, risk, architecture, verification, configuration and maintenance as one connected system.
  4. Use traceability to support decisions, not merely to complete a document.
  5. Control third-party components and tools in proportion to their possible effect.
  6. A release is a known configuration supported by coherent evidence.
  7. Cybersecurity shares lifecycle foundations but requires its own focused activities.
18

Authoritative external references

Applicable software evidence depends on the product, intended purpose, architecture, software safety significance, markets and selected standards. Confirm current regulatory requirements, adopted standards and guidance for the specific device.