Interface specification as a design practice — defining data types and protocols between components predates IEC 62304.
A1:2015 simplified the obligation to 'document a design' for interfaces, extended scope to SaMD. Normative requirement at unit-to-unit and unit-to-hardware granularity. [Class C]
Coverage of both internal (inter-unit) and external (hardware/software) interfaces, and completeness of error-state specifications in the interface design.
Maps to
IEC 62304: §5.4.3 Develop detailed design for interfaces
ISO 13485: §7.3.4 Design and development outputs
Pre-QMSR Part 820 (legacy QSR): §820.30(d) Design output.
Requirement text
The manufacturer shall document a design for any interfaces between the software unit and external components (hardware or software), as well as any interfaces between software units, detailed enough to implement each software unit and its interfaces correctly. [Class C]
Why this clause exists
Interface failures are a leading cause of integration defects and, in safety-critical systems, a common pathway to hazardous system behavior. Clause 5.4.3 separates interface design from unit-internal design because interfaces represent contract boundaries — both sides of the boundary must understand the same data types, timing, error states, and protocols for the integrated system to behave as designed. In Class C software, where correct interface behavior may be required for risk controls to function (for example, a software unit receiving a sensor reading must understand the data format and valid range to detect out-of-range conditions correctly), undocumented interface assumptions become hidden risks. The requirement covers both software-to-software and software-to-hardware interfaces, acknowledging that hardware interface protocols carry the same specification gap risk as software-to-software interfaces.
What changed
Amendment 1 (2015) simplified the clause obligation from 'develop and document a detailed design for any interfaces' (2006 edition) to 'document a design for any interfaces' — removing 'develop and' and the qualifier 'detailed' from the normative body text while retaining the sufficiency standard 'detailed enough to implement each SOFTWARE UNIT and its interfaces correctly.' The Class C restriction is unchanged. A1:2015 expanded the standard's scope to cover health software and SaMD.
Common gaps (what we see in audits)
- Interface design covers only external interfaces, not inter-unit interfaces — Manufacturers document hardware and external software interfaces but do not specify the interfaces between software units within the same software item. The clause explicitly requires both external and inter-unit interface design documentation.
- Interface specifications lack error state and error handling detail — Interface design documents specify normal-case data types and values but omit error states, out-of-range conditions, and error handling expectations. For safety-critical interfaces, error handling is as important as normal-case behavior for correct implementation.