UML (クラス図・シーケンス図・ユースケース図)

UMLの代表的な図を学びます。

オブジェクト指向設計の標準記法 UML。代表的なクラス図・シーケンス図・ユースケース図を理解しましょう。

日野 こむぎ(普段) 日野 こむぎ

UMLって、よく見るあの四角と矢印の図のこと?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

そうよ。
UML (Unified Modeling Language) はソフトウェア設計の標準記法で、全部で13種類の図があるけれど、特に重要な4つを覚えておきましょうね。

青木 澪(普段) 青木 澪

クラス図 (クラスとその関係)、シーケンス図 (オブジェクト間のメッセージ流れ)、ユースケース図 (システムと利用者の関わり)、アクティビティ図 (処理フロー) の4つは必修ですね。

桃井 すみれ(普段) 桃井 すみれ

クラス図の関係って、いろんな種類があるのぉ?

青木 澪(普段) 青木 澪

主に4種類あります。
継承 (is-a)・集約 (has-a 弱)・コンポジション (has-a 強・全体が消えると部分も消える)・関連 (use-a)。
それぞれ矢印の形が違うんですよ。

藤森 さやか 先生(普段) 藤森 さやか 先生

他に状態遷移図 (オブジェクトの状態と遷移) やオブジェクト図 (特定時点のインスタンス) もよく使われるのよ。

オンライン注文をどの図で表すか

知りたいこと選ぶ図注文システムでの表現例
誰が何の機能を使うかユースケース図顧客が「商品を注文する」、管理者が「出荷を登録する」
データやクラスの静的な関係クラス図顧客、注文、商品と属性・操作・多重度
処理中のメッセージ順序シーケンス図画面→注文サービス→在庫サービス→決済サービスの呼出し
分岐・並行を含む業務手順アクティビティ図在庫確認後、在庫あり/なしで処理を分ける
一つの対象の状態変化状態遷移図注文済→入金済→出荷済→完了、または取消

設問の名詞だけでなく、問われている観点を探します。「利用者と機能」はユースケース、「時系列に送るメッセージ」はシーケンス、「処理の流れと分岐」はアクティビティです。シーケンス図にもオブジェクトが登場しますが、静的な属性や継承関係を表す図ではありません。

クラス関係と図の読み違いを防ぐ

クラス図では、継承・汎化は「会員は利用者の一種」のようなis-a関係で、親クラス側へ白抜き三角を向けます。集約は全体と部分の弱いhas-a関係、コンポジションは全体の消滅と部分の寿命が強く結び付く関係です。単に他のクラスを参照するだけなら関連として表します。

多重度も頻出です。顧客1人が0件以上の注文を持ち、各注文が必ず1人の顧客に属するなら、注文側は0..*、顧客側は1です。「1対多」という言葉だけで両端の値を逆にしないよう、片方のインスタンスから見て相手が何個あり得るかを文章に戻して確認します。

シーケンス図では時間は通常上から下へ進み、横方向には参加するオブジェクトを並べます。ユースケース図は処理順序や内部設計を描く図ではなく、システム境界、アクター、提供機能の関係を整理する図です。「時間」「アクター」「静的構造」「状態」という手掛かりを先に分類すると、似た選択肢を切り分けられます。

確認クイズ

UML で利用者 (アクター) とシステムの相互作用を表現する図はどれか。

  1. クラス図
  2. ユースケース図
  3. シーケンス図
  4. アクティビティ図
こたえを見る

正解: 2. ユースケース図

ユースケース図は、システムと利用者 (アクター) の相互作用 (どんな機能を誰が使うか) を表現します。要件定義段階でよく使われます。

日野こむぎ、青木澪がゲームセンターで協力プレイを楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。