2009年11月08日
モデル表記法の守・破・離
「守・破・離」という言葉がありますが、この考え方は、UMLのようなモデルの表記法にも当てはまると最近思いました。
「守」はUMLを利用することです。
○守
設計でモデリングを行う場合に、新規に始める場合で業界標準のモデル記法がない場合には、UMLを使うのが現在ほぼ唯一の選択肢であるように思います。
この時点では、UMLの仕様に忠実にモデルを作成し、「自分たちに必要なダイアグラム(図)」「それぞれの図で使う要素」「それぞれの要素が意味するもの(=ソースやテスト項目など、何に対応するのか)」「モデルの構成」「ダイアグラム間の関係(=設計の進め方)」を探っていくことが必要です。一般論での「UMLが効果を発揮するまでは3年あるいは3回の開発」というのは、これらの内容が固まるまでの期間、と言えます。
○破
この「守」の段階を達成すると、モデルに自分たちなりのルールができはじめます。多くの場合、それは「色」か「ステレオタイプ」です。例えば、「灰色は既存(過去に実装済み)の項目」などのルールです。あるいは、同じクラスでも、ステレオタイプをつけることで、区別して表記するようになります。
この段階になると、自分たちのやり方に合わせるために、UMLのルールから逸脱する場面も出始めます。その方がわかりやすく効率的だからです。例えば、機能の実装追跡のために、ユースケース要素をクラス図に配置してクラスとの関係を明示する、などのようなことです。
ツールによってはこうした例外を認めないものがあり、自分たちの作りたいモデルが作れない場合があります。この段階でツールを変えるのは容易ではありませんが、先を見通していなかったための「授業料」と言えるかもしれません。
こうした独自の工夫を重ねることで、自分たちにとってよりよいモデル(とその作成方法)が蓄積されていきます。
○離
この段階になると、「別にUMLである必要性はないんじゃないの?」と誰かが気づきます。「クラスに色やステレオタイプを付けて区別してるけど、そもそも同じクラス要素じゃなく、別々の2種類の要素の方が良いのでは?」と誰かが気づきます。
それこそが、昨今話題のDSL(ドメイン固有言語)です。最終的には、自分たちのため(あるいは自分たちの業界のため)だけのモデル記法が効率的、というところにたどり着くと思います。
「じゃあ、そもそも統一規格であるUMLを使う必要は無いのではないか?」という意見もあると思います。自分たちにとって最適なDSLを作成できるのであれば、その意見の通りです。しかし、この「最適」を導き出すためには、共通の土台であるUMLから、段階を経て試行錯誤する必要があるというのが私の考えです。

