
Best Embedded Programming Languages. From Microcontrollers to Advanced Systems
Embedded systems are the backbone of modern technology, powering everything from IoT devices and industrial automation to real-time embedded systems […]
Developing software for the medical device industry requires a careful balance between innovation and safety. As healthcare technology rapidly evolves, manufacturers must meet strict guidelines to maintain software reliability. Achieving these goals demands a clear, structured approach to software development—one that anticipates potential risks, ensures high-quality outcomes and aligns with the evolving expectations of regulators worldwide. In many cases, a medical device consists of hardware and sophisticated software that must function seamlessly to uphold clinical standards.
At Scythe, our primary service is comprehensive embedded software development, and the majority of our customers are exactly medical device manufacturers or startups. As medical device software is what we do daily, we introduced ISO 13485:2016 and of course, we do our work in the IEC 62304 regime.
Below, we explore how a risk-based approach, robust security measures, and well-aligned strategies can shape software and medical device software that comply with IEC 62304. Additionally, the standard’s applicability to various forms of medical electrical equipment underscores its role in promoting consistency across the healthcare sector.
IEC 62304:2006 is an internationally recognized software lifecycle standard that provides (not so clear :)) guidance on the processes, activities, and tasks essential for creating and maintaining software used in medical devices. By prescribing a risk-based approach, it helps developers structure their implementation phase, refine software architecture, and ensure robust software system testing, all while maintaining a high level of security.
Adhering to IEC 62304 underscores a commitment to patient safety and regulatory readiness. It’s widely recognized in the medical device industry by regulators. In the European Union, the Medical Device Regulation (MDR 2017/745) and In Vitro Diagnostic Regulation (IVDR 2017/746) harmonized this standard and the US FDA also recognizes it as a consensus standard.
The expansion of the full name of the standard is “Medical Device Software – Software Life Cycle Processes”.
The standard provides a framework for developers to establish life cycle processes, which include activities for the safe creation and post-market maintenance of the device. Each cycle has life cycle requirements. A single process consists of several activities, and a single activity consists of tasks.
The following processes are defined in the IEC 62304 medical device software standard:
The standard requires equipment manufacturers to create and maintain technical documentation that will be submitted to regulatory bodies. We will write more about the content of the documentation later in the post.
If you’re looking for an IEC 62304:2006 PDF with the content with the standard, I have to disappoint you. You must purchase it on your own as each copy is marked in a way that you shouldn’t copy it. I don’t necessarily like it, but it’s not a huge cost after all.
IEC 62304 Processes for Medical Device Software Development
IEC 62304 compliance is increasingly required in both domestic and global markets. Regulators such as the FDA in the United States and the European Commission expect proof of a robust software development framework when approving medical equipment or devices for sale. Demonstrating compliance with IEC 62304 can:
In short, IEC 62304 is a must-have for any business serious about being in the medical devices market.
Let’s now have a look at some of the most basic yet essential information that you should know to have an idea of what you’re talking about.
IEC 62304 categorizes medical device software into three safety classes. Manufacturers should classify products based on hazardous situations and potential harm.
The classification level determines the level of documentation and rigor required in the development process. For example, Class C devices require more stringent verification and validation than Class A or B as the risk to patients is higher.
The particular regulations like the European MDR or FDA, introduce their own classification. In the US there are also three classes (I, II, III) while in the EU there is one extra intermediate one (I, IIa, IIb, III). In both cases, class C is more or less equivalent to class III while class A is the least-harmful class corresponding with class I.
Safety Classes Acording To IEC 62304
The IEC 62304 requires you to document a number of various things. Key elements of the documentation include:
Of course, it is not a complete list. Many of those topics shall be split into separate documents. How you organize the documentation is more up to you.
As IEC 62304 is a common framework in medical device software development, you should only with that it tells you about document your medical device architecture. It’s not that scarry and later on I explain how to deal with the blurriness of this standard. Of course, it all depends on the medical device classification and its complexity.
The main point that you have to note is that the software architecture should be based on the requirements. So first you have to analyze what features your device has to serve before you specify how to actually satisfy this. As the minimum, software architecture should identify software items – bigger chunks of your projects, and how they interact with each other. By that I mean connectivity interfaces (physical/wireless, Bluetooth/TCP/IP/MQTT – you name it).
Example high-level design
IEC 62304 requires robust risk management. The standard aligns closely with ISO 14971 the internationally recognised risk management standard for medical devices. Developers must:
This structured risk management approach means emerging risks can be quickly identified and mitigated reducing hazardous situations. Risk management is a base for classification.
The IEC 62304 requires that the medical software systems development process consists of several key lifecycle requirements:
Effective planning sets the foundation for a successful project. In this phase, teams define the scope of the software, its intended use, required safety classification, and the activities necessary to meet IEC 62304 requirements. By creating detailed project plans, resource allocations, and schedules, organizations establish clear expectations for stakeholders and developers.
Once planning is done, we move on to writing requirements. Requirements should be:
Requirements are not only about features – they cover multiple aspects to ensure safety, usability, performance, and compliance. Saying about features we can distinguish between functional requirements (features), non-functional requirements (performance, UX/UI, security), interface requirements or maintenance.
The architectural design phase defines the high-level structure of the software, including the components, interactions, and data flow. This step ensures the software is modular, scalable, and meets safety and performance requirements. We document the architecture to maintain traceability and enable risk assessments, so we can ensure critical parts of the system (e.g. fault tolerance and redundancy) are properly considered.
In the detailed design phase, we refine the architectural components into software modules and define their internal logic, data structures, and interactions. We consider software safety mechanisms, exception handling,g and cybersecurity controls. By documenting each module, we enable testing, maintenance, and compliance verification so the software behavior meets both functional and regulatory requirements.
Implementation involves writing and compiling the source code according to the approved design. In this phase, developers usually follow coding standards and best practices relevant to the medical device context. Code reviews, static analysis, and integration checks maintain quality and prevent defects that could compromise safety.
Verification checks whether the software meets specified requirements, validation confirms it fulfills its intended use in real-world scenarios. The level of testing detail depends on the safety classification:
All these testing activities cover validation requirements and must be documented for regulatory scrutiny.
Even after the final software release, the device requires ongoing monitoring and maintenance. IEC 62304 emphasizes the need for:
IEC 62304:2006 Software Development Process
Well, at first glance introducing processes according to IEC 62304:2006 might seem like an impossible task. You are there and you don’t want what to start with. Before you start questioning all your life choices, let me explain why the formal part of medical device software development is so cumbersome and how to deal with it.
First of all, I have to admit that after years of being commercially involved in embedded software design, it is still challenging and each project is different. Companies struggle to design software architecture, design UX/UI and look of the devices, do the electronics, implement device software, and perform robust tests, so if we add extra regulatory effort, analyses, and risk control measures on top of that… Some might think that it’s not even worth starting. It’s exactly the problem: the amount of work (varies from device to device) and unfamiliarity with the standard. That’s why I wrote this article.
My remedy for this is the following: Take training and do it together with key people in your team, so you all understand at least high-level information about the standard. I have seen smart individuals successfully doing all the documentation on their own after the training and doing their own research. If you don’t have time, or skills or just want to have a partner in this process, consider hiring software consultants with experience in medical device software development.
Another problem with IEC 62304 is that development practices in other industries are often different and many developers, software engineers, and managers are not used to medical device development flow enforced by the standard. With all the requirements, risk management, assessments, and planning that have to be completed first, the Waterfall model seems a natural way to develop medical device software. However, most of the developers without a background in health software rather prefer Agile-like models. Standard tells you that especially for safety critical systems elements you should first do detailed design, but the truth is that you often don’t know how to implement a particular feature beforehand.
My answer to this one is the following: Proper planning is beneficial. Once you learn how to do it you are going to find a lot of value in this. You should also involve the engineers at this stage, so even if they’re not yet sure how to do a particular thing (whether it’s a software item or some risk control measures), they can test out proof of concepts at this stage. Also, no one says that something written once, can’t be corrected as long as we ensure traceability.
The Agile software development process can be successfully adapted during the implementation activity. You can prepare the next versions of your medical device and present it to stakeholders once in a while to get feedback and then proceed with the next functionalities.
Choosing the right development partner can make all the difference to your IEC 62304 compliance. If you really care and I bet you do, look for a team that:
By choosing experienced professionals who put compliance and innovation first you will lay the foundation for building safe and market-ready medical software. Better think of a partner that is capable of keeping the balance between regulatory requirements and the work efficiency.
Let's face it? It is a challenge to get top Qt QML developers on board. Help yourself and start the collaboration with Scythe Studio - real experts in Qt C++ framework.
Discover our capabilitiesEmbedded systems are the backbone of modern technology, powering everything from IoT devices and industrial automation to real-time embedded systems […]
What a change! While there was little stirring in my environment while the consultations legislation was ongoing, on the day […]
Why Consider C++ for Embedded Systems? Embedded systems range from simple microcontrollers to complex real-time applications that demand efficient resource […]