Interface Control

Description   Related Tools    
Toggle All | Print Page Print Page
Background
An interface, from the perspective of system development, can be identified as any point where a system and something, or someone, meet. This interface point may include other systems, internal hardware, circuitry, external peripherals, networks, system users, etc. For example, common interfaces for computer peripherals may include USB, serial, parallel ports, etc; common interfaces for system users may include monitors, keyboards, mice, etc.

Interfaces are documented using interface control documents (ICD) that describe the system's interfaces as well as any rules for communicating with them. ICDs help ensure compatibility between system segments and components and are often considered key elements of effective system design and development. The purpose of the ICD is to clearly communicate all possible inputs and outputs from a system for all potential actions whether they are internal to the system or transparent to system users. An ICD may describe the system interfaces to the lowest physical elements (circuits, voltage, watts, etc) to the user interface or any subset thereof. The level of detail included in any ICD is dependant upon the requirements of the stakeholders to successfully deliver on project requirements.

ICDs define for the development team system inputs, outputs, internal interfaces, and interfaces between other systems, subsystems and/or users. An ICD should only describe the interface itself and not any characteristics of the systems using it. An ICD should also not include anything about the meaning or intended use of the data. Any features, functions, or logic supporting the system interface should be outlined within separate design and/or specification documents. Defining an ICD in this way allows other teams to develop connecting systems without concern of how the data is treated by the other system. This allows development teams to work without the requirement of knowing the business logic or technical aspects behind the system and allows for modularity that leads to easy maintenance and extensibility of systems.
 


Overview
Depending on the nature of the project it's possible that a number of different ICDs will be required, one for each different interface type. For example, network interface control document, graphical user interface control document, application program interface document, etc. Regardless of the interface type, format, or name, an effective ICD would be used in conjunction with relevant system design and specifications documents, models, and drawings, to communicate how the overall system functions and interacts. An effective ICD may include:

The Federal Enterprise Architecture (FEA) Reference Model contains components that reference many of the items that should be considered when defining ICDs. Some of these items include:

An ICD also allows project teams to leverage other systems by providing developers with the information necessary to build add-on or complementary applications or to simply interface with existing systems. Some examples of interfaces where an ICD may be required include:

Example
 


Best Practices

Practice Activities