UMLとはシステムの振る舞いやデータの構造を図にするための記述方法です。
システムの仕様を考える時は、図を使って考える方がわかりやすいです。
UMLはいくつかのバージョンがありますが、最新はバージョン2です。バージョン2だけを理解しておけば大丈夫です。
UMLでは14種類の図が定義されています。しかし、実際に使用する図は4つほどです。
良く使用する図について、以降で説明していきます。
覚えるべきUML4種類
UMLは全部で14種類あります。しかし、覚えるべきUMLの図は4種類です。
- クラス図・・・クラスの定義と関連付けを示す図
- オブジェクト図・・・クラスを実体化させるインスタンスの関係性を示す図
- ステートマシン図・・・イベントの発生によるモノの状態変化を示す図
- シーケンス図・・・オブジェクト間の処理の流れを時系列で示す図
クラス図とオブジェクト図は構造図と呼ばれ、システムの構造を示すために使われます。
ステートマシン図とシーケンス図は振る舞い図と呼ばれ、システムの振る舞いを示すために使われます。
クラス図
クラス図ではクラスの定義や関連付けを示します。
クラスはモノや概念が当てはまります。
クラスの関連はクラス同士を多重度で表現します。
多重度とは1、0..1、*、1..*で表現します。
関連記号 | 関連の意味 |
---|---|
1 | 関連が1つだけです |
0..1 | 関連が0または1つです |
* | 関連が0以上です |
1..* | 関連が1以上です |
多重度のイメージ図
左上の図はクラスAにはクラスBが必ず1つあることを示しています。
右上の図はクラスAにはクラスBが存在する場合があることを示しています。
左下の図はクラスAにはクラスBが複数存在する場合があることを示しています。
右下の図はクラスAにはクラスBが1つ以上あることを示しています。
クラス図の具体例
ハンバーガーショップの商品を管理するシステムのクラス図で考えてみましょう!
ハンバーガーショップは複数の商品を提供しているの、店舗は複数の商品を持っている関係になります。
PlantUMLを使用してクラス図を作成しました!
オブジェクト図
オブジェクト図ではオブジェクト(クラスのインスタンス、要素)の関係を示しています。
クラスを商品として考えると、オブジェクトはハンバーガーやチーズバーガーなどの具体的なモノになります。
オブジェクト図の具体例
ハンバーガーショップの商品を管理するシステムのオブジェクト図を考えてみましょう!
ハンバーガーショップの東京店がハンバーガーとチーズバーガーとポテトを提供しているとします。
ステートマシン図
ステートマシン図とはイベントの発生によるモノの状態変化を表す図です。
ステートマシン図がクラス図とオブジェクト図と異なる箇所は、状態とイベントが図の主役になるところです。
開始状態から始まり、状態1、イベント1発生、状態2のように状態が変化していきます。
ステートマシン図の具体例
ハンバーガーショップの商品を提供する場面をステートマシン図で考えてみましょう!
初期状態(黒い点です)から始まり、最初は注文を受ける前なので、未注文状態です。注文が発生すると、提供準備中に移行します。商品の料理が完了すると提供準備が完了して、商品の提供済みになります。
シーケンス図
シーケンス図とはオブジェクト間の処理の流れを時系列で表した図です。
シーケンス図の具体例
ハンバーガーショップの商品を注文して、提供するまでをシーケンス図で考えてみましょう!
まとめ
この記事ではUMLで実際に良く使われる4つの図について紹介してきました。
UMLでシステムの概要について設計しておくと、後で実装することがグッと簡単になるので、この機会にマスターしておきましょう!