Software integration tests & integration strategy
Both IEC 62304 and the FDA require integration tests.
Manufacturers almost always have to design and verify a software architecture for medical device software.
Content
This page provides you with a quick overview and links to further articles.
The software architecture serves as input for the software development team to develop the software as planned (time, money, quality). It is intended to minimize development risks and ensure that the software meets the software requirements.
Software architecture is understood to be both a phase with a set of activities as well as the output of these activities. Most definitions are aimed at the latter.
Software architecture is the decomposition of a software system into components and the specification of the interfaces between these components.
An illustrative definition comes from Martin Fowler:
The set of all important decisions that are both important and hard to change
For standalone software, the software architecture is the “blueprint” that specifies how the software requirements (the input) are to be implemented in software (see Fig. 1). The output of this phase is the documented software architecture. This includes the software items and their requirements.
Fig. 1: The “software architecture” phase has the software requirements as input and the documented software architecture as output.
Fig. 1 is reminiscent of a V-model. However, in this context it is to be understood more as a software development documentation model than a process model.
For the software part of a device, the software requirements also serve as input for the software architecture. However, they do not correspond to the system or product requirements (see Fig. 2 and Tip 1).
Fig. 2: For the software part of a device, the “software architecture” phase also has the software requirements as input and the documented software architecture as output.
The output here is also the documented software architecture, including the requirements for the software items.
IEC 62304 requires that the development planning should specify the tools, methods, and coding guidelines. However, these specifications are often only meaningful once the software architecture has been established.
For medical devices, software architecture and software risk management must work hand in hand. This applies in particular to software risk analysis, for example, with the help of a software FMEA or threat modeling.
Risk-minimizing measures, such as the segregation of components, should also be defined in this phase.
In contrast to software architects, building architects not only create the construction plan. They also determine the stakeholder requirements (together with the client).
Software architects should only create the blueprint (the software architecture). Eliciting the requirements is the task of requirements engineering.
The MDR and IVDR require software life-cycle processes according to the state of the art (see MDR, Annex I, Section 17.2) and the “description of the software design” (see Annex II, Section 6.1.b).
The harmonized standard IEC 62304 for these EU regulations specifies a software architecture and a detailed software design in chapters 5.3 and 5.4. To this end, manufacturers must identify the software items and software units and specify the corresponding interfaces.
If manufacturers use off-the-shelf software (SOUP), they must also specify the requirements for this and document and guarantee the prerequisites for its use.
The standard obliges manufacturers to verify the software architecture, for example, whether all requirements have been taken into account and risk control measures have been implemented.
The FDA acknowledges IEC 62304 as a “recognized standard”. However, the authority formulates the most relevant requirements for software architecture in its General Principles of Software Validation guideline.
In addition, the guideline Content of the premarket submission specifies which documents manufacturers must submit. In this document, the FDA also sets out requirements for the “software architecture” and the “software detailed design.”
Medical electrical equipment can contain more than one CPU and, therefore, more than one “software” (see Fig. 3). Manufacturers should not define the entirety of all software as the software system. Instead, the software for each processor unit (which may contain multiple cores) should count as a separate software system.
Manufacturers thus avoid layered architectures and devices mentally divided into mechanical, electronic, and software layers. They should divide devices according to functional considerations.
It is neither sensible nor legally compliant to specify and document the software architecture only after the software has been developed.
In agile software development, continuous refactoring is possible and common. However, experience shows that most manufacturers are challenged with a precise and viable upfront architecture. Maintaining the conceptual integrity of an architecture in agile development requires high skills.
It is, therefore, helpful to make the key design decisions early on and based on stable requirements.
Some developers document the software architecture using boxes and arrows in PowerPoint. However, what an arrow indicates must be clear. A
A model is only meaningful if the notation elements (shapes, colors, etc.) are clearly defined. Therefore, do not invent your notation language; use standardized languages such as UML.
The article on documenting software architecture presents a proven chapter structure.
An essential characteristic of a good software architecture are components that are characterized by “weak coupling and strong cohesion” in the software system. This weak coupling is the prerequisite for later assembling and integrating the software piece by piece from the components.
Manufacturers should determine the integration strategy very early because this forces them to think about the strength of the coupling from the outset. The integration strategy also influences the integration tests.
The architecture must be verified before development begins. A change to the software architecture requires renewed verification (at least of the changes).
Conformity and completeness of the software architecture can be checked in an understandable manner using checklists such as those found in the medical device university. This helps manufacturers to avoid forgetting aspects.
Benefit from the support of the Johner Institute:
Contact us right away so that we can discuss the next steps. This way, you can ensure that the “approval” is safe and that your devices are quickly launched on the market.
Both IEC 62304 and the FDA require integration tests.
Threat modeling is a “mandatory” topic for all manufacturers of medical devices that contain or are software. This is because threat modeling is a structured process for the systematic analysis of IT security risks that auditors consider to be the “state of the art.”
Laws such as the Federal Data Protection Act and the Criminal Code make it unmistakably clear that data protection is particularly important in the case of medical data. In this article, you can read why medical data requires special protection, what the special features of medical data protection are, and which data protection laws must…
DetailsIEC 62304 has introduced the concept of safety classification to allow medical device manufacturers to adapt the effort required for software documentation to the degree of possible harm that a software defect would cause. This article will help you determine the safety classes and document compliant with IEC 62304. Update: No more presumption of conformity…
DetailsCoding guidelines are intended to promote source code that is understandable, maintainable, testable, and error-free. This article describes the regulatory requirements for coding guidelines and provides specific examples.
“Will a software audit take place?” is a question that reached me via our micro-consulting. ‘And can I avoid a software audit by choosing the appropriate software safety class?” At first, I didn’t realize exactly what ‘software audit’ meant or what the exact concern was. But then I understood and found the question to be…
DetailsSoftware risk analysis depends on the following: Software itself cannot cause harm. It always happens via hardware or people. However, this does not mean there is no need for risk analysis in software. The opposite is the case!
The term software unit is defined in IEC 62304. Many manufacturers experience difficulties when specifying and testing these software units. This article gives you tips on how to avoid them.
DetailsIEC 60601-1 defines a PESS, a Programmable Electronic Subsystem, as a system based on one or more central processing units, including their software and interfaces. The standard does not reveal what it means by system; in this context, it is a medical device component. For this, IEC 60601-1 sets out specific requirements for the PESS.
DetailsThe software architecture documentation primarily serves these objectives: Fast, effective, and plannable software development will succeed if the task (to develop software that meets the software requirements) is broken down into solvable subtasks, which can be distributed among many developers. The prerequisite for this is a precise (documentation of the) software architecture, which is unfortunately…
DetailsWe need your consent before you can continue on our website. If you are under 16 and wish to give consent to optional services, you must ask your legal guardians for permission. We use cookies and other technologies on our website. Some of them are essential, while others help us to improve this website and your experience. Personal data may be processed (e.g. IP addresses), for example for personalized ads and content or ad and content measurement. You can find more information about the use of your data in our privacy policy. You can revoke or adjust your selection at any time under Settings.
If you are under 16 and wish to give consent to optional services, you must ask your legal guardians for permission. We use cookies and other technologies on our website. Some of them are essential, while others help us to improve this website and your experience. Personal data may be processed (e.g. IP addresses), for example for personalized ads and content or ad and content measurement. You can find more information about the use of your data in our privacy policy. Here you will find an overview of all cookies used. You can give your consent to whole categories or display further information and select certain cookies.