モデリング記法いろいろ

UMLはUnifiedモデリング言語ですがUniversalモデリング言語ではありません。UMLを使うと普通必要な範囲のモデリングはほとんどカバーできますし、UML2.0になって基盤となるセマンティクスもしっかりしたものになっています(複雑すぎると言う批判も有りますが)。しかし、必ずしもUMLを使わないとモデリングが出来ない、というものでもありません。

例えば、XMLでモデリング対象の構造をしっかり規定すればUMLのクラス図と同様の効果を持つ文書構造が出来上がります。もっと緩やかにオフィス文書の延長でPowerPointやExcel、更には単純な文章で記述することも可能でしょう。書き方がどれだけ厳密かという点に違いが有ると思いますが、入りやすさという点では案外まずUML以外で書いてみるのは早道かもしれません。後で厳密さを上げてゆけば良い訳ですから。

メタモデリングツールの代表としてこれまで良くEMFを取り上げていますが、EMFのネイティブな(メタ)モデルの形式(ecore形式)はXMLです。それなら、最初からテキストエディタのテンプレート機能等を活用してXML文書の形でモデルを作成し、欠けている箇所をXML文書変換ツールで変換・補足してゆけば、ダイアグラム系ツールのお世話にならずに済みそうです。テキストベースだと何が書いてあるか分り難いという声もありますが、ソースコードもテキストです。ダイアグラムにすれば何でも途端に理解出来るようになる、という訳ではありません。

しかしながら、ダイアグラム系ツールの利点はやはり一見して全体が見渡せるという点だと思います。ダイアグラムが複雑になった場合には、ハイレベルで全体像を表現するようなダイアグラムを用意することが必要になると思います。そうしないと、XMLのようなテキスト系の記述の方がシンプルに思えてきます。

DSLの世界では両方のアプローチがあります。またMicrosoftのOsloのM言語はLanguage-oriented programmingという分野に入るようですが(wikipediaで調べてみてください)この世界は今のところテキスト中心のようです。

結局、モデリング分野で仕事をする人はやはり両方扱えるようにしておかないといけないですね。

モデリング記法いろいろ