UMLの壁(1)

ツールなしでは便利に使えず

表1●UMLの図の編集機能や,UMLによるモデリング機能を備えるツールの一部。
コード生成とは,UMLで書いた図に対応するソース・コードを自動的に出力する機能。その他の機能もツールによって違うので,詳細は記載のURLで参照されたい

 オブジェクト指向やモデリングとは関係なく,UMLそれ自体が持つ壁もある。

 まず一番大きなものが,専用のツールを使わなければUMLを効果的に使いにくいことだ(表1[拡大表示])。単なる描画ソフトや手書きでも不可能ではないが,これでは生産性が大きく落ちることすらある。

 UMLは,9種類の図の描き方を細かく規定している。それぞれがたくさんの記号を使い,すべて違う意味を持つ。UMLに特化した記号も多い。これを,通常の描画ツールで書くのはかなり面倒な作業だ。図を書くためだけに多くの時間と手間が費やされる。UMLのツールを使えば,UMLで使われる記号や図のテンプレートがあるので,このコストを大きく軽減できる。

 とりあえず思いついた順に図を書いてみて,後からあれこれいじれるのもツールのメリットだ。UMLに特化しているため,図を構成するさまざまな記号を簡単に移動させたり,追加したりできる注10 )。頭の中にあるモデルをUMLで図にしてみて,そこから考えを深めたり,モデルをよりよくしていったりする場合には,ツールはほぼ必須だ。

 また,ツールによっては,UMLの図とそれを実装したプログラムのソース・コードとの整合性を自動的にとってくれる。実際にプログラムをしてみたら,設計された通りではうまくいかず,設計とは違うプログラムを書くといったことは,頻繁に起こる。このとき,設計が書かれた仕様書を同時に変更しなければ,仕様書と実際の実装がずれる。ツールは,この部分を自動的に解決する。仕様書と実装のずれは,以前から存在する問題だ。UMLは図であるために,特に仕様書変更の手間が大きい。それだけツールの必要性が高い。

 とはいえ,ツールも使い方を誤れば有効なものにはならない。ツールを使ったことによるデメリットすら存在する。例えば,豆蔵の萩本氏は「ツールを使うと,適当に書いたモデルでもそれらしく見えてしまう」と指摘する。つまり,ツールを使うと定型的なパターンに自動的になってしまう。実際はそうでなくても,いいモデルであるかのように見えてしまうことがあるという。

UMLの壁(2)

UMLですべて書こうとすると失敗する

 分析や設計の結果すべてを,なんでもUMLで表そうとするとまた壁に当たってしまう。UMLを適用する範囲をしっかり見極めなければならない。

 例えばUMLは,何秒以内に結果が返ってこなければならない,というような仕様の記述手段を一切用意していない。画面遷移も,UMLで書くと逆にわかりにくくなる。データベースの設計には,UMLよりはデータベース専用のE-R図を使った方がいい場合もある。

 このような事実を認識せず,すべてUMLだけで済まそうとすると,重要な部分の分析や設計が抜け落ちてしまうことがある注11 )。「UMLで書けないところは,キャプチャした画面データやExcelの表,PowerPointの資料などを適宜使う。UML以外の資料を排除してはだめだ」(サンモアテック 技術開発2部の高田立士課長)。UMLが向いているところと向いていないところを把握し,上手に使い分けることが大切なのである。

(北郷 達郎、八木 玲子)