モデル図とプログラムはどちらが分かりやすいかという議論があります。もちろんモデル図の方が分かりやすいはずですが、こういう議論が成立するほど、モデリングはプログラミングと比較して駄目なことが多いのも事実です。特に慣れた人ほど、ハッカーな人ほど、プログラムを好みます。
そこでモデリングするとき、プログラムコードをどのようにするかです。基本的に設計は実装に依存せずに、つまりプログラムコードと関係なく、作るものです。しかしここではモデルの説明として、プログラムコードを使うコツを紹介します。
プログラムコードはモデルの説明、もっと言えば、意味論を与えるものとして使えます。自然言語(日本語)で記述するよりも明確になる場合も多いです。これを使いこなすコツは、プログラムコードは疑似コード(一部の記述が日本語で掛かれていて、動作だけが分かる程度のコード)レベルか、もっと概略的なスケッチレベルのコードがいいでしょう。注目しなくていい機械的なところをプログラムで記述し、日本語による説明を省くのがコツです。
プログラムコードに対するメトリクスは多くあります。プログラム行数から変数や関数の個数、サイクロマティック数、モジュール凝集度など多くのメトリクス値があります。同じようにモデル図に対してもメトリクスがあります。例えば、1つのクラスからリンクが何本出ているか、オブジェクト間の通信数、状態数、状態遷移数などがあります。ここでのコツは、これらのメトリクス値には「相場」があるということです。この相場を守ってモデリングするのがコツです。
例えば、クラスのリンク数の相場は4本から16本ぐらいです。これは幅を大きくしていますが、プロダクトにより相場は変動します。相場観が不明のときは、世の中の優秀な OSSのプログラムコードをリバースエンジニアリングしてモデル図で眺めてみて、相場観をつかんでください。この相場観については次回の記事で「成功へのコツ」としてさらに紹介する予定です。
モデリングの恐らく最大の効果を発揮するコツは、ホットスポットの発見に関するコツです。ここでホットスポットとはこの連載でも何回か出てきましたが、熱い場所=仕様変更が起こりそうな場所という意味です。このホットスポットをどのように見つけるかのコツです。
例えば、要求ヒアリングしていて、ホットスポットを見つけるコツはヒアリング対象者が言いよどんたところ、言葉を濁したところが怪しく、ホットスポットの候補になります。ヒアリング対象者自ら、ここは仕様が曖昧で仕様変更があると明示したときはもちろんホットスポットです。設計モデリングのとき、大まかな入力しかないところもホットスポットです。大まかな粒度の入力に対して、詳細な出力のモデル図を描こうとしても、大きな想像力が必要になります。まさにホットです。火傷をするぐらいのホットスポットです。このホットスポットが“匂い”で分かるようになれば、一流のプロです。
モデル図の中のオブジェクトのレイアウト(配置)に関するコツです。モデル図はオブジェクトのレイアウトだけで分かりやすさと見やすさが全然違います。レイアウトは意味論に影響を与えないはずですが、意味が違うのではと思うくらい、重要です。レイアウトのコツは当たり前のことですが、視線を上から下、左から右へ誘導できるように配置してください。決して逆戻りはさせないでください。
普通はモデリングするときもこのように配置します。このレイアウトの規則が破られるのは、新たなオブジェクトを配置する場合などで起こります。プログラムはリファクタリングが必要で、モデリングもリモデリングが必要なように、レイアウトも再配置が必要です。
Copyright © ITmedia, Inc. All Rights Reserved.