今回はモデリングで失敗しないだけでなく、さらにモデリングを成功させ、継続するための方法を探ります。失敗しないコツが盾であるならば、成功と持続のコツは矛に相当しますので、これらを学んでモデリングを持続可能(sustainable)なものとしていきましょう。
連載の第1回と第2回ではモデリングの目的や手法、ツールを見てきました。続く第3回ではUMLやSysMLの欠点やモデリングの種類、開発プロセスとの関係を見てきました。そして第4回と第5回ではモデリングの失敗例から学んだコツを探り、第5回の後半ではモデリングの実態調査の結果を見てきました。
前回までの失敗しないための方法がモデリングの防御をする「盾」であるとすれば、今回はモデリングを成功に導く攻撃の武器となる「矛」を学んでいくことになります。この矛と盾を使って、継続的にモデリングを成功させ、プロジェクトを成功に導いてください。この盾と矛がプロジェクトを成功させる極意になります。
成功への道を学ぶ前に、「モデリングが成功した」とはどうした状態を指すのでしょうか。モデル図が「エクセレントだ」と言われるためには、どういうモデル図を描けばいいのでしょうか。モデリングで私たちが目指しているものは何でしょうか。
これに対する直接的な回答は、第1回で紹介した「モデリングの目的が継続的に達成されること」です。例えば、仕様を読者に分かりやすく見せる、コミュニケーションの道具としての役割を果たす、仕様を検証するために使う、コードを生成するなどの目的を達成することです。
しかし今回はこれだけではありません。さらに今回求めるモデリングの成功とは、上記の目的達成が継続的に行われることです。つまり、(たまたま)1回だけ目的を達成したのではなく、作成したモデル図を活用し、参照し、再利用して、継続的に目的を達成し続けることが、今回の記事で紹介するモデリングの成功です。ここではこの継続的に運用して継続的に目的を達成するためのモデリングの方法を見ていくことにします。
前々回と前回ではモデリングの失敗例を見てきました。その中では、モデル図のアンチパターンとも言うべき、「蜘蛛の巣のモデル図」や「集中型のモデル図」のようなパターンを紹介しました。つまり「モデリングで失敗しない」ための第一歩は、これらアンチパターンのモデル図を描かないことです。こうすれば、一見してへたくそと分かるモデル図を作ることはなくなり、恥ずかしい思いをしなくてもすみます。
今回は美しいモデル図、エクセレントなモデル図のパターンを見ていきましょう。最初にモデル図の成功パターンとして紹介するのが「モスク型」モデル図(図1)です。
このモスク型のモデル図は、上位にあるルートが1個で中央部がツリー状になっており、下部は共通化されているために中央部と比較して数が少なくなっています。このモデル図は見やすく、効率の良いモデル図と言えます。
つまりトップダウン方向で設計でき、それを読み解くことも容易な一方、ボトムアップで共通部ライブラリを設計することもできます。このようにモスク型モデル図はトップダウンとボトムアップのサンドイッチで設計でき、容易に読み解くことができる優れたモデル図です。
図2に示すツリー型(ピラミッド型)のモデル図は、モスク型モデル図の共通部がないパターンの図です。ツリー型を用いるときに共通部設計(ライブラリ設計)は別途行うことが多く、モデリングも別の図で記述します。大規模システムになるとライブラリ設計は別にすることも多く、よく出現するモデル図のパターンです。
これはモスク型以上に分かりやすいモデル図です。ツリー型モデル図ではトップダウンで設計が行え、トップダウンに読み解くことができます。最初にモデリングする典型的なパターンになりますので、まずはツリー型でモデリングして、必要に応じて、モスク型のモデル図にするか、共通部を別途モデリングする場合が多いです。
大規模なシステムになると、図3のようにこのツリー型のモデル図が部分図として出てくる階層型パターンになります。全体のモデル図がツリー型になっているか、モスク型になっている場合があります。この全体のモデル図がモスク型であるかツリー型であるかの選択は、モデリング対象に依存して選択します。ただし、内部モデル図では共通部をあまり細かい部分まで作らず(つまり内部はモスク型にせず)、全体の大きな範囲で共通部のモデリングをした方がいいでしょう。
ここで紹介した3つはよく現れるパターンであり、優れたモデル図のパターンです。前回までに紹介したアンチパターンのモデル図にならないように、そして今回紹介したパターンになるようにモデリングしてください。
次にモデル図のメトリクスについて考えてみます。つまりモデル図における要素の個数やリンク数など、頃合いの相場観を見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.