Interface Control Document

Interface Control Document

In systems engineering [Wolter J. Fabrycky, Benjamin S. Blanchard, "Systems Engineering and Analysis,"Prentice-Hall, 2005] and software engineering, an Interface Control Drawing (ICD) is a document that describes the interface(s) to a system or subsystem. An ICD may describe the inputs and outputs of a single system, e.g. "The Wikipedia Interface Control Document." An ICD may also describe the interface between two systems or subsystems, e.g. "The Doghouse to Outhouse Interface Control Document." An ICD may describe the complete interface protocol from the lowest physical elements (e.g., the mating plugs, the electrical signal voltage levels) to the highest logical levels (e.g., the level 7 application layer of the ISO model), or some subset thereof. The purpose of the ICD is to communicate all possible inputs to and all potential outputs from a system for some potential or actual user of the system. The internal interfaces of a system or subsystem are typically not documented in an ICD, but rather in a system design document (such as a Software Design Document).

Interface control documents are a key element of systems engineering as they define and control the interface(s) of a system, and thereby bound its requirements.

An application programming interface is a form of ICD, in that it describes how to access the functions and services provided by a system via an interface. If a system producer wants others to be able to use the system, an ICD (or equivalent) is a worthwhile investment.

An ICD should only describe the interface 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 design documents if required. In this way, independent teams can develop the connecting systems which use the interface specified, without regard to how other systems will react to data and signals which are sent over the interface. For example, the ICD must include information about the size, format, and what is measured by the data, but not any ultimate "meaning" of the data in its intended use by any user.

An adequately defined ICD will allow one team to test its implementation of the interface by simulating the opposing side with a simple communications simulator. Not knowing the business logic of the system on the far side of an interface makes it more likely that one will develop a system that does not break when the other system changes its business rules and logic. (Provision for limits or sanity checking should be pointedly avoided in an ICD.) Thus, good modularity and abstraction leading to easy maintenance and extensibility are achieved.

Critics of ICDs and systems engineering in general often complain of the emphasis on documentation [cite web|last=Fowler
first=M.
authorlink=Martin Fowler
coauthors=J. Highsmith
title=The Agile Manifesto
url=http://www.ddj.com/dept/architect/184414755
work=Dr. Dobb's Journal
month=July
year=2001
accessdate=2006-05-11
, "Yes, physical documentation has heft and substance, but the real measure of success is abstract: Will the people involved gain the understanding they need?"
] [cite web|last=Ambler
first=S.W.
authorlink=Scott Ambler
title=Agile Modeling and eXtreme Programming (XP)
url=http://www.agilemodeling.com/essays/agileModelingXP.htm
work=AgileModeling.com
month=March
year=2005
accessdate=2006-05-11
, "...verbal communication between team members reduces the need for documentation within the team."
] . ICDs are often present on "document-driven projects," but may be useful on agile projects as well (although not explicitly named as such) [ [http://www.agilemodeling.com/essays/agileDocumentation.htm Agile/Lean Documentation: Strategies for Agile Software Development ] ] [ [http://www.xprogramming.com/xpmag/FussAboutDocumentation.htm Much Ado About Nothing: Documentation ] ] . An ICD need not be a textual document. It may be an (evolving) table of "goes-intos" and "comes-out-ofs", a dynamic database representing each subsystem as a DB view, a set of interaction diagrams, etc.

ICDs are often used where subsystems are developed asynchronously in time, since they provide a structured way to communicate information about subsystems interfaces between different subsystem design teams. [ [http://portal.acm.org/citation.cfm?id=234215.234474 Madefast ] ] [ [http://www.google.com/url?sa=t&ct=res&cd=3&url=http%3A%2F%2Ffaculty.washington.edu%2Fcioch%2FSimulation.doc&ei=2VdhRKqlAc-Y4QGPtJmHCQ&sig2=7P2IZiminX4e_RVmnrGE-Q Redirect Notice ] ] [ [http://www.dmst.aueb.gr/dds/pubs/jrnl/1997-CSI-WinApi/html/win.html A Critique of the Windows Application Programming Interface ] ] [ [http://www.google.com/url?sa=t&ct=res&cd=16&url=http%3A%2F%2Fwww-128.ibm.com%2Fdeveloperworks%2Frational%2Flibrary%2Fcontent%2FRationalEdge%2Fmay02%2FEngineersTogetherMay02.pdf&ei=2VdhRKqlAc-Y4QGPtJmHCQ&sig2=ODi7xjzVAowkEBiT2BaPug Redirect Notice ] ] .

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Interface Control Document — Ein Interface Control Document (ICD), zu deutsch etwa Dokumentation zur Schnittstellenansteuerung, beschreibt, wie eine Schnittstelle eines Systems aufgebaut ist und wie sie angesprochen werden kann. Dabei ist es unerheblich, wie das System… …   Deutsch Wikipedia

  • Interface Neuronale Directe — Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une …   Wikipédia en Français

  • Interface cerveau-machine — Interface neuronale directe Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une …   Wikipédia en Français

  • Interface neurale — Interface neuronale directe Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une …   Wikipédia en Français

  • Control key — A Control key (marked Ctrl ) on a modern Windows keyboard In computing, a Control key is a modifier key which, when pressed in conjunction with another key, will perform a special operation (for example, Control Alt Delete); similar to the Shift… …   Wikipedia

  • Document-oriented database — A document oriented database is a computer program designed for storing, retrieving, and managing document oriented, or semi structured data, information. Document oriented databases are one of the main categories of so called NoSQL databases and …   Wikipedia

  • Brain-Computer Interface — Interface neuronale directe Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une …   Wikipédia en Français

  • Brain-computer interface — Interface neuronale directe Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une …   Wikipédia en Français

  • High-Definition Multimedia Interface — Infobox connector name=High Definition Multimedia Interface type=Digital audio/video connector logo= caption=HDMI cable and HDMI official logo designer=HDMI Founders design date=December 2002 manufacturer=HDMI Adopters production date=2003… …   Wikipedia

  • User interface — The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”