目次
はじめに ( 動機 )
UMLで今でも生き残っていて、かつ実務で一番使う図はクラス図だと思っている。
そしてクラス図を書くとき、読むとき、いつも悩むのがこれ。
- この矢印、なんだっけ?
- 向き、どっちだっけ?
- 「依存」と「関連」と「集約」、どう読めばいいんだっけ?
UML の知識不足というよりも、クラス図を「どう読むか」というルールが共有されていないことが混乱の原因だと思う。
ってなわけで、対策用のチートシートを作ったよ。
- クラス図で使うすべての矢印を対象に
- 矢印を「文章」として読むテンプレートを定義し
- クラス図の読み書きの迷いを減らす方法
を自分なりに整理してみた。
クラス図チートシート
class-diagram-cheat-sheet-jp.html
-
このチートシートにUMLのクラス図で使う矢印とその読み方を網羅的にまとめてある。
-
C++, JavaScript, Pythonのサンプルコードもつけて、実際どうコードに書くのかも対比した
言語化法:矢印をそのまま文にして読む
すべての矢印を、次の形で読む。
主語(始点) + 動詞(矢印の種類) + 目的語/補語(終点)
これだけ。
これを守るだけで、クラス図が「図」から「文章」に変わる。
重要なのは「向き」。 すべて 矢印の始点が主語。 と「動詞」。 矢印の方向に合った動詞を選ぶこと。
ここを統一するだけで、クラス図の読み違いがほぼなくなる。
これを使うと何が良いか
レビューが速くなる
クラス図を見た瞬間に言語化できる。
設計のミスに気づきやすい
文章にしたときに違和感が出る。
例:
“PaymentData は Repository を参照する”
こう読めたら「あれ?」と気づける。
DIP(依存性逆転)の確認が楽
依存の向きを文章で確認できるので、設計意図が崩れている箇所を発見しやすい。
クラス図はまだ必要か?
AIコーディングがどんどん進んでいる。 人間が最上流をやり、AIが設計を行い、さらにその下にAIが実装/テストする世界になる。
それでも当面は、
- 設計のレビュー
- 構造の監視
- 依存関係のチェック
は人間がやるはず。
そのとき、クラス図を文章として読める能力はむしろ重要になる。
おわりに
クラス図は UML の知識ではなく、
「どう読むかのルール」
を持っているかどうかで、分かりやすさが大きく変わる。
このテンプレートが、クラス図で迷う時間を減らす助けになれば嬉しい。
クラス図チートシート抜粋
一番使うところだけここに貼っとく
サンプルコードとか、詳しくは class-diagram-cheat-sheet-jp を参照のこと
