The Dragon Scroll

Be just and fear not.

TFP分割図〜モノ、コト、スルの分割。

Function図とThing図について、覚書き。


まず、TFP分割図を書く手順は以下のとおり。
(1)Thingを洗い出す。
(2)Functionを付加していく。
(3)それらを場(=place)で分かつ。


まずは、Thingの洗い出し。
やはり、リソース系から洗い出した方が、
やりやすいでしょう。
社員、顧客、商品…、いわゆる「モノ」ですね。


次に、イベント系。
このイベントという言葉に間違えてはいけないこと、
それは、「Thingのイベント=イベントの結果、記録」
であるということ。
それは、現実世界の、「帳票」をイメージすると
分かりやすいと思う。
何らかの業務の結果として、「帳票」が残る。
これが、Thing図でいうイベント。
発注、入庫、仕分、取引…、「コト」と呼ばれるもの。


ここまでが、Thing図。これが、ER図に落とせる。
但し、Thing図は、クラス図によって表現されたオブジェクト指向
モデルの世界なので、それをリレーショナルデータベースの
ER図に落とし込もうとすると、「インピーダンスミスマッチ」が
発生する。この辺りは、さもありなんといったところ。


Thing図に対して、Function図は付加的なモデル図になる。
Functionとは、イベント動作のことである。
この動作の結果、Thingのイベントが派生する。
発注処理、入庫処理、取引業務…、「スル」と呼ばれるもの、
それが、Function。
Thingのイベントと比較すると、この名称が類似していることが
わかる。
萩本さん曰く、ここは、寧ろ全く同じになってもおかしくなく、
ステレオタイプ違いのクラスが存在することになる。


この例からわかるように、DFDとしてはレベル1から2程度が
Functionの粒度と言えそうです。


さて、最後にPlace図。
これは、Function図+Thing図を、分類していくための、
「場」を提供するためのモデル図という考え。


T→F→Pと、モデリングを行うことで、
きっちりとオブジェクト指向的にモノ、コト、スルを
分割することができる。