IDEF0 is a method designed to model the decision, actions and activities of an organisation or system, for analysing and communicating the functional perspective of the system.
The IDEF0 assists the modeller in identifying what functions are performed, what is needed to perform those functions, what the current system does right, and what the current system does wrong. Its development owes much to the SADT (Systems Analysis and Design Technique) notation devised by Philips. Each diagram shows functions and the flows of data between them. Functions are shown as rectangles. The meaning of a flow is determined by which side of the rectangle it is connected to:
Collectively, these are often termed ICOM flows.
In general, there is the same conservation of data rule between the functions at the higher level and the expansion of a function into a lower level diagram.
However, the IDEF0 notation allows these data conservation rules to be broken in a controlled way, but using tunnelled flows.
A tunnelled input or output flow is one which is newly introduced into the current diagram and which does not correspond to any input or output (as appropriate) in a higher level diagram. Once introduced, the data in the tunnelled input or output flow that must be conserved in child diagrams, unless they also use tunnelled inputs and/or outputs.
Tunnelled flows are indicated by semicircles drawn around whichever end (source or destination) of the flow is to be excluded from balancing checks.
IDEF0s are hierarchical. Their connectivity is:
IDEF0s are available in models in both the Essential and Implementation Domains.
Hierarchical by function using the standard dot-decimal notation.
An example IDEF0 diagram is:
The symbols available in IDEF0 diagrams are:
Symbol | Name | Description | Definition | Expansion |
---|---|---|---|---|
Comment | Makes a note anywhere in the diagram. Are always surrounded by * characters. Note: If you do not want Cradle to automatically add an * go to the Graphics Settings section of Project Setup and turn off the Automatically add asterisks to diagram's comment symbols option. | None | None | |
Split Gate | Used to divide incoming data into lower-level data items. | None | None | |
Join Gate | Used to rejoin lower-level data items into a higher level item. | None | None | |
Boundary Point | A connection point for the initial transition to enter the initial state. | None | None | |
Function | A system function at the lowest level of detail of interest. | Function specification | IDEF0 DFD BD | |
Picture | Allows you to choose the location of a GIF or JPEG image to be displayed as a diagram symbol or to be embedded in an existing diagram symbol. | None | None | |
ICOM Flow | Represents a data flow line depicting input, control, output or mechanism depending on the directional placement relative to the Function symbol. | Flow data definition | None | |
Tunnelled Input Flow | Input information at a specific level of decomposition that is not required for understanding at some other levels. The arrow can be tunnelled at any chosen level. | Flow data definition | None | |
Tunnelled Output Flow | Output information at a specific level of decomposition that is not required for understanding at some other levels. The arrow can be tunnelled at any chosen level. | Flow data definition | None | |
Item | Represents a requirement or system note in the diagram. | None | None | |
Context Item | Represents a requirement or system note in a diagram and is a container within which other object symbols can be drawn or attached. | None | None | |
Cross Reference Link | Represents a cross reference that exists between a pair of system notes/requirements. It can also represent a cross reference between a system note/requirement and a specification or data definition or system that describes the objects symbols that it connects. | None | None |