本記事は機械学習の徹底解説シリーズに含まれます。
初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。もし致命的な間違いがあればご指摘いただけると助かります。
IDEF0とは
IDEF0を真面目に説明しようとすると,かなり抽象的な説明になってしまいます。とりあえず,ここはwikipediaさんを頼ってみます。
IDEF0 (機能モデリングのための統合化定義)は,情報システム,事業プロセス,あるいはソフトウエア工学の分析,開発,リエンジニアリング及び統合のためのモデリング言語を提供する,製造機能を記述するための機能モデリング手法である。
Wikipedia「IDEF0」
噛み砕いてみましょう。要するに,IDEF0は,何か「活動(activity)」を行う際に物事を円滑に進めるため,または活動を俯瞰して把握するために用いられるモデリング手法です。IDEF「0」と言っているくらいですので,IDEFはシリーズ化しています。例えば,IDEF0は機能モデリングであり,IDEF14はネットワーク設計に関するモデリング手法になります。本記事では,簡単な問題設定に対してIDEF0を書いていきます。IDEF0に関して詳細を説明することはしません。
問題設定
IDEF0を利用するための対象は「朝起きて美味しいコーヒーを淹れてから家を出る」行為とします。観点は「25歳会社員男性」です。なお,前提として,今回はコーヒーを淹れる行為以外は家の中で行わないものとします。以下に,作成したIDEF0におけるA0トップレイヤーを示します。
豆挽き設定は,豆の粗さや豆の種類,豆の量などを表します。淹れる設定はお湯の温度,蒸らす時間,流水速度などを表します。以下に,作成したIDEF0を示します。
考察
上図は,あくまでも理想の条件下におけるIDEF0になっています。例えば,出発時間がA2「湯を沸かしている」ときに迫ってくる場合も考えられます。そのためには,起床時間が出発時間よりも十分早いという条件が必要になります。
また,「豆挽き設定」と「淹れる設定」には相互依存性があると考えられます。例えば,濃いコーヒーを飲みたいとき,一般には豆は細かく挽いて流水速度は小さくします。このことから,「設定」を1つのオブジェクトとしてまとめておき,それをA3「豆を挽く」と「コーヒーを淹れる」に分岐させるというIDEF0も考えられます。
加えて,この「設定」はドリッパーやフィルター,カップとも相互依存性が考えられます。例えば,夏に水出しコーヒーを楽しみたい場合はドリッパーとフィルターの代わりに水出し用濾し器を利用したり,冬に温かいコーヒーを楽しみたい場合は保温性の高いカップを使用したりします。このことから,「用具を用意する」というChild Diagramを新たに作成して,そこからMechanismを生成するというIDEF0も考えられます。
A2「湯を沸かす」とA3「豆を挽く」はそれぞれ独立しており,両者ともA4「コーヒーを淹れる」のトリガーとなっています。このことから,A2とA3は時間のかかりそうな方から手をつけることで,効率的にA4「コーヒーを淹れる」を行うことができます。A0におけるOutput「ゴミ」はA4「コーヒーを淹れる」において生成されることが分かります。そのため,例えば出発時間がA4以前で迫ってしまった場合,Outputは生成されないことになります。
一方で,Output「ゴミ」に使用済みのティファールやミルなども含める場合は,それぞれのDiagramでOutput「ゴミ」を構成する要素が生成されることが分かります。また,ティファールと電気の代わりにヤカンとガスを利用することもできます。
コメント