UML(Unified Modeling Language)とは、プログラムのモデルを表現するための図のことです。
UMLはオブジェクト指向のプログラムについて使用され、それぞれのクラスの関係を示すのに適しています。
主にクラス名とその中身が記述されたボックス、そしてそれらを線で繋いだ関係によって、全体像を把握できるようになっています。
オブジェクト指向では、継承などの便利な機能がある一方で、クラス間に関係性を持たせると全体像を把握する必要が出てきます。
UMLで全体を把握することで、どこで変数が定義されているかなどを見ることで、多重に定義してしまう問題や適切でない参照を減らすことができるようになります。
ボックス
1つのクラスの表記では、下記の3つを含みます。
- クラス名
- データメンバ
- メソッド
データメンバについては、型が重要なので明記しておきたい情報です。
また、データメンバとメソッド両方において、アクセス指定子(publicとか)も重要であるため、明記します。
その結果、1つのクラスは下記のように書けます。
ここで最上段の「human」がクラス名です。
データメンバ「age」はint型であり、アクセス指定子はprivate(-)となっています。
メソッド「talk()」はアクセス指定子がpublic(+)です。
アクセス指定子は下記のようになっています。
- + :public(どこからでもアクセス可能)
- – :private(クラス内のメソッドからならアクセス可能)
- # :protected(クラス内+派生クラスからアクセス可能)
おわりに
今回はUMLの概要について紹介しました。
UMLでは、上記のブロックを繋ぐことでプログラムの構造を可視化します。
特に、継承や委譲でクラス間を繋ぐことが目的であり、複雑な構造を可視化するのに役立ちます。
機会があればこれらについても例を出しながら紹介したいと思います。