機能モデル

機能モデルはモデル化されるシステムまたはサブ領域内の機能 の構造化された表現である。機能的モデルとも。

またアクティビティモデルまたはプロセス・モデリングとも呼ばれる機能モデルは、定義されたスコープ内の事業体の機能の図式表現である。機能モデルの目的は、情報ニーズの発見を補助し、機会の識別を助け、そして製品またはサービスコスト決定するための基盤を確立する、機能とプロセスを記述することである。

1. 歴史
-----

機能モデルプロジェクトは20世紀前半に開発されていたマネージメントダイアグラムの他のタイプとして、1950年代に始まった。最初に知られるガントチャート は、それを//harmonogram//と呼んだKarol Adamieckiによって1896年に開発された。

Adamieckiは、彼のチャートを1931年まで発表しなかったこと、及び彼の作業がいずれの場合もポーランド語あるいはロシア語で発表され、言語が西側世界でポピュラーでなかったことから、そのチャートは今、1910-1915年近辺で彼のチャートを設計し、西側でポピュラーになった、Henry Gantt  の名前を持つ。最初のプロセス・フローの文書化の構造化手法、フロー・プロセス・チャート は、1921年に米国機械工学学会  のメンバーに『プロセス・チャート：一つの最適方法発見における最初のステップ』のプレゼントして、Frank Gilbrethによって紹介された。Gilbrethのツールは、産業工学カリキュラムにそれらの方法を素早く見つけました。

最初に良く定義された機能モデルの一つは、1950年代の防衛関連のTRW社によって開発された機能フロー・ブロック・ダイアグラム であった。1960年代にそれは、宇宙システムと飛行ミッションにおけるイベントの時間的シーケンスを可視化するためNASAによって採用された。それは、システム機能の実行の順序を示すためのクラシックなシステム工学でさらに幅広く使われた。

2. 機能モデリングのトピックス
----------------

2.1. 機能的観点
----------

システム工学及びソフトウェア工学における機能モデルは、機能的観点のモデリング で創られる。機能的観点は、ビジネスプロセスモデリング で可能な、別の観点が、例えば、振舞い的、組織的、あるいは情報的である、観点の一つである。

機能モデリングの観点は、動的システムを記述することに集中する。このモデリング観点における主な概念はプロセスであり、これは、機能、変換、アクティビティ、行為、タスク、などであり得る。この観点で採用されるモデリング言語の良く知られた例は、データフローダイアグラム である。

その観点は、プロセスを記述する、以下の4つのシンボルを使う。

プロセス：インプットからアウトプットへの変換を描く。
ストア：データの集まり、またはある種の物品。
フロー：プロセスにおけるデータまたは物品の移動。
外的エンティティ：モデル化されたシステムの外部であるが、それと作用する。ここで、これらのシンボルと共にそのプロセスは、これらのシンボルのネットワークとして表され得る。この分割プロセスがDFD：データフロー・ダイアグラムである。

動的エンタープライズモデリングにおける部分は、コントロール・モデル 、機能モデル、プロセス・モデル 、及び組織的モデル で創られる。

2.2. 機能分割
---------

機能分割 関数の分解は、オリジナル機能が、機能構成 関数の合成によるそれらの部品から再構築され得る方法のような、構成要素部品に機能的 関数の関係性を解決するプロセスへ広く参照する。一般に、分割のプロセスは、構成要素の識別への洞察を高める目的、あるいは構成要素のプロセスが//モジュール性//のレベルを所有する時のみ可能なタスクである、グローバル機能の圧縮された表現を得る目的のいずれかを引き受ける。

機能分割  は、主要な目標が可能な最も大きい広がりのプロセスを//モジュール化//することである、コンピュータプログラミングにおける卓越した役割を持っています。例えば、ライブラリ管理システムが、在庫モジュール、顧客情報モジュール、及び料金査定モジュールに分解されるかもしれません。初期のコンピュータ・プログラミングの数十年に、それは、若干の卓越した実行者によって呼ばれたとき、これは『サブルーチン化の芸術』として明らかにされました。

工学システムの機能分割は、設計されたシステムを分析するための方法です。基本的な考えは、ブロック・ダイアグラムのそれぞれのブロックがその記述に『and』または『or』条件無しで記述できるような方法で、システムを分割しようとすることである。

この課題は、システムのそれぞれの部分に純粋な機能 を持たせることを強います。システムが純粋な機能で構成されているとき、それらは再利用されるか、あるいは置換えられることができます。普通の副次効果は、ブロック間のインタフェースが単純そして汎用になるということです。インタフェースが通常単純になることから、それは、関連し、類似の機能で純粋な機能で置換えることがより容易です。

3. 機能モデリング手法
------------

機能的アプローチは、複数の図式表現技法とモデリング表記法で拡張された。このセクションでは、年代順に重要な技法の全貌を提供する。

3.1. 機能フロー・ブロック・ダイアグラム
----------------------

