エンベデッドシステムスペシャリスト 2014年 午前2 問18
問題文
並列に動作する事象間の同期を表現することが可能な、ソフトウェアの要求モデルはどれか。
選択肢
ア:E-Rモデル
イ:データフローモデル
ウ:ペトリネットモデル(正解)
エ:有限状態機械モデル
🔒 解説は解答すると表示されます
ペトリネットモデル【午前2解説】
正解の理由
並列に進む処理や、複数の事象がそろうまで次の処理を開始できないといった同期を表現するには、ペトリネットモデルが適しています。そのため、正しい選択肢はウです。
ペトリネットでは、状態や条件を「プレース」、事象や処理を「トランジション」、条件が満たされていることを「トークン」で表します。複数のプレースにあるトークンを必要とするトランジションを使うことで、複数の事象がそろったときに処理を進める同期を表現できます。また、複数のトランジションがそれぞれ実行可能であれば、並列に進む状況も表せます。
解法ステップ
- 問題文の「並列に動作する事象間の同期」に注目します。
- データ構造や単一の状態遷移を表すモデルではなく、並行動作や同期の表現に適したモデルを探します。
- トークンによって処理の進行や同期条件を表すペトリネットモデルを選びます。
選択肢別の誤答解説
-
ア:E-Rモデル
実体と実体間の関係を表すデータモデルです。データベースの設計に使われ、並列に動作する事象の同期を表すモデルではありません。 -
イ:データフローモデル
データの流れや、データの生成・利用に基づく処理の関係を表します。処理間のデータ依存関係は表現できますが、事象間の同期を表す代表的なモデルはペトリネットです。 -
ウ:ペトリネットモデル
トークンの位置や移動によって、並行処理や同期を表現できます。複数の事象がそろったときに処理を開始する状況も表せるため、適切です。 -
エ:有限状態機械モデル
システムの状態と状態間の遷移を表すモデルです。基本的には、状態を順にたどる振る舞いの記述に向いており、並列に動作する事象間の同期を表すモデルとしてはペトリネットがより適切です。
よくある誤解
-
データの流れを表せるモデルなら、事象間の同期も表せると思う
データの依存関係と、複数の事象がそろうまで待つ同期は別の観点です。問題では「同期」に着目してください。 -
有限状態機械なら、あらゆる並行動作を簡単に表せると思う
有限状態機械は状態遷移の表現に適していますが、並行処理が増えると状態の組合せが増え、記述が複雑になりやすいです。 -
ペトリネットはデータ構造のモデルだと思う
ペトリネットは、並行・同期を含むシステムの振る舞いを表現するモデルです。
補足コラム
ペトリネットでは、トランジションの実行に必要なプレースにトークンがそろうと、そのトランジションが実行可能になります。例えば、二つの作業が完了した後に次の作業へ進む場合、それぞれの作業完了を表すプレースにトークンが置かれたときだけ、次のトランジションを実行できるように表現できます。
FAQ
Q. ペトリネットの「同期」とは、どのような状況ですか?
A. 複数の事象や処理が完了するまで待ち、条件がそろってから次の処理へ進む状況です。
A. 複数の事象や処理が完了するまで待ち、条件がそろってから次の処理へ進む状況です。
Q. 有限状態機械モデルとペトリネットモデルは、どう使い分けますか?
A. 状態の変化を順に記述するなら有限状態機械モデル、並行動作や複数の処理間の同期を表現するならペトリネットモデルが適しています。
A. 状態の変化を順に記述するなら有限状態機械モデル、並行動作や複数の処理間の同期を表現するならペトリネットモデルが適しています。
関連キーワード: ペトリネット、プレース、トランジション、トークン、並行処理、同期

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

