シリーズUML等各種ダイアグラムのエラーチェック体系化です。
現在「いろんなダイアグラムをRDBにいれよう!」化計画、
をやっていて、
・クラス図
・ER図
・アクティビティ図
・ユースケース図
・DFD
をやりました。で、このあとEAの成果物(ダイアグラム)にいこうとしています。
今回は機能構成図(DMM)です。
■機能構成図(DMM)とは
機能構成図(DMM)は、
機能構成図(DMM)
http://www.meti.go.jp/policy/it_policy/ea/gainen/product/dmm/index.html
にある説明のとおりで(以下斜体は上記サイトより引用)
・ 中央に分析の対象とする機能名を書く。
・ レベル0(最上位階層)では、必ず8個をうめる、下位レベルは、最低3個をうめる。
・ 機能の分析なので、機能名は動詞(~をする)、あるいはそれに準ずるものであること。
・ 「管理」など機能の内容があいまいな用語を使用することは避ける。
・ 迷う際は1つ下の階層の機能構成図(DMM)を作成して、バランスをチェックする。
・ 作成した機能構成図(DMM)にリファレンス番号を入れる
は?
こんな図
です。
■RDBにいれる
ってことで、これは、○×(三目ならべともいう)のように線をかき、真ん中に親の機能名、周りにそれの子の機能名を書きます。
子の機能を細分化するときは、その機能に→をかいて、また、○×(三目ならべともいう)のように線をかき・・・(以下再帰的に続く)
ってことは、機能がノード、親と子を結ぶ部分(○Xの図間の→、これは、○Xの図の真ん中とまわりの関係でもある)がエッジになります。
ただし、ここに書いた、
・リレーション(アーク)の親子において、親1つ、子一個以上の場合(木構造)
→子に親IDを入れておくだけでOK
に相当しますので、エッジの関連部分はいらず、機能名に親機能IDを入れればいいことになります。
なので、RDBに入れると
機能テーブル(機能ID,機能名、親機能ID)
となります(親機能IDがNULLのものがトップになります)。
■機能構成図(DMM)の意義
このDMMの機能は、プロセスですから、ユースケース図のユースケースからだろうが、アクティビティ図のアクティビティとか、DFDのプロセスとかから出せます。
じゃ、いみないじゃーん
っていうと、それは違います。
発想が逆で、このDMMを作ってから、アクティビティ図などに展開していきます。
そこで、DMMは考えるきっかけ、ドキュメントだと目次に相当していくものです。
時間的にもアクティビティ図より先に作るものなので、アクティビティ図からつくることはできません。むしろ、DMMをつくり、それに関連するような形でアクティビティ図を作るといった形になります。
そーいう、とっかかりの中間成果物として、DMMの意義があります。
P.S 逆に言うと、そのぐらい大きなレベルになると、データ入出力を書ききれない(わからないとはいわないけど)ので、アクティビティ図、DFDとかはあんまりなじまないのかも?