【システム開発技術】システムの「動き」を可視化する!「動的モデルとシーケンス図」|情報処理問題1000本ノック
オブジェクト指向によるシステム設計(UMLなど)では、システムを「構造」と「振る舞い」の2つの側面から表現します。時間とともに変化するシステム内部のやり取りを描く「動的モデル」の本質を攻略しましょう。
1. 【 問題 】:ソフトウェア開発(システムのモデル化)
【 問題 】 システムの構造や挙動を表現する設計図(モデル)のうち、時間経過に伴うオブジェクト間のメッセージのやり取りや、状態の変化といったシステムの「動的な振る舞い」を表現する「動的モデル」に分類されるものは、次のうちどれでしょうか?
(ア) クラス図
(イ) シーケンス図
(ウ) ER図
(エ) ブロック図
2. 正解:
正解: (イ) シーケンス図
3. 解説:時間が流れる中で「どう動くか」を描く図
動的モデル(どうてきモデル)とは、システムの実行時に、データやオブジェクトが時間の経過とともにどのように変化・連携するか(振る舞い)を表した図のことです。
その代表格であるシーケンス図は、上から下に向かって時間が流れる軸を持ち、登場人物(オブジェクト)同士が「どんな順番でメッセージを送り合って処理を進めるか」を時系列で表現するため、明確に動的モデルへと分類されます。
| 分類 | 図が表すシステムの特徴 | 代表的な図の例(UMLなど) |
|---|---|---|
| 静的モデル(構造) | プログラムが動いていなくても存在する、システム固有的・普遍的な「形や関係性」。 | (ア) クラス図(UML) (ウ) ER図(データベース設計) (エ) ブロック図(ハード構成など) |
| 動的モデル(振る舞い) | システム実行時に、時間が流れる中で変化する「データの動きや状態変化」。 | (イ) シーケンス図(時系列のやり取り) ・コミュニケーション図 ・アクティビティ図(業務フロー等) ・状態遷移図(ステートマシン図) |
1. 理解のコツ: 「映画の制作」に例えてみましょう。
・静的モデルは、映画の「キャラクターの相関図や、舞台のセットの設計図」です。カメラが回っていなくても(システムが起動していなくても)、登場人物の設定や関係性は固定されています。これが(ア)クラス図や(ウ)ER図の世界です。
・一方で動的モデルは、映画の「台本(スクリプト)や絵コンテ」です。「まずAがBに声をかける」「それを受けてBが怒る」といった、時間が進む中での具体的な『セリフのやり取りや動きの流れ』が描かれています。この台本そのものの役割を果たすのがシーケンス図であり、システムが実際に動いたときの挙動をシミュレーションするために不可欠な図となります。
2. 試験対策の視点: 基本情報技術者や応用情報技術者の午前試験において、「UMLの各図の分類や用途」を問う問題として超大定番です。問題文の中に「動的モデル」「動的な振る舞い」「時系列のやり取り」というキーワードがあれば、反射的にシーケンス図を選べるようにしてください。
また、ひっかけとして選択肢に並ぶ「クラス図」や「ER図」は、静的モデル(構造を表す図)の代表選手として最もよく使われます。さらに、もう一つの重要な動的モデルとして、画面の切り替わりやボタンを押したときの機械の挙動を表す「状態遷移図(ステートマシン図)」や、業務の手順を表す「アクティビティ図」も同じグループ(動的モデル)であるため、これらを一まとめにして「構造(静的)の図か、流れ(動的)の図か」を区別できるよう整理しておくことが、確実な得点力に繋がります。
4. まとめ
「システムが実際に動作したときの、時間経過に伴うオブジェクト同士のメッセージ送信や処理の流れを可視化する動的モデル」。その筆頭がシーケンス図です。静的モデルであるクラス図やER図との設計思想の違いをはっきりと頭に叩き込み、得点源にしていきましょう!