クラス

くらす



3種類の書き方



上図はUML2.0 Superstructure Specification より

左上は、概念レベルのクラスの例です。
左下は、仕様レベルのクラスの例です。
右は、実装レベルのクラスの例です。

(雑感)
説明が全く足りないので、書き足すつもりです。



グループによる書き方


上図はUML2.0 Superstructure Specification より

このように、グループ分けして書くこともできます。

(雑感)
個人的にはFigure7.27のように書くことはあまり無い気がしますね。
グループにしてしまうと、場合によっては理解しにくいこともありそうな気も。



属性


上図はUML2.0 Superstructure Specification より

  • クラスA::name はString型の属性です。
  • クラスA::shape はRectangle型の属性です。
  • クラスA::size はpublicなInteger型の属性で、多重度は 0..1 です。
  • クラスA::area はInteger型の派生属性で、読み込みのみ可能です
  • クラスA::height はInteger型の属性で、デフォルトの初期値は 5 です。
  • クラスA::width はInteger型の属性です。
  • クラスB::id は クラスA::name を再定義した属性です。
  • クラスB::shape は クラスA::shape を再定義した属性です。Square型はRectangle型の1種です。
  • クラスB::height は クラスA::height を再定義した属性です。オーバーライドしたクラスB::heightのデフォルトの初期値は7です。
  • クラスB::widthはクラスA::widthを再定義した派生属性です。

※派生属性
他の属性の値を元に計算する属性のこと。



関連で記述すると


上図はUML2.0 Superstructure Specification より

Windowクラスの属性である(figure7.26参照)
size: Area
を関連で記述すると上図のようになります。

(雑感)
矢印の根元の多重度は属性にしてしまうと表現できませんね。
size: Area

size: Area[1]
はたぶん同じ意味だと思うのだが・・・。
2005年10月19日(水) 12:50:12 Modified by tokuryo

添付ファイル一覧(全4件)
214d5505a4454807.GIF (2.62KB)
Uploaded by tokuryo 2005年10月11日(火) 12:55:57
c0f10cc4b2f72b13.GIF (4.84KB)
Uploaded by tokuryo 2005年10月11日(火) 12:55:45
2168bc15fd5c6637.GIF (5.75KB)
Uploaded by tokuryo 2005年10月11日(火) 12:30:21
5ab7109fe85178cc.GIF (7.08KB)
Uploaded by tokuryo 2005年10月11日(火) 12:30:09



スマートフォン版で見る