【オブジェクト指向】見やすいクラス図を書くためのコツ

オブジェクト指向オブジェクト指向

概要

見やすいクラス図を書くためのコツを記載しています。

クラス図を書く際に、依存関連を示す線が交差して、ぐちゃぐちゃになってしまうことがあると思います。

そのような悩みを解決するための、クラス図の書き方のコツを記載しています。

クラスをグルーピングする

クラスを単に配置しただけだと見にくいので、クラスの機能や役割に応じてグルーピングしてみましょう。
グルーピングは、四角形でくくる + グループの名称を記載しましょう。

また、クラス数が多くなる場合は、1つのクラス図にまとめず、名前空間ごとに1つのクラス図を作ると良いです。(紙に印刷して1枚にできるくらいの量がちょうどいいです。)

それでは、BadケースとGoodケースを見てみましょう。

Bad : 単に配置しただけのクラス図

単に配置しただけのクラス図

Good : 機能ごとにグルーピングしたクラス図

機能ごとにグルーピングしたクラス図

汎用的・共通クラスはグルーピングして、線を引かない

よく線でぐちゃぐちゃになったクラス図を見ることはないでしょうか。
線で複雑となる原因として、多いのが汎用的なクラスや共通で使用するクラスについても1つ1つ線を引いていることが原因だと思います。

ここで言う汎用的なクラスや共通で使用するクラスとは以下を示します。

汎用的なクラスプロジェクトに関連しない、流用性の高いクラス

例) CSVファイル書込クラス、TCP/IP通信クラス、データベースアクセス用クラス

共通的なクラスプロジェクトに依存するが、プロジェクト内の複数箇所で使用する可能性のあるクラス。

このようなクラスの性質として複数クラスから使われることが多く、正直に依存性を表そうとすると線がぐちゃぐちゃになりやすいです。

このような汎用的・共通的なクラスは複数箇所で使われる想定なので、あえて線を引かなくても、クラス関連の本質は掴むことができるので、まとめてしまい、線を引かないほうがわかりやすいと思います。

それでは、BadケースとGoodケースを見てみましょう。

Bad : 汎用的・共通的なクラスにも線を引く場合

汎用的・共通的なクラスにも線を引く場合

Good : 汎用的・共通的なクラスはまとめてしまい線を引かない場合

汎用的・共通的なクラスはまとめてしまい線を引かない場合

インターフェース・基底クラスは上に配置し、線は上から下,左から右に流れるように

クラス図もストーリー性がわかるように、以下のルールを採用すると見やすくなります。

  • インターフェースや基底となるクラスは上に、継承する側のクラスを下に記載する
  • 使うクラスを上に、使われるクラスを下に。(または、使うクラスを左に、使われるクラスを右に)

また、プログラム実行順で初めに動く方が上部にあった方がわかりやすくなると思います。
これらのルールがないと、クラス図のどこから初めに見てよいかよくわからず、わかりにくくなってしまうためです。

それでは、BadケースとGoodケースを見てみましょう。

Bad : 線の向きに統一性がないクラス図

線の向きに統一性がないクラス図

Good : 線の向きに統一性があるクラス図

線の向きに統一性があるクラス図

まとめ

見やすいクラス図を書くには、以下を実践しましょう。

  • クラスをグルーピングする
  • 汎用的・共通クラスはグルーピングして、線を引かない
  • インターフェース・基底クラスは上に配置し、線は上から下,左から右に流れるように

今回は、見やすいクラス図を書くためのコツについて解説しましたが、以下の記事も公開していますのでご参考ください。

【UML】クラス図の関連と継承の書き方を学ぶ
この記事の内容 この記事では、クラス図で関連と継承の書き方を記載します。 インターフェースやクラス間の関係を表すために、クラス図を書く上で必須の内容になります。関連と依存の違いがわかりにくい、理解できないといった方にわかりやすいよう...

コメント