クラス図(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つがある。
ポリモーフィズムを実現するできる。
実装
インターフェースで定義した操作を実際に定義すること。