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