![見出し画像](https://assets.st-note.com/production/uploads/images/128384588/rectangle_large_type_2_26f4b0c7b60e1070a6cfacf8f5e515eb.png?width=1200)
Photo by
tsuyoi_usagi
UMLの勉強メモ2
https://www.youtube.com/watch?v=EKDIY1M_7Kc&list=PLYf0TVKgD6wul4x7wQ_YR1ADIbQjiraAK&index=6
クラス図
要素間の関係を明確にして分解分類をする。
関連(Association)
一般的なくクラス間の関係を示す。
![](https://assets.st-note.com/img/1705831168520-DDCxZsRM4s.png)
これは、学生が講義を受講することを示す。
集約(Aggregation)
部分が全体に属していることを示す。
また、部分が全体と独立して存在できることもある。
![](https://assets.st-note.com/img/1705831537936-Hs1bhpv2xU.png)
車はエンジンを持っているが、エンジンがなくても車は存在できる。
合成(Composition)
部分が全体に対して完全に依存していることを示す。
また、部分が全体と共に生成・消滅するという強い結びつきを示す。
![](https://assets.st-note.com/img/1705831419227-tokEbYOwWT.png)
家がなくなれば部屋もなくなりますが、逆は成り立たない。
依存(Dependency)
あるクラスが別のクラスに依存していることを示す。
依存は一方的で、変更が発生したときに依存している方にも変更が及ぶ可能性がある。
![](https://assets.st-note.com/img/1705831642147-OFogMCqyU9.png)
PDF生成クラスは外部ライブラリに依存していると言える。
汎化(Generalization)
一般的な要素から特殊な要素への派生関係を示す。
![](https://assets.st-note.com/img/1705856921771-ZQGSa6KcqG.png)
また、派生した要素は上位要素から属性/操作/関係を継承する。
実現(Realization)
インターフェースや抽象クラスといったものを具体的なクラスが実現していることを示す。
![](https://assets.st-note.com/img/1705845673970-pQgTOPNF6e.png)
動物クラスと鳥類インターフェースを具体化を行いシマエナガクラスを実現する。
多重度
クラス間の関連がある場合、一方のクラスの1つのオブジェクトに対して他方のクラスのオブジェクトの数を示す。省略可能。
![](https://assets.st-note.com/img/1705849405981-rx6GjhB18W.png)
分解と分類
分析は分解と分類の組み合わせで行っている。
![](https://assets.st-note.com/img/1705857301840-AtsWTBxS9b.png?width=1200)
分解と分類を進めていくことでより正確に分析することができる。
![](https://assets.st-note.com/img/1705857591126-PIPbA6zpnT.png)
![](https://assets.st-note.com/img/1705857701620-3ZSUzmAvXH.png)
クラス図でロジカルシンキングする
色形など見た目の部分を切り落として論理的構造を考える
表現(デザイン)と構造の分離
![](https://assets.st-note.com/img/1705858424536-O3W7A9Z8jb.png)
以上