UML
開発方法論
UMLはオブジェクト指向設計の共通言語!ユースケース図、クラス図、シーケンス図が特に重要だよ!
UML
簡単にいうと
UMLはオブジェクト指向設計の共通言語!ユースケース図、クラス図、シーケンス図が特に重要だよ!
① ユースケース図
ユースケース図は、システムが提供する機能(ユースケース)と、それを利用するアクター(利用者や外部システム)の関係を表す図です。システム開発の最上流でユーザの要求を明確化する目的で使用されます。
ユースケース図の構成要素は以下の3つです。
| 要素 | 表記 | 意味 |
|---|---|---|
| アクター | 人型の棒人間 | システムの利用者(人間)や連携する外部システム |
| ユースケース | 楕円 | システムが提供する機能(動詞+名詞で記述) |
| システム境界 | 長方形(枠) | システムの範囲を示す枠線 |
アクターとユースケースは線でつなぎ、「このアクターはこの機能を使う」という関係を表します。ユースケース間の関係として、include(必ず含む)とextend(条件付きで拡張)があります。
② クラス図
クラス図は、システムの静的な構造をクラス(設計図)とその関係で表す図です。オブジェクト指向設計において最も重要な図の一つであり、E-R図と似た役割を果たしますが、データだけでなく「操作(メソッド)」も表現できます。
クラスは3段の箱で表され、上段にクラス名、中段に属性(データ)、下段に操作(メソッド)を記述します。
クラス間の関係には以下のパターンがあります。
| 関係 | 記号 | 意味 | 例 |
|---|---|---|---|
| 汎化-特化 | 白抜き三角形(△) | 「〜は〜の一種である」という継承関係 | 「犬は動物の一種」 |
| 集約 | 白抜きひし形(◇) | 「全体-部分」の緩い関係。部分が独立して存在可能 | 「チームとメンバー」 |
| コンポジション | 塗りつぶしひし形(◆) | 「全体-部分」の強い関係。全体が消えると部分も消える | 「注文と注文明細」 |
| 関連 | 直線 | クラス間に何らかの関係がある | 「顧客が商品を購入する」 |
関連線には多重度を記述します。「1」「0..1」「*」「1..*」などの表記で、対応する個数を示します。
③ シーケンス図
シーケンス図は、オブジェクト間のメッセージのやり取りを時系列で表す図です。ユースケースの中で「処理がどの順序で進むか」を詳細に可視化する際に使います。
主な構成要素は以下の通りです。
| 要素 | 意味 |
|---|---|
| ライフライン | オブジェクトの存在期間を表す縦の破線。上部にオブジェクト名を記載する |
| メッセージ | ライフライン間を結ぶ横向きの矢印。上から下へ時間の流れに沿って配置される |
| 活性区間(実行指定) | ライフライン上の細長い長方形。オブジェクトが処理を実行している期間を示す |
| 戻りメッセージ | 破線の矢印で返却値やレスポンスを表す |
シーケンス図は上から下に読み進めることで、処理の時間的な流れ(どのオブジェクトがいつメッセージを送り、いつ応答が返ってくるか)を直感的に把握できます。
④ アクティビティ図
アクティビティ図は、処理の実行順序を表す図で、UMLにおけるフローチャートのような役割を果たします。業務プロセスや複雑なアルゴリズムの流れを表現するのに適しています。
主な要素として、開始ノード(黒丸)、終了ノード(二重丸)、アクション(角丸四角形)、分岐(ひし形)、フォーク/ジョイン(並行処理の分岐と合流を表す太い横棒)があります。複数の処理を並行して実行する場合はフォークで分岐し、すべての並行処理が完了したらジョインで合流します。
⑤ その他のUML図
| 図の名称 | 分類 | 用途 |
|---|---|---|
| オブジェクト図 | 構造図 | ある時点でのオブジェクト(インスタンス)の具体的な状態を表す。クラス図の具体例のようなもの |
| コミュニケーション図 | 振る舞い図 | オブジェクト間のメッセージのやり取りを空間的な配置で表す。シーケンス図と同等の情報を異なる視点で表現 |
| ステートマシーン図 | 振る舞い図 | オブジェクトの状態遷移を表す。状態遷移図のUML版 |
| コンポーネント図 | 構造図 | ソフトウェアのコンポーネント(部品)間の依存関係を表す。システムの物理的な構成を示す |
具体例
UMLの4つの主要図を、オンラインショッピングシステムで見てみましょう。
ユースケース図: 「顧客」というアクター(棒人間)と、「商品を検索する」「カートに追加する」「注文する」「支払う」というユースケース(楕円)を描きます。「注文する」からは「支払う」へ<<include>>の関係を引きます(注文には必ず支払いが含まれるため)。
クラス図: 「顧客」クラス(属性: 顧客ID、名前、メールアドレス/操作: ログイン()、注文する())と「注文」クラス(属性: 注文番号、注文日、合計金額/操作: 確定する()、キャンセルする())を定義し、「顧客1..注文*」と多重度を付けて関連線でつなぎます。「注文」と「注文明細」はコンポジション(◆)の関係です。
シーケンス図: 顧客がカート画面で「注文確定」ボタンを押すと、注文オブジェクトに「注文作成」メッセージが送られ、在庫オブジェクトに「在庫確認」メッセージが送られ、決済オブジェクトに「決済実行」メッセージが送られ――という処理の時系列を上から下に描きます。
アクティビティ図: 「商品選択→カートに追加→注文画面→住所入力→決済→注文確定」という処理の流れをフローチャート形式で描きます。途中で「会員か?」という分岐があり、非会員なら「会員登録」への別フローに分かれます。
試験のポイント
- ・要は「ユースケース図=システムの機能、クラス図=静的構造(≒ER図)、シーケンス図=時系列メッセージ、アクティビティ図=処理順序(フローチャート)」
- ・クラス図の汎化(△白抜き三角形)、集約(◇)、コンポジション(◆)の記号と意味の違いを正確に覚えること
- ・シーケンス図ではライフラインと活性区間の読み取り問題が出やすい
独学で診断士合格を目指すなら
過去問演習・AI添削・テキストPDFまで
すべて揃ったプレミアムプランで合格を掴む!
予備校代の1/10以下で、独学の不安をまるごと解決
- 📝1次試験 過去問演習(全7科目・年度別)無制限プレミアム限定
- 🤖2次試験 AI添削(事例I〜IV・無制限)最適なフィードバックで実力アッププレミアム限定
- 📄科目別テキストPDFダウンロード。印刷して好きな使い方で学習できるプレミアム限定
- 🔖ブックマーク機能で苦手分野・何度も確認したい部分を管理プレミアム限定
- 📊学習記録・成績管理で自分の進捗を可視化プレミアム限定
プレミアムプラン
¥9,800(税込)
自動更新なし / 1年間有効
決済は Stripe(PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。