IDEF0 — context diagram A0 (ICOM model)
IDEF0 — context diagram A0 (ICOM model)
🎬 Watch the explainer

↓ Download reference poster (PDF, A2)

History

IDEF0 was developed in 1981 under the US Department of Defense’s ICAM (Integrated Computer-Aided Manufacturing) program. The methodology builds on the earlier SADT (Structured Analysis and Design Technique) notation created by Douglas Ross. In 1993 IDEF0 was adopted as a US federal information-processing standard (FIPS PUB 183).

The ICOM model

Each box (function) in IDEF0 has four clearly separated sides:

  • Input — on the left: the material or information resources transformed by the function
  • Control — on top: the constraints, rules and regulations under which the function operates
  • Output — on the right: the result of the function’s work
  • Mechanism — on the bottom: the performers, equipment and IT systems that carry out the function

This strict semantics is IDEF0’s defining feature. It disciplines the analyst and makes it possible to describe complex systems precisely.

The decomposition principle

IDEF0 is built on hierarchical decomposition:

  • The A-0 context diagram — a single function describing the whole system
  • The A0 diagram — the context function decomposed into 3–6 sub-functions
  • Diagrams A1, A2, A3… — each sub-function decomposed further

Decomposition depth is usually limited to 3–5 levels. Each child diagram must preserve the ICOM balance: all inputs, outputs, controls and mechanisms of the parent function must appear in the child.

Where it is used

IDEF0 is most widely used in:

  • The defense and aerospace industries
  • The public sector, for describing regulations
  • Quality-management-system certification (ISO 9001)
  • Systems-integration projects at large manufacturers

Strengths

  • Strict semantics — models are hard to misinterpret
  • A recognized standard for audit and certification
  • Well suited to manufacturing and regulated processes

Limitations

  • A high entry barrier for a business audience
  • Does not describe the temporal order of execution
  • Has no means to describe exceptions and events
  • Modern BPM tools support IDEF0 poorly