エンベデッドシステムスペシャリスト 2016年 午前2 問20
問題文
図は、階層化されたDFDにおける、あるレベルのDFDの一部である。プロセス1を子プロセスに分割して詳細化したDFDのうち、適切なものはどれか。ここで、プロセス1の子プロセスは、プロセス1-1、1-2及び1-3とする。


選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
DFDの階層化とバランス原則【午前2解説】
正解の理由
DFDを階層化するときは、親プロセスと、その子プロセス群との間で、外部とのデータの入出力を一致させる必要があります。これをバランス原則といいます。
元の図では、プロセス1に外部から2本のデータフローが入り、プロセス2とプロセス3へそれぞれ1本ずつ出ています。
イでは、外部からの2本の入力を子プロセス群が受け取り、内部でデータを受け渡したうえで、プロセス2とプロセス3へ出力しています。親プロセスの外部との入出力が保たれているため、適切です。
解法ステップ
-
親プロセスの境界を確認します。
プロセス1に入るデータフローは2本、プロセス1から外部へ出るデータフローは2本です。 -
各選択肢で、子プロセス群の外部との入出力を数えます。
子プロセス間のデータフローは内部の流れなので、親プロセスの境界での入出力とは区別します。 -
親プロセスの入出力が保たれているか確認します。
イは、外部から2本を受け取り、外部へ2本を出しています。親プロセスの入出力と一致します。
選択肢別の誤答解説
- ア:外部から子プロセス群に入るデータフローが1本しかありません。親プロセスに入る2本の入力を引き継げていないため、不適切です。
- イ:外部からの入力2本と、外部への出力2本が保たれています。子プロセス間の流れも示されており、適切です。
- ウ:外部への出力が1本しかなく、親プロセスからの出力2本を引き継げていません。また、プロセス1-2は入力がある一方で出力がなく、データフローが途切れています。
- エ:外部との入出力の本数は合っていますが、プロセス1-2に入力がないまま、プロセス1-3へデータを出力しています。入力なしでデータを生成する形になっており、不適切です。
よくある誤解
-
子プロセス間の矢印も、親プロセスの外部出力に数えてしまう
親プロセスとの境界を越える矢印だけが、親プロセスの入出力に該当します。 -
外部との入出力の本数が合えば、それだけで正しいと思ってしまう
本数だけでなく、データの出入りする相手や、各プロセスの入出力の流れも確認します。 -
分割後の子プロセスは、親プロセスと同じ形で描く必要があると思ってしまう
子プロセス間の処理の流れは変わってかまいません。保つ必要があるのは、親プロセスと外部とのデータフローです。
補足コラム
DFDでは、入力のないプロセスが出力を生む状態を「ミラクル」、入力を受けても出力がない状態を「ブラックホール」と呼ぶことがあります。選択肢エのプロセス1-2は、入力なしで出力しているため、ミラクルに相当します。
階層化では、親プロセスの外側にあるプロセスやデータストアとの接続を、子プロセス群が新たに処理する必要はありません。詳細化するのは、あくまで親プロセスの内部です。
FAQ
Q. 子プロセス間の矢印は、親プロセスの入出力に含めますか?
A. 含めません。親プロセスの境界を越えて、外部とやり取りするデータフローを確認します。
A. 含めません。親プロセスの境界を越えて、外部とやり取りするデータフローを確認します。
Q. 子プロセスの配置や個数にも決まりがありますか?
A. この問題では、配置ではなく、指定された子プロセスを使って親プロセスとの外部データフローを保てているかが判断のポイントです。
A. この問題では、配置ではなく、指定された子プロセスを使って親プロセスとの外部データフローを保てているかが判断のポイントです。
関連キーワード: DFD、バランス原則、階層化、データフロー、ミラクル、ブラックホール

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

