LoginSignup
20
23

More than 3 years have passed since last update.

UML クラス図

Last updated at Posted at 2019-10-03

仕事でクラス図を使うので、調べてみた。
参考URL:http://www.masatom.in/pukiwiki/UML/%A5%AF%A5饹%BFޤδ%F0%C1%C3/#l3423afe

はじめに

クラス図を活用できるツールとして
AmaterasUMLhttp://amateras.osdn.jp/cgi-bin/fswiki/wiki.cgi?page=AmaterasUML)
draw.iohttps://draw-io.softonic.jp/)
などが知られている。
今回はAmaterasUMLを用いて学習。

クラス図

例えば従業員クラスがあるとすると、
クラス図はこのように表す。
image.png
・1段目 / クラス名
・2段目 / フィールド
・3段目 / メソッド

可視性

可視性(private/protected/public)はアクセスレベルごとに左のマークが変化する。
メンバ、フィールドともに上から順に
・public
・private
・protected
・package
である。(↓Amaterasでの表記
image.png
以下のサイトが参考になる。
https://www.ibm.com/support/knowledgecenter/ja/SS4JE2_7.5.5/com.ibm.xtools.viz.class.diagram.doc/topics/cvisibility.html)

クラスフィールド・メソッドとメンバフィールド・メソッド

 名前にクラスとつくものはJavaで言うstaticなものである。
 フィールドまたはメソッドに下線を引いて表す。
image.png

依存

 破線矢印で表す。
 クラス間で関係性があまりないときに用いる。
 Javaでnew()する側からnew()される側へ矢印を引いて表す、らしい…

 例えば会社クラス(Company) 内で
 Employee emp = new Employee();
と書かれていた場合、こんなかんじだろうか…
image.png

集約 

 白塗りの実線ひし形で表す。
 クラス間で「全体」と「部分」の関係にある時の表現。
 例えば部署と社員といった具合である。
image.png

コンポジション

 黒塗りの実線ひし形で表す。
集約の一種で、より一層結びつきが強いときに使う。
「部分」は「全体」と生存期間を共にする、らしい…
ん~…むずかしい。
 一つの「部署」インスタンスは一つの「会社」インスタンスにしか属することができないとして、こんな感じだろうか。
image.png

継承

 白塗りの実線矢印で表す。「汎化」とも言う。
 例えばSEが従業員クラスを継承しているとする。
image.png

 「継承」と聞くと矢印は逆のように思うが、SEや営業など様々な種類を従業員へ「汎化」するとかんがえると納得が行く。間違えそうなので注意が必要である。

実現

 白塗りの破線矢印で表す。
 Javaのインターフェースを表すときに用いる。
 「SE」や「営業」が「勤務」インターフェースを実現していたとする。
image.png

多重度

 ここが一番難しい…

 実践と数字や*、..を使って表す。

 例えば、従業員と会社で

・従業員は必ず会社に属している。
・従業員は一つの会社にしか所属できない。
・会社には0~複数の社員が所属している

ということを表すと、
image.png

 記号についてであるが
「*」は2以上、「..」は~(範囲)を表している。

以下のサイトからとてもわかりやすく説明して頂けた。
https://www.atmarkit.co.jp/ait/articles/0105/02/news002.html)

まとめ

(感想

多重度以外は何とかなりそう。
資格でも多重度はよく出るので注意。

以上。

20
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
23