An interface control document (ICD) in systems engineering [1] and software engineering, provides a record of all interface information (such as drawings, diagrams, tables, and textual information) generated for a project.
An ICD should only describe the detailed interface documentation itself, and not the characteristics of the systems which use it to connect.
The function and logic of those systems should be described in their own requirements and design documents as needed.
(Provision for limits or sanity checking should be pointedly avoided in an interface requirements specification.)
Thus, good modularity and abstraction leading to easy maintenance and extensibility are achieved.