|
|
連載
Visioで始めるUMLモデリング
第2回 Visioを使ったUMLクラス図の拡張
デジタルアドバンテージ
2004/07/29 |
|
|
クラス間の関係の種類
オブジェクト指向では、クラス間の関係として「継承」がよく使われる。継承とは、あるクラスの機能内容を、そのままほかのクラスが引き継いでいる関係のことである(詳しくは「改訂版 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の機能、データベース・モデリングについて簡単に紹介したい。
Insider.NET 記事ランキング
本日
月間