IPA モデリング記法(UML・DFD・状態遷移) — 頻出論点と過去問

頻出論点

1. この分野は何か

業務の流れ、データのまとまり、部品どうしのやり取り、出来事による状態の移り変わりは、それぞれ向いている図や表が違います。図の種類を取り違えるほか、線の端の数字や矢印、枠の形の意味を読み違えるところでつまずきます。

2. 実際の出題のされ方

図の読み書きの入口では、業務の流れを描く図表の使い分けや、格子状に区切った図の読み取りが試されます。縦横の区画をもつ図から業務のどの要素を読み取れるかを判断する問題や、複数の図表の中から業務プロセスの改善において業務の流れを表記するのに使うものだけを選ばせる問題が、ITパスポートで出ています。

図の種類を目的に合わせて選ぶ問題と、条件や表を手でたどる問題は、応用情報技術者の午前と高度試験の午前Iで繰り返し出題されています。UMLの複数の図から目的に合うものを選ぶ問題や、CRUDマトリクスの説明を選ぶ問題のほか、業務の条件からクラス図の空欄に入る多重度やクラス名の組合せを決める問題、複数の条件の組合せに対する動作指定部の表を選ぶ問題、初期状態から複数のイベントが順に発生した後の最終状態を状態遷移表からたどる問題が出題されています。

DFDとステートマシン図の細かな書き方の決まりには、システムアーキテクトの午前IIで踏み込みます。DFDの図形要素の組合せ、既存システムから新システムを描き起こす手順、親プロセスを子プロセスに分けたときの入出力の整合、並行して動く領域をもつ状態の描き方が出ています。

出来事の起こる順序や、同時に進む処理の待ち合わせを表すのに向いた図やモデルを選ぶ問題が、エンベデッドシステムスペシャリストとシステムアーキテクトの午前IIで問われています。

このほか、高度試験の午前IIでは、SysML、オブジェクト指向開発で使うロバストネス分析、データ中心アプローチの特徴を説明文から選ぶ問題もあります。

3. 学習のポイント

UML(統一モデリング言語)の図は、構造(静的な側面)を表すものと振る舞い(動的な側面)を表すものに分けて整理します。

  • 構造を表す図: クラス図は、クラスの属性・操作とクラス間の関連や多重度といった静的な構造を表します。クラス図の関連線の端に書く数(1、0..1、0..*、1..*など)は、反対側の1つから見て、その端のものがいくつ結びつくかを表します(下限..上限)。これに対し、ある時点における実体化したインスタンス(オブジェクト)どうしの静的な結びつき(リンク)を表すのがオブジェクト図、ソフトウェア部品間の依存関係などの物理的構造を表すのがコンポーネント図です。
  • 振る舞いを表す図: ユースケース図は、人の形で描く利用者(アクター)と、楕円で描く機能のまとまりを線で結び、四角い枠でシステムの内と外を分けます。アクティビティ図は、処理を角の丸い箱で並べ、ひし形で分かれ道と合流を、太い棒で並行する処理の分岐と待ち合わせを描きます。区画(スイムレーン)に分ければ、どの部門や役割がその処理を受け持つかも示せます。シーケンス図は、登場するオブジェクトを横に並べ、それぞれから下へ伸ばした線の間に、送るメッセージを上から順に矢印で書きます。縦方向が時間の流れです。ステートマシン図(状態マシン図)は、1つのオブジェクトが取りうる状態を角の丸い箱で、移り先を矢印で描き、矢印に移るきっかけ(トリガ)を書きます。UML 2.0のステートマシン図で、1つの状態の中に並行して動く複数の領域(直交状態)を描く場合は、領域どうしを破線で区切り、各領域の開始状態(黒丸)から出る最初の遷移にはトリガを記述しません。

