UML(統一モデリング言語)とは何か
― システムを「図」で設計・共有するための共通語 ―
プログラムは、いきなりコードを書き始めると破綩しやすくなります。
そのため実務では「設計図」を先に描いてから実装するのが基本です。
その設計図を描くための世界共通の表記ルールが UML(Unified Modeling Language) です。
UMLは、
「このシステムは何をするのか」
「どんな部品(クラス)があるのか」
「どの順番で処理が進むのか」
を図で表現するための言語です。
なぜUMLが必要なのか
もし設計図がなければ、システム開発はこうなります。
- 人によって理解がバラバラ
- 「それ聞いてない」が頻発
- 後から修正できない
UMLを使うと:
| 役割 | 何ができるか |
|---|---|
| 企画者 | システムの流れを説明できる |
| プログラマ | 実装の全体像を把握できる |
| チーム | 同じ理解を共有できる |
| 試験 | 問題として出せる(FEで頻出) |
つまりUMLは
「人と人をつなぐ設計の共通言語」 なのです。
基本情報技術者試験で出るUML
FE試験では主に次の3種類が出ます。
| 図の種類 | 何を表すか |
|---|---|
| ユースケース図 | ユーザーと機能 |
| クラス図 | データ構造と部品 |
| シーケンス図 | 処理の流れ |
この3つを押さえれば十分です。
① ユースケース図(機能の全体像)
何の図か
「誰が」「何をできるか」を表す図です。
例:ECサイト
[利用者] → (商品を検索する)
[利用者] → (商品を購入する)
[管理者] → (商品を登録する)

ここで:
- 人のマーク:アクター(利用者)
- 丸:できること(ユースケース)
FEでは
「この図からどんな機能があるか」
「誰が何をできるか」
を問われます。
② クラス図(システムの骨組み)
何の図か
「プログラムの部品」を表します。
例:ショッピングカート
+------------------+
| Item |
+------------------+
| name |
| price |
+------------------+
| getPrice() |
+------------------+
+------------------+
| Cart |
+------------------+
| items[] |
+------------------+
| addItem() |
| totalPrice() |
+------------------+

これはC#で言えば:
class Item
{
string name;
int price;
}
class Cart
{
Item[] items;
}
FEでは
「このクラス図を見て、どんなデータ構造か」
「関連・多重度(1対多など)」
を問われます。
③ シーケンス図(処理の流れ)
何の図か
「誰が → 誰に → どの順番で処理するか」を表します。
例:ログイン処理
利用者 → 画面 : ログイン
画面 → 認証 : IDとパスワード送信
認証 → 画面 : OK / NG
画面 → 利用者 : 結果表示

これはプログラムの処理フローそのものです。
FEでは
「どの順番でメソッドが呼ばれるか」
「この時点でどこに処理があるか」
を問われます。
UMLとプログラミングの関係
UMLは「コードの設計図」です。
| UML | プログラム |
|---|---|
| クラス図 | クラス定義 |
| シーケンス図 | メソッドの呼び出し |
| ユースケース | 機能要件 |
UnityやC#の開発でも、
頭の中では無意識にUMLと同じことをしています。
- Playerクラス
- Enemyクラス
- Itemクラス
- どの順で処理が呼ばれるか
これを「図で可視化」したものがUMLです。
FE試験でのUMLの位置づけ
UMLは暗記ではありません。
FEで問われるのは:
「この図が何を意味しているかを読み取れるか」
です。
だから
UMLはプログラミングの読解力そのもの
なのです。
まとめ
- UMLは「システムの設計図」
- 図で「構造」と「流れ」を表す
- FEではユースケース図・クラス図・シーケンス図が重要
- プログラミングの理解と直結している


ディスカッション
コメント一覧
まだ、コメントがありません