連載

Visioで始めるUMLモデリング

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

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

クラス間の関係の種類

 オブジェクト指向では、クラス間の関係として「継承」がよく使われる。継承とは、あるクラスの機能内容を、そのままほかのクラスが引き継いでいる関係のことである(詳しくは「改訂版 C#入門:継承とインターフェイス」や「改訂版 プロフェッショナルVB.NETプログラミング:継承とポリモーフィズム」をご一読いただきたい)。この継承は、UMLでは「汎化」と呼ばれ、継承元の関連端を小さな△(三角形)にして表現する。

クラス間の関係に対する汎化の設定
継承元の関連端を小さな△(三角形)にして汎化(=継承関係)を表現する。
  [汎化]図形を図面ページへドラッグ&ドロップする。後は前回の「クラス図における関連の設定」と同じ操作だ。

 クラス間で全体と部分を構成する関係は、UMLでは「集約(=共有集約)」の関係と呼ばれる。似たような関係に「コンポジション(=合成集約)」というものがあるが、こちらはその全体と部分の結び付きが強く、全体が消えてしまえば部分も消滅してしまうような関係(=ライフサイクルが一致する関係)のことである(集約とコンポジションについて詳しくは「【改訂版】初歩のUML:関連クラスと集約、コンポジション」を参照されたい)。

 UMLでは、集約は◇(白ひし形)で表現され、コンポジションは◆(黒ひし形)で表現される。次の画面は集約とコンポジションの関係を設定しているところだ。

クラス間の関係に対する集約とコンポジションの設定
クラス間の関係に対する集約(共有集約)とコンポジション(合成集約)を設定しているところ。
  [2項関連]図形を図面ページへドラッグ&ドロップする。後は前回の「クラス図における関連の設定」と同じ手順を実行すればよい。なおコンポジション(合成集約)の場合は、[2項関連]図形ではなく[合成]図形を使ってもよい。
  「線」図形をダブルクリックして、[UML 関連プロパティ]を表示する。
  集約(共有集約)を設定するために、[関連端]の[集約]項目から「共有」を選択する。プロパティを確定して閉じると、設定した関連端が◇(白ひし形)に変わる。
  コンポジション(合成集約)を設定するために、[関連端]の[集約]項目から「合成」を選択する。プロパティを確定して閉じると、設定した関連端が◆(黒ひし形)に変わる。

 UMLでは、そのほか、関連や集約ほど強くない関係を表す「依存」関係など、さまざまなクラス間の関係が定義されているが、それらの関係は基本的に図形ステンシルの[UML 静的構造]の中からドラッグ&ドロップで利用できる。

図形ステンシルの[UML 静的構造]の内容
UMLクラス図の作成に必要な図形が、図形ステンシルの[UML 静的構造]の中にそろっている。

 本稿で解説したUMLクラス図は基本的なものだけで、UMLクラス図にはもっと多くの図形や関係、要素などが定義されている。UMLをより深く理解するには、この連載からステップアップして、UML関連の本などで学習する必要がある。参考までにUML関連のWeb記事や本などを紹介しておく。

  • @IT:IT Architectの「【改訂版】初歩のUML」「ここから始めるオブジェクト指向」
  • 書籍:『UML辞典』(翔泳社)
  • 書籍:『実践UMLによるシステム開発』(共立出版)

 今回は、クラス図を拡張する方法について紹介した。本連載の最終回である次回は、クラス図以外のUMLモデル図や、Visio for Enterprise Architectの機能、データベース・モデリングについて簡単に紹介したい。End of Article


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


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間