機能フロー・ブロック・ダイアグラム は、システムの機能的フローの、多段で、時間順で、ステップ毎のフロー・ダイアグラム である。そのダイアグラムは、1950年代に開発され、古典的システム工学で幅広く使われた。機能フロー・ブロック・ダイアグラムは、//機能フロー・ダイアグラム//、//機能ブロック・ダイアグラム//、あるいは//機能フロー//としても参照される。

機能フロー・ブロック・ダイアグラムは、システムのためのステップ毎の操作やシーケンスを支援する、通常詳細を定義するが、しかしそれらは、システムの開発や制作におけるプロセスを定義するため効果的に使われる。ソフトウェア開発プロセス もまた、幅広くFFBDを使う。システムの文脈で、機能フローのステップは、ハードウェア、ソフトウェア、人材、設備、及び手順の組合せを含むかもしれない。FFBD手法で機能は、実行の論理的順序で組織化され、描かれる。各機能は、それの他の機能の実行と完了との論理的関係で示される。機能名でラベル付けされたノードは、各機能を描く。左から右への矢印は実行の順序を示す。論理記号は、機能の順次または並列実行を表す。

3.2. HIPO と IPO
---------------

//階層的入力処理出力//HIPO は、1970年代に普及した、システムのモジュールを階層的に表現し各モジュールを文書化するための、システム分析設計支援と文書化技法である。

それは、要求を開発し、設計を構築し、そして自動化された待ち合わせを示すためのエキスパート・システムの実装を支援するため使われた。検証は、設計と実装の方法のため体系的に行われた。

システムの全体設計は、HIPOチャート、または構造チャート を使って文書化される。構造チャートは、組織チャートに現れるそれと類似であるが、付加的詳細を示すため変更された。構造チャートは、情報の幾つかのタイプを表示するため使うことができるが、データ構造 あるいはコードのいずれをも表示するのに最も共通的に使われる。

3.3. N2 チャート
------------

N2チャート は、システム要素間の機能的又は物理的インタフェースを表現する、マトリックス形式でのダイアグラムである。それは、機能的及び物理的インタフェースを体系的に識別し、定義し、表にし、そして分析するため使われる。それはシステム・インターフェースと、ハードウェア及びソフトウェア・インタフェースに適用する。

N2ダイアグラムは、データ・インタフェースを開発するため、主にソフトウェア領域で、広範囲に使われた。しかしながらそれはハードウェア・インタフェースを開発するためにも使える。基本的な N2 チャートは、図２に示されます。システム機能は対角線上に置かれる；Ｎ ｘ Ｎマトリックスでの正方形の残りは、インタフェースのインプットとアウトプットを表す。

3.4. 構造化分析及び設計技術
----------------

構造化分析及び設計技術 は、ソフトウェア・アプリケーションのスケッチを構築するダイアグラム的表記で、機能の階層としてシステムを記述するための、ソフトウェア・エンジニアリング手法 である。それは、エンティティとアクティビティを表すビルディング・ブロックとボックス間を関係づける矢印を提供する。これらのボックスと矢印は、関連する非公式な意味論を持つ。 SADTは、連続する詳細さのレベルを使い、与えられたプロセスの機能分析ツールとして使われる。SADT手法は、産業情報システムで使われるIT開発のユーザー・ニーズを定義することを可能にするが、しかしまた、アクティビティの製造プロセスや手順を説明し表現することも可能にする。SADTは、一つの会社の機能とそれらの関係性を記述することによって、あらゆる事業体の特手化された機能的ビューを提供する。これらの機能は、販売、受注計画、製品設計、部品製造、及び人材資源管理のような、会社の目的を満たす。SADTは、シンプルな機能的関係描くことができ、そして異なった機能間でのデータとコントロールの流れの関係性 を反映できる。IDEF0形式論は、ダグラス・テイラー・ロスによって1985年に開発されたSADTに基づいている。

3.5. IDEF0
----------

IDEF0は、情報システムと事業プロセスの分析、開発、リエンジニアリング、及び統合、あるいはソフトウェア工学分析のための機能的モデリング言語を提供する、製造機能を記述する一つの機能モデリング手法論である。それは、ソフトウェア工学分野でのモデリング言語であるIDEFファミリー手法の一員であり、機能モデリング言語SADTで構築される。

IDEF0機能モデリング手法は、組織またはシステムの意思決定、行動、及びアクティビティをモデル化するため設計された。それは、ダグラス・テイラー・ロスとSofTech社によって開発された、確立された図式モデリング言語構造化分析及び設計技術 から派生した。そのオリジナル形式では、IDEF0は、図式モデリング言語の定義とモデル開発の包括的方法論の解説の両方を含んでいた。米空軍は、システムの機能的観点を分析し、コミュニケートする機能モデリング手法の開発をSADT開発者に委任した。IDEF0は、シンプル化されたグラフィック手段を通して、システム分析の組織化の支援と分析者と顧客間の効果的コミュニケーションを促進するべきである。

=== ビジネス・プロセス・モデリング表記法