UMLとは(全体像)
UMLは、「Unified Modeling Language」の略で、日本語では統一モデリング言語。システムの構造や動きを、だれが見ても分かるように図で表すための、共通の書き方(記法)のことだ。
ここで一番の勘違いポイント。UMLは「プログラミング言語」ではない。「言語」とつくが、プログラムを書くための言語ではなく、設計を図で表すための「書き方の決まり」。「UMLでプログラムを動かす」わけではない、という点に注意だ。
もう1つ。UMLは1つの図ではなく、複数の図の集まり。目的に応じて、いろいろな種類の図を使い分ける。
詳しく:代表的な図と2系統
ここが心臓部。UMLの図は、大きく「構造を表す図」と「動きを表す図」の2系統に分かれる。代表的なものを表で押さえよう。
UMLの代表的な図
| 図 | 系統 | 何を表すか |
|---|---|---|
| クラス図 | 構造 | クラスの構造や、クラスどうしの関連 |
| ユースケース図 | 構造的な見方 | 利用者(アクター)とシステムの機能の関係 |
| シーケンス図 | 動き | オブジェクト間のやりとりを、時間の流れで表す |
| アクティビティ図 | 動き | 業務や処理の流れ(フロー) |
代表的なのが、クラス図とシーケンス図。
- クラス図 … クラス(設計の部品)の構造や、つながり(関連)を表す。「何があるか」という構造を表す代表だ。
- シーケンス図 … オブジェクトどうしのやりとりを、時間の流れにそって表す。「どう動くか」という動きを表す代表だ。
このように、構造を見たいか、動きを見たいかで図を使い分ける。「UMLは1種類の図」と思い込むと誤りになる。
わかりやすく言い換えると
身近なたとえで整理しよう。
UMLは、「設計を表すための、共通の図の書き方」のイメージ。地図記号のように、みんなが同じルールで描けば、だれが見ても伝わる。要するに、設計を図で共有するための約束ごとだ。
「プログラミング言語ではない」というのは、UMLは設計図であって、動くプログラムそのものではないこと。つまり、図で設計を表すための言語、ということ。
構造図と動き図の違いは、「何があるか(クラス図など)」と「どう動くか(シーケンス図など)」。つまり、見たい角度で図を選ぶわけだ。
試験のツボ
🔴 一番出る:UMLの正体
①システムの構造や動きを、図で表すための共通の書き方(記法)
②主にオブジェクト指向の設計で使う
🔴 次に出る:複数の図の集まり
①UMLは1つの図ではなく、複数の図の集まり
②構造を表す図と、動きを表す図に分かれる
🟡 押さえると安定:代表的な図
①クラス図=クラスの構造や関連(構造)
②シーケンス図=オブジェクト間のやりとりを時間で表す(動き)
よくある間違い
①「UMLは、プログラムを動かすためのプログラミング言語だ」→ ✗ UMLは設計を図で表す書き方(記法)。プログラムを動かす言語ではない。
②「UMLは、たった1種類の図のことだ」→ ✗ UMLは複数の図の集まり。構造を表す図と、動きを表す図に分かれる。
③「シーケンス図は、クラスの構造(静的な姿)を表す図だ」→ ✗ クラスの構造を表すのはクラス図。シーケンス図は、やりとりを時間で表す図。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(UMLの正体)
UMLに関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指している
- システムの構造や動きを、図で表すための共通の書き方(記法)である
- 完成したシステムを宣伝して、より多く売るための広告活動のことである
解答は 3 だよ。
UMLは、システムの構造や動きを、図で表すための共通の書き方(記法)だよ。だれが見ても伝わるように描くんだ。
選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✓ | 構造や動きを図にする書き方で正しい |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(複数の図)
UMLの図に関する次の記述のうち、最も適切なものはどれか。
- UMLは1つの図ではなく、構造や動きを表す複数の図の集まりである
- UMLは、たった1種類の図だけで構成されているものだとされている
- UMLは、社員の給与を計算する処理だけを表す図のことを指している
- UMLは、取引先へ請求書を郵送する事務の図だけを指す言葉である
解答は 1 だよ。
UMLは、1つの図ではなく、構造や動きを表す複数の図の集まりだよ。目的に応じて使い分けるんだ。
選択肢2の「1種類だけ」、選択肢3の給与計算、選択肢4の請求書の事務は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | 複数の図の集まりで正しい |
| 2 | ✗ | 1種類だけではない |
| 3 | ✗ | 給与計算の図ではない |
| 4 | ✗ | 請求書の事務の図ではない |
オリジナル問題3(プログラミング言語ではない)
UMLに関する次の記述のうち、最も適切なものはどれか。
- UMLは、プログラムを動かすためのプログラミング言語だとされている
- UMLは設計を図で表す書き方で、プログラムを動かす言語ではない
- UMLは、社員の給与を計算するための経理専用のしくみのことである
- UMLは、取引先へ請求書を郵送する事務作業のことを指している
解答は 2 だよ。
UMLは、設計を図で表す書き方で、プログラムを動かす言語ではないよ。「言語」とつくけど、プログラミング言語ではないんだ。
選択肢1の「プログラミング言語」、選択肢3の給与計算、選択肢4の請求書の事務は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | プログラミング言語ではない |
| 2 | ✓ | 設計を図で表す書き方で正しい |
| 3 | ✗ | 給与計算のしくみではない |
| 4 | ✗ | 請求書の事務ではない |
まとめ
押さえどころ
- 🔴 UML = システムの構造や動きを、図で表すための共通の書き方(記法)。主にオブジェクト指向の設計で使う。
- 🔴 複数の図 = 1つの図ではなく、構造を表す図と、動きを表す図に分かれる図の集まり。
- 🟡 代表的な図 = クラス図(構造)・シーケンス図(オブジェクト間のやりとりを時間で表す動き)。
次に学ぶ
- オブジェクト指向 ── データと処理をまとめる考え方。UMLは、その設計を図で表すのに使う。
執筆: SikakuQuest編集部