連載

Visioで始めるUMLモデリング

第2回 Visioを使ったUMLクラス図の拡張

デジタルアドバンテージ
2004/07/29
Page1 Page2 Page3 Page4

UMLクラス図の3つの抽象度レベル

 UMLのクラス図には次の3つの抽象度のレベルが考えられる。

  1. 概念レベル:要件定義〜分析段階でのUMLモデリング
  2. 仕様レベル:概要設計段階でのUMLモデリング
  3. 実装レベル:詳細設計〜実装段階でのUMLモデリング

 UMLモデリングでは、このような3つのレベルを、1、2と順番に経て、最終の3の実装レベルに到達すればよい。

 次の画面は、概念レベルのUMLモデル図である。この図では、基本的なクラス間の関係(=システム構造の概要)しか分からない。最初の概念レベルのUMLモデル図では、どのようなクラスがあり、それらがどう関連し合うのかといったシステム概要(とそこでの簡単な業務プロセス)が分かればよい。

概念レベルのUMLモデル図(クラス図)
どのようなクラスがあり、それらがどう関連し合うのかといったシステム概要が分かる。

 さらに次の画面は、仕様レベルのUMLモデル図である。この段階では、クラスが外部に提供するインターフェイスや機能(例えば「[発注]画面を起動する」など)を明確化する。これによりクラスの性格や機能が簡単に定義できる。ただしこの段階では、まだ、メソッドやフィールドの具体的な名前、クラスの内部処理に不可欠な細かなメソッドやフィールド、プロパティなどを考える必要はない。

仕様レベルのUMLモデル図(クラス図)
クラスが外部に提供するインターフェイスや機能(例えば「[発注]画面を起動する」など)が明確化されている。

 次に、この仕様レベルのUMLモデル図をさらに実装レベルにまで落とし込んで、実際にクラスとしてコーディングできる状態に仕上げる。具体的には、フィールドやプロパティの名前を決定したり、クラスに必要なメソッドやフィールド、プロパティを作成したりする。これにより完成できる最終的なUMLモデル図は、本稿がリバース・エンジニアリングで作成した(実装レベルの)UMLモデル図と同等になる。この実装レベルのUMLモデルのサンプル図面は、前回作成したUMLモデル図を参照してほしい。

 以上、Visioで作成できるUMLモデリングについて、クラス図の最も基本的な部分について解説した。しかし、UMLモデリングで記述できるクラス図はこれだけではなく、もっと詳細にも記述できる。次に、Visioで表現可能なクラス間の関係や関連について解説しよう。なお、以降の解説では、UML要素自体の内容や意味についての解説は割愛させていただく。これらに対する理解を深めるには、@IT:IT Architectの「【改訂版】初歩のUML」や「ここから始めるオブジェクト指向」などを参照していただきたい。

Visioで表現可能なクラス間の関連

 前回、クラス図に関連を設定し、その関連にロールや役割を割り当てた。特に必要がなければこれだけでも十分であるが、この関連をさらに詳細に定義することもできる。

 例えば、「メイン画面から[発注]画面を起動する」という関連があるが、これは「メイン画面から[発注]画面を操作する(逆に[発注]画面からメイン画面が操作されることはない)」という1方向の関連である。このような関連方向性は、UMLでは「誘導可能性(Navigability)」と呼ばれ、UMLモデル図では矢印付きの実線で表される。この誘導可能性は、次の画面のようにして設定することができる。

クラス間の関連に対する誘導可能性の設定
クラス間の関連に誘導可能性を設定しているところ。
  前回の「クラスのロールと多重度の設定」と同じように、「線」図形をダブルクリックすると、[UML 関連プロパティ]ダイアログが表示される。
  操作される方(誘導可能性がある方)の関連端の[IsNavigable]チェック・ボックスにチェックを入れる。
  [UML 関連プロパティ]ダイアログの[OK]ボタンを押して確定すると、でチェックを入れた方の関連端が矢印に変わる。

 リレーショナル・データベースではテーブルとテーブルの関連が1つの外部キーで結ばれるが、これと同様に、複数のクラスを特定の1つのキーとなる属性要素に限定して関連付けることができる。UMLではこのキーは「限定子」と呼ばれ、小さな□(四角形)で表される。

 例えば、商品クラスと注文クラスの関連ならば、「商品番号」というキーとなる属性要素に限定して関連付けることなどが考えられる。次の画面の例では、「id」という属性要素を限定子としてクラス間を結び付けている。

クラス間の関連に対する限定子の設定
クラス間の関連に限定子を設定しているところ。
  「線」図形をダブルクリックすると、[UML 関連プロパティ]ダイアログが表示される。
  [UML 関連プロパティ]ダイアログの[カテゴリ]欄から「関連」を選択する。
  [UML 関連プロパティ]ダイアログの[関連端]欄から限定子を設定したいクラスの関連端を選択する。
  [プロパティ]ボタンをクリックすると、[UML 関連端プロパティ]が表示される。
  [UML 関連端プロパティ]ダイアログの[カテゴリ]欄から「限定子属性」を選択する。
  [新規作成]ボタンをクリックすると、[限定子属性]欄に新しい限定子が追加される。
  追加された新しい限定子属性の項目を選択する。
  [プロパティ]ボタンをクリックすると、[UML 属性プロパティ]ダイアログが表示される。
  [UML 属性プロパティ]ダイアログの[カテゴリ]欄から「属性」を選択する。
  限定子属性の名前(本稿の例では「id」)を入力する。
  限定子属性の型(本稿の例では「VB::Integer」)を選択する。
  次々に[OK]ボタンをクリックして、すべてのダイアログを終了する。
  で選択した方の関連端が□(四角形)に変わる。

 さらに前回でも説明したように、クラス間の関係には「関係」だけでなく、「汎化」や「集約」など、さまざまなものがある。続いては、Visioで表現可能なクラス間の関係の種類について解説しよう。


 INDEX
  Visioで始めるUMLモデリング
  第2回 Visioを使ったUMLクラス図の拡張
    1.クラス図に属性要素を追加するには?
    2.クラス図に操作要素を追加するには?
  3.クラス図の抽象度レベルと表現可能なクラス間の関連
    4.Visioで表現可能なクラス間の関係の種類
 
インデックス・ページヘ  「Visioで始めるUMLモデリング」

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH