IDEF0

**IDEF0** (*機能モデリングのための統合化定義*)は、情報システム、事業プロセス、あるいはソフトウエア工学の分析、開発、リエンジニアリング及び統合のためのモデリング言語を提供する、製造機能を記述するための機能モデリング手法である 。

IDEF0は、ソフトウエア工学分野でのモデリング言語であるIDEFファミリ手法の一部であり、機能モデリング言語SADTに基づき構築されている。

## 全貌
IDEF0 機能モデリング手法は、組織又はシステムの意思決定、行動、あるいはアクティビティをモデル化するよう設計された。それは、ダグラス・テイラー・ロスとSofTech社によって開発された、確立した図式モデリング言語SADTから派生した。そのオリジナル形式で、IDEF0は、図式モデリング言語（構文Syntaxと意味論）の定義と、モデル開発のための包括的手法論の解説の両方を含んだ。
米空軍は『システムの機能的観点を分析しコミュニケートする機能モデリングFunction_model手法を開発した。IDEF0は、単純化された図式手段を通して分析者と顧客間のシステム分析を組織化し、効率的コミュニケーションを促進することで補助すべきである。』ことをSADT開発者に委託した。

フローチャートは、製品productの機能的流れを示すため使われるところで、IDEF0は、ライフサイクル・プロセスのデータフロー、システム・コントロール、及び機能的フローを示すため使われる。IDEF0は、事業、製造、あるいは事業体運営のその他のタイプの広く多様な姿をあらゆる詳細さのレベルまで、図的に表現する能力を持っている。それは、厳密で正確な記述を提供し、そして用途や解釈の整合性を促進する。それは、政府や民間産業による長年の活用を経て良くテストされ証明されている。それは、各種のコンピュータ・グラフィック・ツールで生成される。幾つかの商用製品が、IDEF0ダイアグラムとモデルの開発と分析を特別に支援する。

関連する技術である、情報モデリングのための統合定義（IDEF1X）は、データ指向システムのためのIDEF0を補足するため使われる。IDEF0標準：連邦情報処理標準公開183（FIPS 183）とIDEF1X標準（FIPS 184）は、アメリカ国立標準技術研究所（NIST）によって維持されている。

## 歴史
1970年代に、米空軍のICAMプログラムは、コンピュータ・システムの体系的な応用を通して製造生産性を増大させることを求めた。ICAMプログラムは、製造生産性の向上に係わる人々のためのよりよい分析とコミュニケーション技術の必要性を認識した。結果として1981年にICAMプログラムは、以下を含むIDEF（ICAM Defnition）技術として知られる、一連の技術を開発した ：
* IDEF0：機能モデルを作り出すため使われる。機能モデルは、モデル化されるシステム又は主題領域内で、機能、アクティビティ、あるいはプロセスの構造化された表現である。
* IDEF1：『情報モデル』を作りだすため使われる。情報モデルは、モデル化されるシステム又は主題領域内で、情報の構造と意味を表現する。
* IDEF2：『動的モデル』を作り出すのに使われる。動的モデルは、モデル化されるシステム又は主題領域の時系列的振舞い特性を表現する。

米空軍の統合情報システム支援 (IISS)プログラムは、1983年にIDEF1情報モデリング技術を、意味論的データ・モデリング技術としてIDEF1X（拡張されたIDEF1）の形式に拡張した。1990年代までに、IDEF0とIDEF1X 技術は、事業体とアプリケーション・ドメインの広い範囲のモデリング努力を支援して、政府、産業界、及び商業セクターで幅広く使われた。1991年にNISTは、国防省の企業情報管理オフィス（DoD/CIM）から、モデリング技術の一つ以上の連邦情報処理標準（FIPS）化の支援を受けた。選ばれた技術は、機能モデリングのIDEF0と情報モデリングのIDEF1Xであった。これらのFIPSドキュメントは、1980年代初期に米空軍より発行されたIDEFマニュアルに基づいている。

## IDEF0 トピックス

### IDEF0 アプローチ
IDEF0は、幅広い多様な自動化及び非自動化システムのモデル化に使われるかもしれない。新規システムのためそれは、要求requirementsを定義し、機能を特定し、そのあとその要求に合致し機能を実行する実装を設計するため使われるかもしれない。既存のシステムのためIDEF0は、そのシステム実行の機能を分析し、それらによって行われた機構（手段）を記録することに使われる。システムにIDEF0を適用した結果は、階層化された一連のダイアグラムで構成するモデルであり、それぞれお互いへのクロス参照の用語集である。2つの主なモデリング構成要素は、（ボックスによってダイアグラム上に表される）機能とそれらの機能の相互関係である（矢印によって表される）データやオブジェクトである。

### IDEF0 構築ブロック

