家族について考えるパパのブログ

普段の生活をいかに快適に過ごすかを考えて実践をしていくブログ

UMLについて

こんにちは!

今日は、UMLについてちょっと調べてみたのでそれをまとめてみます。

 

そもそもUMLって?

UMLとは、Unified Modeling Languageの略称です。

UMLは、システムを視覚化することや仕様や設計を文書化するための表現方法。

 

クラス図

UMLのクラス図(Class Diagram)は、クラスやインスタンス、インターフェースなどの性的な関係を表現したもの。

 

クラスの階層を表したクラス図

1.クラスは長方形で表し、以下の3つのものが順番に書かれています。

 ・クラスの名前

 ・フィールドの名前

 ・メソッドの名前

2.矢印でサブクラス(子クラス)からスーパークラス(親クラス)の方向へ向かう。extendsを表す

3.abstractクラス(抽象クラス)の名前は斜体で書く。

4.staticフィールド(クラスフィールド)の名前には下線をつける。

5.abstractメソッド(抽象メソッド)は斜体で書く。

6.staticメソッド(クラスメソッド)の名前には下線をつける。

 

インタフェースと実装クラスを表したクラス図

1.△のと破線の矢印はインタフェースと実装クラスの関係を表している。

2.矢印は実装クラスからインタフェースに向かっている。

3.UMLJavaのインタフェースを表現する場合は <<interface>> と書く。

 

集約を表したクラス図

1.白抜きのひし形がついた線は、集約を表す。

 

アクセス制御を示したクラス図

UMLではアクセス制御を表現したい場合、メソッドやフィールドの名前の前に記号をつける。

1. + :publicなメソッドやフィールドを表す。どこからでもそれにアクセスすることができる。

2. -  :privateなメソッドやフィールドを表す。クラスの外からそれにアクセスすることはできない。

3. # :protectedなメソッドやフィールドを表す。それにアクセスできるのは同じクラスか、サブクラス、および同じパッケージ内のクラスだけ。

4. ~ :同じパッケージ内からのみアクセスできるメソッドやフィールドを表す。

 

シーケンス図

UMLのシーケンス図(Sequence Diagram)は、プログラムが動くときに、どのメソッドがどういう順番で実行されるか、どのような事象がどういう順番で起きるかを表現したもの。

 

クラス図とシーケンス図の対比関係

クラス図は「時間によって変化しないもの(静的な関係)」を表すのに対して、シーケンス図は「時間に従って変化するもの(動的な振る舞い)」を表す。

 

終わりに

UMLは、システムの流れなどを表す際の共通言語だということなので、これを機に覚えてみるといいかもしれません。

僕も勉強します。。

 

読んでいただきありがとうございました。

 

※よくわからなかった言葉集

abstractクラス

staticフィールド(クラスフィールド)

abstractメソッド

staticメソッド(クラスメソッド)

集約

 →「持っている」関係を「集約」(aggregation)と呼ぶ。インスタンスを持っていれば、個数に関わらずその関係は集約。

 

参考にしたサイトなど

http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20010330/1/?rt=nocnt

http://www.uml.org/what-is-uml.htm

http://objectclub.jp/technicaldoc/uml/umlintro1

Java言語で学ぶ デザインパターン入門