トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

クラス図

クラス図(UML)

クラスの定義とクラス間の関係を示す図。

UMLでは次の図のように長方形を使ってクラスを表現する。

クラスの各部の表記
項目 表記 備考
クラス パッケージ名::クラス パッケージ名は省略可
属性 可視性 名前::型=デフォルト 名前以外は省略可
操作 可視性 名前(パラメータリスト):戻り値 名前以外は省略可

型はCやJavaと同様のキーワードを使う。

 可視性

クラスの隠せ選るかを実現する。他のクラスパッケージからその項目を参照できるか否かを指定する。次の記号を使って表記する。

記号 可視性 意味
+ public どのクラスパッケージからもアクセス可能
# protected パッケージと派生したクラスからアクセス可能
- private 同一クラスないからのみアクセス可能
~ package 同一パッケージ内でのみアクセス可能

可視性とそのアクセス範囲

可視性 すべてのクラス 継承したクラス 同一パッケージ 同一クラス
public
protected ×
package × ×
private × × ×

 

動物クラスAnimal
クラス クラス パラメータ 可視性
動物 Animal --- --- ---
名前 name --- String private
鳴く cry 無し void public

 関連

クラス間の関係を実線でつないで表現する。

ロール名
関連先のクラスに対する役割を示す名前
多重度
関連先のクラスに対する数を示す。次の表の用に表現する。
表現 意味
数字 数字で示された個数
* n 個数が特定されていない
1..5 9..* 範囲を示す

 集約

あるクラスが他のクラスと関連しており、そのクラスが関連先のクラスの一部となっていること。関連先のクラスがなくなってもそのクラスはなくならない。

関連先のクラス側に白抜きの菱形を書く。

 コンポジション

あるクラスが他のクラスと関連しており、そのクラスは関連先のクラスがなくなると一緒になくなってしまうこと。

関連先のクラス側に黒塗りの菱形を書く。

 継承

あるクラスを元にして新しいクラスを作れること。元になるクラススーパークラス、新しくできたクラスサブクラスという。

継承はアクター、ユースケースの汎化と々記号を使う。サブクラスカラスーポークラスに向かって白抜き矢印を引く。

 インターフェース

publicな操作の名前だけがあり、属性や操作の定義のない特別なクラスのこと。表記にはラベル表記とアイコン表記の2つがある。

ポリモーフィズムを実現するできる。

 実装

インターフェースで定義した操作を実際に定義すること。


[オブジェクト指向開発]