この左側に表示されるIDEF0モデルは、シンプルな構文Syntaxに基づいている。各アクティビティは、ボックス内に置かれる動詞句ベースのラベルによって記述される。*入力（インプット）*はアクティビティ・ボックスの左側に入る矢印として示される一方、*出力（アウトプット）*はボックスの右側に存在する矢印として示される。*制約（コントロール）*はボックスの上部に入る矢印として示され、そして*機構（メカニズム）*はボックスの下部から入る矢印として表示される。*入力*、*制約*、*出力*、及び*機構*は全て*概念*として参照される。  

* *矢印* : （矢尻の）源泉から（矢頭の）使用へデータ又はオブジェクトを運ぶオープンなチャンネルあるいは導管をモデル化する、一つ以上の矢印セグメントから成る、方向性のあるライン。4つの矢印クラスが存在する：入力矢印、出力矢印、制約矢印、及び（呼出矢印を含む）機構矢印。矢印セグメント、境界矢印、内部矢印を見てください。

* *ボックス* : 機能を記述するため使われる名前と番号を含む、四角。

ファイル:1 Box Syntax ja.jpg|ボックスの文法
ファイル:2 Arrow Syntax ja.jpg|矢印の文法
ファイル:3 Arrow Positions and Roles ja.jpg|矢印の位置と役割
ファイル:4 Label and Name Semantics ja.jpg|ラベルと名前の意味


* *文脈（コンテキスト）* : 一つの機能（又は一つのダイアグラム上の機能のセット）を運用する直近の環境。

* *分割* : 一つのモデル化された機能の、その構成要素機能への区分。


ファイル:5 Example Top-level Diagram ja.jpg|トップ・レベル・ダイアグラムの例
ファイル:6 Decomposition Structure.svg|分割構造
ファイル:7 Detail Reference Expression Use.svg|詳細な参照表現利用
ファイル:11 Arrow Fork and Join Structures.svg|矢印の分岐と合流構造


* *分岐* : （その源泉から使用へ進む）一つのIDEF0矢印セグメントが、2つ以上の矢印セグメントに分かれる接合点。アンバンドルの意味を示すかも。


ファイル:12 Connections Between Boxes.svg|ボックス間の結合
ファイル:13 Boundary and Internal Arrows.svg|境界と内部矢印
ファイル:20 Typical Node Tree.svg|一般的なノード・ツリー
ファイル:21 Negative Node-Numbered Context.svg|ネガティブ・ノード番号コンテキスト


* *機能* : （IDEF0によってモデル化された）アクティビティ、プロセス、あるいは変換は、何が達成されねばならないかを記述する動詞又は動詞句によって識別される。

* *合流* : （その源泉から使用へ進む）一つのIDEF0矢印セグメントが、1つの矢印セグメントを形成するため1つ以上の他の矢印セグメントと合流する接合点。矢印セグメントのバンドルを意味するかも。

* *ノード* : 子供ボックスを生ずる一つのボックス；親ボックス。ノード・インデックス、ノード・ツリー。ノード番号、ノード参照、ダイアグラム・ノード番号も見てください。

### 図式表記
IDEF0は、階層的な一連のダイアグラム、テキスト、及び他との相互のクロス参照の用語集から構成される。2つの主な構成要素は：
* （ダイアグラム上のボックスで表される）機能と
* （矢印で表される）それらの機能の相互関係であるデータやオブジェクト。
図3で示されるように、ボックスに接する場所は、インタフェースの特定な役割を伝える。制約（コントロール）はボックスの上部に入る。その運用で行動するデータやオブジェクトである、入力（インプット）は左からボックスに入る。その運用の出力（アウトプット）はボックスの右側側面から出る。機能の実行の支援手段を提供する機構（メカニズム）の矢印はボックスの下部（に向かって）結合される。

### IDEF0のプロセス
IDEF0のプロセスは、分割されるべき最上位の機能の識別で始められる。この機能は、特定なIDEF0分析のスコープを定義する『最上位文脈（トップ・レベル・コンテキスト）ダイアグラム』上で識別される。情報システム管理プロセスの最上位文脈ダイアグラムの例が、図3に示される。このダイアグラムから下位ダイアグラムが生成される。派生されたダイアグラム例は、IDEF0用語で『子供』と呼ばれ、ライフサイクル機能のため、図4で示される。

### 連邦情報処理標準（FIPS）
1993年12月NISTは、ソフトウエア標準の分類、モデリング技術で機能モデリングのための統合化定義（IDEF0）の標準を発表した。この公開は連邦情報処理標準（FIPS）としてIDEF0の採択を発表した。この標準は、1981年からの米空軍のWright Aeronautical LaboratoriesのICAM基づいた。

## 脚注

## 参考文献
* Systems Engineering Fundamentals. Defense Acquisition University Press, 2001.
 
## 関連項目

* 機能モデル
* 機能フロー・ブロック・ダイアグラムFunctional flow block diagram
* IDEFファミリ手法
* IDEF1X
* IDEF3
* IDEF5

## 外部リンク
* FIPS Publication 183 released of IDEFØ December 1993 by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST). (Withdrawn by NIST 08 Sep 02 see Withdrawn FIPS by Numerical Order Index)
* Overview of IDEF0 at www.idef.com