構造化分析などで用いられるDFD(Data Flow Diagram)と関連手法も重要な柱です。

  • DFDの要素と手順: DFDはデータの流れに着目してシステムをモデル化する図であり、データフロー(矢印)、プロセス(円)、データストア(2本の平行線)、源泉と吸収(四角。外部実体とも呼ぶ)の4つの記号で描きます。既存システムから新システムを設計する際は、現状の実態をそのまま描く現物理モデルを作り、そこから実装手段を除いて本質的な機能を抽出した現論理モデルへ抽象化し、新しい要件を組み込んだ新論理モデルを定義した上で、具体的な実現手段を当てはめる新物理モデルへと進めます。
  • DFDの階層化(バランス則): 1つのプロセスを子プロセスに分けて詳しくするときは、親に出入りするデータと、子プロセス群が外とやり取りするデータが、中身として過不足なく対応していなければなりません。親の図の1本の流れが複数のデータをまとめたものなら、子の図でそれを構成するデータに分けて描いてもかまいませんが、新しいデータが増えたり、どこかのデータが消えたりしてはいけません。
  • アプローチとマトリクス: 機能間のデータの流れに着目するプロセス中心アプローチに対し、業務の手順は変わりやすいが扱うデータの構造は比較的変わりにくいという見方から、先にデータをE-Rモデル(実体関連モデル)で整理して設計の土台にするのがデータ中心アプローチ(DOA)です。また、CRUDマトリクスは、行に機能、列にエンティティをとり、交わるます目に生成(Create)・参照(Read)・更新(Update)・削除(Delete)のどれを行うかを書き込んだ表です。

表形式のモデルや、特殊なシステム向けのモデリング手法も特徴を押さえておきます。

  • 決定表と状態遷移表: 決定表(デシジョンテーブル)は、上段の条件指定部に条件の成否(Y/N)の組合せを列挙し、下段の動作指定部に実行する動作(Xなど)を記入して複雑な条件分岐を整理する表です。状態遷移表は、現在の状態と発生したイベントの交差するセルに遷移時の動作と次の状態を記述した表です。空欄のます目が何を意味するかは問題文で約束されるので、その約束に従ってイベント発生ごとに状態番号がどう移り変わるかを1つずつたどります。
  • ペトリネット・SysML・ロバストネス分析: ペトリネットは、条件を表すプレースと出来事を表すトランジションを矢印で結び、プレースに置いたトークンの動きで処理の進み方を表します。入力側のプレースすべてにトークンがそろって初めてトランジションが発火するので、複数の処理の待ち合わせや取り合いを描けます。SysMLは、機械・電気・ソフトウェアや人の手順までを含むシステム全体を描くための言語で、UMLを土台にしています。UMLに無い図として、要求どうしの関係を描く要求図と、性能や重さなどの制約を式で結びつけるパラメトリック図があります。また、ロバストネス分析は、ユースケースの流れを、利用者と接する画面などのバウンダリ、手順の進行を受け持つコントロール、記録として残るデータのエンティティの3種類に分けて図にし、設計に進む前に流れの抜けを見つける手法です。

4. 間違えやすいところ

DFDの図形要素を選ぶ問題では、E-R図の要素である実体と関連を含めた組合せが誤答肢にありました。DFDの外部の送り手・受け手は、データの構造を表すE-R図の実体とは役割が違います。

オブジェクトどうしのやり取りを時間の順に設計する図を選ぶ問題では、状態遷移図が誤答肢にありました。状態遷移図が追うのは1つのものの状態の変わり方で、複数のものの間で何がどの順に送られるかは描けません。

SysMLの特徴を問う問題では、UMLでインスタンスのつながりを描く図の説明が誤答肢にありました。

クラス図の多重度は、下限を0にするか1にするかで意味が変わります。たとえば図書と貸出の関連で、まだ一度も貸し出されていない図書があり得るなら、図書から見た貸出の多重度の下限は0です。どの貸出も必ず1冊の図書を指すなら、貸出から見た図書の多重度は1です。相手が無い場合を条件が認めているかどうかを、文から読み取って下限を決めます。

モデリング記法(UML・DFD・状態遷移)の理解度チェック

モデリング記法(UML・DFD・状態遷移)の過去問一覧

システム開発技術のほかの論点

要件定義・製品品質40問 ソフトウェア設計・保守・再利用55問 テスト・レビュー51問