6
0

UMLクラス図とは

クラス、プロパティ、メソッドやオブジェクト間の関係性を図にまとめたものです。
UMLは、オブジェクト指向のプログラミングのアプローチを記述するためのモデルとして考案されたものです。

属性と操作

「クラス」には「属性」と「操作」がついてきます。
「属性」はクラスが保有する要素を意味します。
「操作」ではそのクラスで実行可能な内容が記述されます。
以下のクラス図を例にすると、「バスケットボール選手」というクラスの中には「選手名」「背番号」という「属性」があり
「ドリブル」「パス」「シュート」「リバウンド」「ブロック」という「操作」があると言えます。
また「属性」は「クラス」の下に、「操作」は「属性」の下に記載します。

スクリーンショット 2023-11-26 14.37.07.png

画像には「属性」と「操作」の左に「+」と「−」がありますが、これはそのシステムにアクセスできる範囲はどこまでかを設定しています。
クラス図で可視性を表現する場合、要素名や操作の左側に記号で可視性が記入されます。
可視性を表現する記号は以下の4種類です。

「+」・・・すべてのクラスからアクセス可能
「−」・・・自クラスのみアクセス可能
「#」・・・自クラス及び継承されているクラスからアクセス可能
「~」・・・同一パッケージ内のクラスからアクセス可能

集約

クラス同士の関係が「全体と一部」であるとき「集約」として表現されます。
バスケットボールチームを例に例えると、[バスケットボールチーム]クラスという全体の中の一部として「監督」「バスケットボール選手」クラスがあるイメージです。

スクリーンショット 2023-11-25 16.14.05.png

依存

クラスの間に「使用する」関係があることを表します。
呼び出し元の操作の中でパラメータが依存先のクラスで使用されます。
以下のクラス図を例にすると「監督」や「バスケットボール選手」がなんらかの違反を犯すと「審判」がペナルティを課すイメージです。

スクリーンショット 2023-11-25 17.08.21.png

汎化

汎化関係とは、あるモデル要素(子)が他のモデル要素(親)に基づいて作成される関係です。
汎化関係を開発に利用すると「バスケットボール選手」クラスに分類される「シューター」クラスを開発するときは
「バスケットボール選手」の属性と操作を引き継いで、差分である「3Pシュートを決める」操作だけ開発すれば良くなります。

スクリーンショット 2023-11-25 17.33.59.png

最後に

今回は、以前に作成した以下のクラス図を基に概要をまとめました。

スクリーンショット 2023-11-26 15.16.04.png

VSCodeにDraw.ioをインストールして作成しました。
https://blog.serverworks.co.jp/vscode-drawio-setup

何か誤り等があればご指摘いただけると助かります。

6
0
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
6
0