SOFTWARE IN PRACTICE
Interface Control Document
(Alias: ICD, Interface Specification, Interface Design Document)
If I want to communicate with you I need to pay you the complement of being careful in what I say so as to make it intelligible.
An Interface Control Document (ICD) describes the interworking of two elements of a system that share a common interface. For example, a communications interface is described in terms of data items and messages passed, protocols observed and timing and sequencing of events. An ICD may also describe the interaction between a user and the system, a software component and a hardware device or two software components. This class of document is typically used where complex interfaces exist between components that are being developed by different teams. It is jointly prepared by the interfacing groups.
It is common practice to evolve the ICD through the requirements and design phases of a project. The requirements of the interface are specified and approved and the document then further fleshed out with the design as follows:
The requirements describe what the interface is to achieve together with any constraints on its design as follows:
The design describes how the interface will be implemented. For example in the case of a communications interface the following technical details are provided:
A user interface is typically described as follows:
A hardware interface is described with circuit diagrams.