システムアーキテクト 2009年 午前2 問02
問題文
図は、階層化されたDFDにおける、あるレベルのDFDの一部である。プロセス1を子プロセスに分割して詳細化したDFDのうち、適切なものはどれか。ここで、プロセス1の子プロセスは、プロセス1-1、1-2及び1-3と表す。


選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
DFDの入出力保存【午前2解説】
正解の理由
イ は、親レベルのDFDが示す「外部との入出力の本数・向き」と、親図で表現されている内部経路(プロセス1からプロセス2・プロセス3へ分岐し、プロセス2経由でプロセス3へ流れる経路を含む)を、子プロセス群の接続で忠実に再現しています。具体的には、親図で示される外部からの2本の入力を子図でも2本の外部入力として保持し(それぞれ別の子プロセスに入る形で表現)、親図の出力側経路を子プロセス間の結線(子→子→外部)として保存しているため、親子間インターフェースの整合性が保たれています。したがって、DFDの階層化ルールに照らして正当な分割図となります。
解法ステップ
- 親レベルDFDで「外部と接しているフロー(入出力)」を数え、向きを確認する(本数・入/出)。
- 親図の「重要な内部経路」(例:1→2→3 や 1→3 のような並列・連結経路)を抽出する。
- 各選択肢の子図が、親レベルで確認した外部フローの本数・向きを、そのまま子図の境界で再現しているかをチェックする(増減や向きの反転がないか)。
- 子図内のプロセス間接続が親図の内部経路と整合するかを確認する(内部経路が分断・合成されていないか)。
- 上の条件を満たす選択肢を正答とする。
選択肢別の誤答解説
-
ア
- 欠点:子図では外部→子側の入力が1本しか描かれていないため、親図で期待される外部からの2本の入力(とその向き)が保存されていません。また、出力側が子プロセス2・3それぞれから外部へ出ている構成は、親図の出力の起点(どのプロセスで外部に出るか)と対応が取れていない可能性があります。
- 結論:外部フロー数の不一致により不適切。
-
ウ
- 欠点として受け取りやすい誤解を避けつつ正確に説明すると、ウは確かに親図の「外部入力が2本」という表現を子図で2本の矢印として示していますが、両方とも同一子プロセス(1–1)に入れてから分岐している点が問題となります。DFDの厳格なルールで「絶対に不可」とは言えませんが、本問の親図が示す経路(別々の入力がそれぞれ別の処理経路へ向かうという意味合い)を再現する観点では、外部フローの出所とそれが辿る経路の「対応関係(どの外部入力がどの内部経路に対応するか)」が失われています。結果として親図のトレースが損なわれ、分割の意図を満たしません。
- 結論:外部入力の「対応関係(トレース)」が保たれていないため不適切。
-
エ
- 欠点:エは外部入力の配置と、出力がどの子で外部へ出るかの対応を不正確に変えている(外部入力が同一子に集中している、または外部出力の発生源が親図と異なる)。これにより、親図で示された「どの経路が外部とやり取りするか」というインターフェースが子図で再現されていません。
- 結論:親図との入出力対応が崩れているため不適切。
よくある誤解
- 「外部入力が同一の子プロセスに入ると必ず不正解になる」
- 実際には、同一子プロセスが複数の外部入力を受けても構わない場合があります。ただし、そのときでも親レベルの「外部フローの本数・向き」と「どの外部流がどの内部経路に対応するか(トレース)」が維持できていることが必要です。本問では対応関係が失われるため不適切と判断します。
- 「図の物理的な位置(左・右・上下)で子プロセスの対応を決めてよい」
- 空間配置は設計者の便宜であり、対応判断はあくまでフローの接続関係(どの外部フローがどの子に入るか、どの子から外部へ出るか、子間の通信経路)で行うべきです。
補足コラム
DFDの階層化では「親プロセスのブラックボックスとしての入出力」を子図でどう表すかが最も重要です。保存すべきポイントは次の3点です。
- 境界を横切るフローの総数と向き(増やしたり消したりしない)
- 親図で区別されている外部フローの「区別(別の流れであること)」を失わないこと(必要に応じて別々の子プロセスで受ける)
- 親図の内部経路(順番や並列関係)が子プロセス間の接続で再現可能であること
実務では、トレーサビリティを確保するために外部フローに識別子やコメントを付け、分割後もどの流れに対応するか明示しておくと後の検証が容易になります。
FAQ
Q. 外部入力が1本→複数の子へ配分される形でもよいか?
A. はい。親図の外部入力を複数の子プロセスへ分配すること自体は許容されます。ただし、その分配が親図の意図(どの経路に寄与するか)を変えてしまう場合は不適切です。分配する場合は、元の外部入力が1本であることを子図でも明確に保ち、どの子がどの出力に関与するかを辿れるようにする必要があります。
A. はい。親図の外部入力を複数の子プロセスへ分配すること自体は許容されます。ただし、その分配が親図の意図(どの経路に寄与するか)を変えてしまう場合は不適切です。分配する場合は、元の外部入力が1本であることを子図でも明確に保ち、どの子がどの出力に関与するかを辿れるようにする必要があります。
Q. 子図で内部にデータストア記号(例えば平行線)を置く場合の注意点は?
A. データストアも親図と子図で整合させる必要があります。親図に存在しないデータストアを子図の境界外へ露出させる(外部と同等に扱う)と、インターフェース不整合になります。データストアの役割と接続先が親図の構造と矛盾しないかを確認してください。
A. データストアも親図と子図で整合させる必要があります。親図に存在しないデータストアを子図の境界外へ露出させる(外部と同等に扱う)と、インターフェース不整合になります。データストアの役割と接続先が親図の構造と矛盾しないかを確認してください。
関連キーワード: DFD、プロセス分割、データフロー、階層化、外部フロー保存、インターフェース整合、トレーサビリティ、子プロセス

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

