システム開発

【応用情報】初心者向け!UMLの全てを分かりやすく解説!

お茶ん太
お茶ん太

この記事では、UMLについて、初心者にも分かりやすく図解付きで丁寧に解説しています!

UML

  • UMLは設計の考え方を複数人で共有するために分かりやすく図式化したもの。
  • クラス図はクラス間の関係性を表した図。
  • アクティビティ図は業務やプログラムの処理の流れを表した図。
  • シーケンス図はクラス間の処理やメッセージを時系列に沿って表した図。
  • コミュニケーション図はクラス間の処理やメッセージをクラス間の関係性に焦点を当てて表した図。

UML

UMLはUnified Modeling Languageの略で、統一モデリング言語と訳されます。「言語」なので、他者とコミュニケーションをするために使われるんですね。UMLはオブジェクト指向プログラミングで設計するときに、設計の考え方を複数人で共有するために分かりやすく図式化したものです。

UMLは標準化されています。企業や国が違っても同じものを使うので、あらゆる人同士がコミュニケーションを取れるようになっています。

オブジェクト指向プログラミングについてはこちらの記事で解説しています。

【応用情報】初心者向け!オブジェクト指向を分かりやすく解説! オブジェクト指向 オブジェクト指向とは「モノ」に着目して設計する考え方。 オブジェクトには性質を示す属性と処...

UMLにはシステムの構造を表す構造図と処理の流れやオブジェクト間の時系列に沿ったやり取り等を表す振る舞い図があります。

クラス図

クラス図はクラス間の関係性を表します。クラス図ではクラスを下図のように定義します。クラスが持つデータを属性と呼びます。

多重度の表現

クラス図ではクラス間の数の関係性を下図のように表します。この図では「1つの部署」に「1人以上の社員」が属するということが分かります。このような数の関係性を多重度と言います。

多重度は下表のように記載します。

集約-分解の表現

集約とは色々な部品を集めることです。例を見るとすぐに分かると思います。

クラス図では集約-分解の関係も表現できます。集約-分解の関係は下図のように白抜きひし形矢印で表現します。下図からプレストは本体とコントローラーから成り立っていると分かります。

コンポジション

コンポジションは集約のもっと強いバージョンです。例えば、デスクトップPCは本体・キーボード・ディスプレイで構成されていますが、それぞれの部品が独立しており、キーボードだけを取り外して、別のデスクトップPCで使うということが可能です。ノートPCも本体・キーボード・ディスプレイで構成されていますが、キーボードだけを取り外したりすることは出来ません。このように、部品と本体の間に強い依存関係があるものをコンポジションと呼びます。コンポジションは黒塗りひし形矢印で表現します

汎化-特化の表現

汎化とは複数のクラスの共通の性質を抽出することで、特化は汎化の逆です。

クラス図では汎化-特化の関係も表現できます。汎化-特化の関係は下図のように白抜き三角矢印で表現します。下図から社員には派遣社員と正社員があると分かります。

アクティビティ図

アクティビティ図は業務作業の流れやプログラムの処理の流れを表します。アクティビティ図では条件分岐や並行処理、実行順序などの制御の流れも表すことが出来ます。

シーケンス図

シーケンス図はクラス間の処理の流れやメッセージの流れを時系列に沿って表します。シーケンス図では人やシステム等のクラス間で行われる処理の流れやメッセージを表すことが出来ます。

コミュニケーション図

コミュニケーション図はクラス間の処理の流れやメッセージの流れをクラス間の関係性に焦点を当てて表します。

応用情報技術者試験での出題例

令和7年度春期問25

応用情報技術者
午前試験 
令和7年度春期問25

UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。

ア ”指定送付先”を指定する際,”付加情報”表のどの行でも選択できる。

イ ”付加情報”表と”顧客”表の行数は一致していなければならない。

ウ ”付加情報”表には”顧客”表に対する参照制約を指定する。

エ ”付加情報”表には”注文”表に対する参照制約を指定する。

正解と解説

正解は”ウ”

まずは図の意味を理解してみましょう。
顧客と注文:1人の顧客と複数の注文が紐づいています。顧客は注文先ですね。A君はいくつも注文することができます。注文番号0001に紐づいている顧客は1人だけです。

付加情報と注文:0個又は1個の付加情報と複数の注文が紐づいています。付加情報は指定送付先ですね。付加情報にはいくつもの注文を紐づけられます。注文には1つの付加情報が紐づけられるか、付加情報が紐づけられていないかのどちらかです。

注文が指定送付先を持つときは、「”付加情報”の注文主と”注文”の顧客が一致する」と書いてあります。問題文の図には記載がありませんが、”注文”に顧客の情報を、”付加情報”に注文表の情報を持ち、その2つが一致するんですね。

注文が指定送付先を持つときは、「”顧客”の主送付先ではなく”付加情報”の副送付先を使う」と書いてあります。注文に付加情報があるときは、副送付先を使いなさいということですね。

顧客と付加情報:1人の顧客と複数の付加情報が紐づいています。顧客はいくつもの付加情報を持てます。付加情報には1つの顧客が紐づいています。

ア ”指定送付先”を指定する際、”付加情報”の注文主と”注文”の顧客が一致しなければなりません。どれでも良いわけではないんですね。よって誤りです。

イ 1人の顧客と複数の付加情報が紐づいています。なので行数は一致しません。よって誤りです。

ウ 付加情報には1つの顧客が紐づいています。顧客から独立した付加情報は存在しないということですね。よって正解です。

エ 付加情報には複数の注文が紐づいています。「*」は複数という意味ですが、実は0でもOKなのです。なので、注文と紐づいていない付加情報があってもOKで、誤りと分かります。

参照制約とは、表形式でデータを管理するための制約の一つで、この項目には他の表に存在する値じゃないと入れられないよ、という制約をつけることができます。

例えば、顧客とやり取りをする「窓口担当者」には、社員表に登録がある社員しか設定できないようにする。みたいな感じで制約を付けることを参照制約と呼びます。

令和6年度秋期問66、令和4年度春期問66

応用情報技術者
午前試験 
令和6年度秋期問66、令和4年度春期問66

UMLの図のうち,業務要件定義において,業務フローを記述する際に使用する,処理の分岐や並行処理,処理の同期などを表現できる図はどれか。

ア アクティビティ図
ウ 状態マシン図

イ クラス図
エ ユースケース図

正解と解説

正解は”ア”

アクティビティ図は処理の分岐や並行処理などを表現できるので、業務フローの整理に使われます。

令和3年度秋期問47

応用情報技術者
午前試験 
令和3年度秋期問47

UMLにおける振る舞い図の説明のうち,アクティビティ図のものはどれか。

ア ある振る舞いから次の振る舞いへの制御の流れを表現する。

イ オブジェクト間の相互作用を時系列で表現する。

ウ システムが外部に提供する機能と,それを利用する者や外部システムとの関係を表現する。

エ 一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する。

正解と解説

正解は”ア”

アクティビティ図は振る舞い間の制御の流れを表現出来ます。