変更に耐えるシステム構造とモデルの関係(上)保守性・拡張性に優れたシステムを作る(3)(3/3 ページ)

» 2006年06月02日 12時00分 公開
[野村佳弘,日立ソフトウェアエンジニアリング]
前のページへ 1|2|3       

2. モデルとモデリング

(1)モデルとは

 オブジェクト指向では、モデルを定義していくことにより分析・設計を行っていきます。モデルとは、ものの構造をある目的に沿った視点で明らかにしたものだといえます。

 飛行機の風洞実験用モデルは、何百人もの乗客が乗るような大きな機体でありながら、音速に近い飛行速度を実現する最適な形を決定するためのものです。翼や胴体、尾翼などは実物と同じ形をしていますが、大きさは数分の1であり、座席とかエンジンは必要ありません。あくまでも、空気の流れを見るなど力学的な情報を得ることが目的です。

 このように、モデルとはある目的を達成するために不要なものは削除し、必要なものだけによる“最小完備な構造”を定義します。

 モデルは「現実世界を単純にしたもの」であり、「深く理解を得るために、その対象をある目的または観点から眺めて、細かくて余分な部分を取り除くことにより、本質的な部分を浮かび上がらせたもの」といえます。

 オブジェクト指向では、このモデルをUMLを利用して定義していきます。

(2)モデリングとは

 モデルを作ることをモデリングといいます。なぜ、モデリングするのでしょうか。モデリングをすると何が良いのでしょうか。

 モデルは対象の理解を深めるとお話ししました。「理解を深める」ことがモデリングの利点です。そして、理解を深める過程で、要求とか機能で不足しているものに気付くことがあります。この「気付き」を与えてくれるのがモデリングを行う最大の利点です。

 つまり、モデリングは、モデルを作る過程で「気付き」を分析者、設計者に与え、「気付き」により対象システムの「理解を深める」ことができます。

 モデリングは、対象を可視化し複数の視点で分析することにより理解を深め、足りないものを気付かせてくれます。モデリングをする過程で、理解を深め、気付きを誘発し、モデルを洗練していきます。そして、モデルにより情報を共有することができます。

 モデリングにより達成される目標は、次の5点です。

  1. 可視化と気付きにより、システムを洗練する
  2. システムの望ましい姿を目に見える形で表現する
  3. システムの構造や振る舞いを定める
  4. 関係者間でモデルやモデリングを通して理解を共有する
  5. 決定した事項を文書化する

3. 視点に基づいた上流工程でのUMLを利用した分析の流れ

 上流工程でのモデリングでは、主にユースケース図、クラス図、シーケンス図を使用し、補助的にアクティビティ図、状態遷移図を使用して、多面的に分析していきます。主にユーザーや業務分析者、システム設計者など、上流工程を担当する人たちに理解してもらうことが目的です。そのため、最初はユーザーの視点で理解しやすく議論を深めることができるようなモデルを作成します。それには、業務フローやユースケース図、ユースケース定義を通して初期の概念クラス図を作成していきます。そしてユーザーと議論することにより理解を深めていきます。

 次に、分析者や設計者の視点で、さらに詳細にモデルを分析していきます。このとき、概念モデルの構造を洗練し、理解しやすいシンプルな構造を検討し、そして拡張性を検討していきます。さらに、必要ならユーザーと議論し、要求と乖離がないかを確認し、概念クラス図を修正していきます。

 この段階では、サービスなどの機能要求を中心としたモデルを定義し、永続性や分散性などの非機能要件については基本的に考えません。

ALT 図1 分析の流れ

 静的な分析、動的・機能的な分析を相互に繰り返しながら、目的に合った本質的な構造を明らかにし、無駄を排除し、単純な構造を定義していきます。

4. ユースケース分析と概念モデリング

 ユースケース分析や概念モデリングは、目的や要求、解決手段などを定義した後に行います。


 次回は概念モデルの分析を解説しながら、変更に耐えるシステム構造を得るための方法を明らかにします。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

注目のテーマ

あなたにおすすめの記事PR