UMLとは?UMLにはどんな種類がある?
こんにちは!CODE CLUB965のKです!
今回は設計について書きたいと思います。
みなさん、コーディングの前に設計はしているでしょうか?
UMLとは何か?
UMLという言葉は聞いたことがあるでしょうか?
UMLとは、「Unified Modeling Language」の略で、日本語では「統一モデリング言語」と言います。
わかりそうで、わからないですね。笑
モデリング = 設計と考えるとわかりやすく、設計書を作成するための言語です。
設計書はプログラミングと違って人間が理解するものなので、書こうと思えば自由に書けてしまいます。
色分けをしてみたり、文字の大きさを変えてみたり、イラストを入れてみたり、自分1人で作成する分には工夫すればするだけ見やすくなります。
しかし、作成した設計書を他の人にも見てもらうとなると逆に、工夫をすればするだけ、他の人は設計書を理解するのが大変になります。
色分けがされているのであれば、色ごとの意味を理解しないとならないですし、文字の大きさに意味があるのであれば、文字サイズごとの意味を知らなければなりません。
「今回作成した設計書はこちらになります。ちなみに、表記のルールはこちらになります。」
と言った形で、表記のルールから確認しないとならないのは少し大変ですね…。
そこで、UMLの登場です。
UMLでは、作成する設計書ごとに書き方が決まっています。
従って、UMLで書かれた設計書に関してはルールの確認からする必要が無いのです。
一度、UMLの書き方さえ学んでしまえば、他の人がUMLで作成した設計書を簡単に理解することができます。
また、設計書を作るたびにどのように設計書を作成しようか悩む必要がありません。
作成する設計書が決まったら、UMLのルールに従って書いていけば良いのです。
UMLの一覧
UMLのうち、代表的なものでよく作成されるものを見ていきましょう。
1. クラス図
プログラムの「クラス」と「クラス」同士の関連を定義した図になります。
システムの全体像を捉えるのに便利なため、よく作成されます。
クラスの定義としては、「プロパティ」や「メソッド」まで定義することもあります。
2. ユースケース図
「システム利用者がシステムで何ができるか」を表現した図です。
システム利用者のことをアクターと呼び、アクターごとにやれることを表現するのがポイントです。
例えば、システムの利用者として「ユーザー」「システム管理者」の2つのアクターがいるのであれば、それぞれのアクターが何ができるのかを表現します。
3. シーケンス図
システムの処理の流れを記載した図になります。
「クラス図」や「ユースケース図」が静的な図であるのに対して、シーケンス図は動的な図になります。
時系列の概念があり、システムで行われる処理を順番に表現します。
4. アクティビティ図
システム利用の流れを、ユーザーのアクションも含めて記載した図になります。
流れを記載するので、「シーケンス図」と同じく、こちらも動的な図になります。
シーケンス図はシステムの処理にフォーカスされていますが、アクティビティ図はもっと引いてユーザーのアクションまで記載した図になります。
例えば、
【ユーザー】ログイン画面を開く
↓
【ユーザー】誤ったログイン情報を5回入力する
↓
【システム】該当ユーザーのアカウントをロックする
↓
【システム】管理者に該当ユーザーのアカウントがロックされた旨の通知メールを送る
↓
【管理者】通知メールでアカウントがロックされたユーザーを確認する
といったような内容を記載します。
私がよく書くUML
私は、アクティビティ図とクラス図を作成することが多いです。
アクティビティ図は作成をした上でお客様と共有して、システム利用のフローの認識を合わせるのに使います。
また、クラス図はシステムの全体像の把握のために、開発用に作成します。
開発チーム内で共有をしておいて、必要に応じてアップデートもしながら開発を進めていきます。
プログラムの実装が複雑になるような場面では、シーケンス図を作成することもあります。
複雑なロジックを実装する場合には、いきなりプログラムを書くのではなく、まずは処理の流れを整理した方が良いためです。
最後に
今回は、設計に関して書いてみました。
UMLの学習をしたことがない人は、ぜひ学習をしてみて下さい!
そして、今まで設計書を書いたことがない人は、ぜひクラス図から書いてみて、開発するシステムの全体像を整理してみることをおすすめします。
全体像がうまく捉えられて、開発の効率が上がります。
それでは、また!