令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午後I 問題 問2 DXレストランの制御装置のタスク設計と料理を運ぶロボの追加
学習ガイド
スマホで予約から注文、精算までを行うDXレストランで、店舗の端末を管理する制御装置のソフトウェアを考える問題です。NFCの通信時間の計算、品切れ情報を登録しても注文が届いてしまう場合、タスク間の通知の内容が問われます。後半では料理を運ぶロボを導入し、搬送を始める条件や、障害物で止まったときに店員が配膳を引き継ぐ流れを、既存のタスクの処理と比べて読み解きます。
この記事で押さえる論点
- NFCの通信速度とデータ量からデータ送信にかかる時間を計算できる
- システム間の非同期通信による情報の不整合(品切れ登録と注文の競合など)を説明できる
- 共有情報の更新やUI表示の変更など、タスク間のメッセージ通信の役割を述べられる
- 既存システムへのロボット導入に伴う状態追加と、例外処理(搬送キャンセル)の動きを説明できる
出題情報
- 出題
- 2021(R3)秋 エンベデッドシステムスペシャリスト 午後I 問2
- 配点
- 50点満点
- 模範解答
- 公表(設問ごとに掲載)
出題趣旨・採点講評(IPA 公表)
近年,作業効率の改善,人手不足や感染症への対策として,店舗の無人化,在庫管理の自動化やモバイルオーダの導入など,様々な店舗でIoT機器を活用したシステムの導入が進められている。
本問では,レストランにおけるデジタルトランスフォーメーションを題材として,組込みシステムの開発に必要となる,要求仕様の理解力,要求仕様に基づくソフトウェアの設計能力,及びシステム改善に伴う仕様追加に対する対応能力を問う。
問2では,レストランにおけるデジタルトランスフォーメーション(DX)を題材に,仕様の理解及び仕様追加要求への対応について出題した。全体として正答率は平均的であった。
問題本文
デジタルトランスフォーメーションを用いたレストランに関する次の記述を読んで,設問1〜3に答えよ。
B社は,デジタルトランスフォーメーション(DX)を用い,店舗運営の効率化及び客の待ち時間の短縮などを目的としたレストランシステム(以下,DXレストランという)を開発している。DXレストランの利用は,事前にスマートフォン(以下,スマホという)に専用アプリケーション(以下,専用アプリという)をインストールして,支払時に利用するクレジットカード番号などの会員情報を登録する必要がある。会員情報の登録を行うと,レストランの利用予約ができる。DXレストランのシステム構成を図1に,DXレストランのシステム構成要素を表1に示す。

図の説明テキスト
図1 DXレストランのシステム構成
インターネットを介してルータとサーバが接続されている。
店舗LANの有線ネットワーク(太線)にはルータ、制御装置、APが接続されている。
APからはキッチン端末、指示端末、入店端末、テーブル端末に対してWi-Fiで接続されている。
入店端末とスマホの間は近距離無線通信で接続されている。
テーブル端末とスマホの間は近距離無線通信およびBluetoothで接続されている。
(凡例)
Bluetooth: 雷のような折れ線
Wi-Fi: 「N」に似た記号
近距離無線通信: 破線
AP: アクセスポイント
注記 近距離無線通信にはNFCを用い,通信距離は10センチメートル以下である。

図の説明テキスト
表1 DXレストランのシステム構成要素
| 構成要素名 | 機能概要 |
|---|---|
| 制御装置 | ・MCU,RAMなどが搭載されており,店舗内の各端末を管理する。 ・インターネットを介してサーバと通信する。 |
| キッチン端末 | ・タッチパネルに各種ボタンを表示し,押されたボタンに応じた内容を制御装置に送信する。 ・料理の注文を受けると,料理名とその数(以下,注文内容という),注文ごとに付与される番号(以下,注文番号という)などをタッチパネルに表示する。 |
| 入店端末 | ・店舗の入り口に1台設置されており,スマホと通信を行い,レストランの予約ごとに付与される番号(以下,予約番号という),予約人数,テーブル端末ごとに付与される番号(以下,テーブル番号という)などのデータの送受信を行う。 |
| テーブル端末 | ・テーブルごとに1台ずつ設置されており,スマホと通信を行って,料理の注文などのデータの送受信を行う。スマホとの通信は,NFCでBluetoothのペアリングを行い,ペアリング後,Bluetoothを用いる。 ・表示器,プリンタ及び着座センサが接続されている。 ・着座センサは,席に座っている人数(以下,着座人数という)を検出する。着座人数が変化するたびに制御装置に着座人数を送信する。 |

図の説明テキスト
表1 DXレストランのシステム構成要素(続き)
| 構成要素名 | 機能概要 |
|---|---|
| 指示端末 | ・タッチパネルに各種指示などを表示し,テーブル番号ごとに着座人数を表示する。 ・各種ボタンを表示し,押されたボタンに応じた内容を制御装置に送信する。 |
| サーバ | ・会員情報,予約情報,メニュー情報 1)及び売上情報を管理し,決済処理を行う。 |
注 1) メニュー情報は,料理名,料理の説明,金額,及び品切れの場合は,その情報から成る。
〔開店時及び閉店時の動作概要〕
開店時及び閉店時のDXレストランの動作概要を次に示す。
① キッチン端末の開店準備ボタンが押されると,制御装置はサーバからメニュー情報を受信する。
② メニュー情報の受信後,キッチン端末の開店ボタンが押されると,入店端末での入店受付を開始する。
③ キッチン端末の閉店ボタンが押されると,入店端末での入店受付を停止する。
〔DXレストランの動作概要〕
DXレストランの会員(以下,利用者という)が,DXレストランの店舗を利用する際の動作概要を次に示す。
① 利用者が,専用アプリが起動された状態のスマホを入店端末にかざすと,予約番号,テーブル番号及び予約人数がスマホに表示される。
② 利用者はスマホに表示されたテーブル番号のテーブルに行き,テーブル端末にスマホをかざす。メニュー情報,注文及び精算に関する内容がテーブル端末に表示され,スマホとのBluetooth通信が開始される。利用者がスマホに表示されたテーブル番号以外のテーブル端末にスマホをかざした場合は,エラーがテーブル端末に表示される。
③ 利用者はテーブル端末に表示されているメニュー情報を見ながら,スマホから注文を行う。
④ 制御装置は,テーブル端末から注文内容を受信すると注文番号を付与する。注文番号,テーブル番号及び注文内容(以下,注文情報という)をキッチン端末に送信する。また,テーブルごとの注文情報の履歴管理のための,注文履歴情報を更新する。
⑤ 注文情報がキッチン端末のタッチパネルに表示されると,店舗の料理人は注文情報を確認して調理を開始する。品切れになる料理がある場合は,キッチン端末を操作して品切れ情報を制御装置に送信する。制御装置から,品切れ情報がテーブル端末全てに送信され,該当する料理の注文の受付を中止にする。また,(ア)店舗の料理人は,キッチン端末を操作して注文をキャンセルすることができる。キャンセルした場合は,テーブル端末を介して,利用者のスマホに通知される。
⑥ 制御装置は,キッチン端末から配膳ボタンが押されたことを受信すると,該当する注文情報及び配膳開始ボタンを指示端末に表示する。
⑦ 店員は,指示端末に表示された配膳開始ボタン及び着座人数を確認する。着座人数が0人でないことを確認した上で,該当する配膳開始ボタンを押してから配膳を行う。配膳完了後,店員は,配膳開始ボタンを押した後に表示された配膳完了ボタンを押す。
⑧ 利用者は,食事が終わるとスマホで精算する。
⑨ 精算完了後,制御装置は,テーブル端末のプリンタで領収書などを印刷する。また,テーブル番号,片付けの指示及び片付け完了ボタンを指示端末に表示する。
⑩ 店員は,指示端末に表示された片付けの指示及び着座人数を確認する。着座人数が0人であることを確認した上で,テーブルの片付けを行う。片付け完了後,店員は,該当する片付け完了ボタンを押す。
〔制御装置のソフトウェアの構成〕
制御装置では,リアルタイムOSを使用する。制御装置の主なタスク構成を図2に,制御装置の主なタスクの処理概要を表2に示す。

図の説明テキスト
図2 制御装置の主なタスク構成
構成要素であるタスク(入店、キッチン、精算、テーブル、指示、サーバ通信)と、情報(メニュー情報、空席管理情報、売上情報、注文履歴情報)の関係を示す図。
実線矢印(メッセージ通信):
- キッチンから入店へ
- キッチンとテーブルの間(両端に矢印、両方向)
- キッチンから指示へ
- テーブルと指示の間(両端に矢印、両方向)
- テーブルと精算の間(両端に矢印、両方向)
破線矢印(メモリへの書込み): - 入店から空席管理情報へ
- テーブルから空席管理情報へ
- キッチンからメニュー情報へ
- テーブルから注文履歴情報へ
- 精算から売上情報へ
注記1: テーブルタスクは、店舗内のテーブルの数だけ生成する。
注記2: 実線の矢印は、メールボックスを使用したタスク間のメッセージ通信の方向を示す。ただし、サーバ通信タスクの矢印は省略している。
注記3: 破線の矢印は、メモリへの書込みを示す。ただし、メモリからの読出しは省略している。

図の説明テキスト
表2 制御装置の主なタスクの処理概要
| タスク名 | 処理概要 |
|---|---|
| 入店 | ・キッチンタスクから開店又は閉店の通知を受けると,入店端末に送信する。 ・入店端末から会員情報を受信すると,サーバに会員番号を送信する。サーバから会員番号及び予約人数を受信すると,テーブルの空き状況について空席管理情報を基に検索する。テーブルに空きがあれば,空席管理情報の該当するテーブルに会員番号及び予約済みを設定する。次に,予約番号,予約人数及びテーブル番号を入店端末に送信する。 |
| テーブル | ・テーブル端末から会員情報を受信すると,自テーブルを予約済みの利用者の場合は,次の処理を行い,自テーブルを予約済みでない利用者の場合は,エラー情報を送信する。 - 空席管理情報の自テーブルを確保済みに設定し,テーブル端末にメニュー情報を送信する。 - テーブル端末から着座人数を受信すると,指示タスクに通知する。 - メニュー更新の通知を受けると,テーブル端末にメニュー情報を送信する。 - テーブル端末から料理の注文を受信すると,注文情報をキッチンタスクに通知し,注文履歴情報を更新する。 - 指示タスクから配膳完了の通知を受けると,注文履歴情報の該当する料理を配膳済みに更新する。 - キッチンタスクから注文のキャンセルを受けると,a から b を削除し,テーブル端末に注文のキャンセルを送信する。 - テーブル端末から精算要求を受信すると,全ての料理が配膳済みであれば,精算タスクに精算処理を通知する。精算タスクから精算処理完了の通知を受けると,領収書などの印刷指示をテーブル端末に送信し,c に d を通知する。配膳が完了していない料理があれば,その旨をテーブル端末に送信する。 - 片付け完了の通知を受けると,e を空きに設定する。 |
| 精算 | ・精算処理の通知を受けると,会員情報,会計金額及び決済の依頼をサーバに送信する。 ・サーバから決済の結果を受信すると精算時刻及び会計金額を売上情報に記録し,精算処理を通知したタスクに精算完了を通知する。 ・サーバから売上要求を受信すると,売上情報をサーバに送信する。 |
| キッチン | ・キッチン端末から,開店又は閉店を受信すると,入店タスクに通知する。 ・キッチン端末から,開店準備を受信すると,サーバと通信してメニュー情報を更新し,全てのテーブルタスクにメニュー更新を通知する。 ・注文の通知を受けると,キッチン端末に送信する。 ・キッチン端末から,配膳を受信すると,配膳指示を指示タスクに通知する。 ・キッチン端末から,品切れ情報を受信すると,f。 ・キッチン端末から,注文のキャンセルを受信すると,該当するテーブルタスクに通知する。 |
| 指示 | ・着座人数の通知を受けると,着座人数を指示端末に表示する。 ・配膳指示の通知を受けると,注文情報及び配膳開始ボタンを指示端末に表示する。 ・片付け指示の通知を受けると,テーブル番号,片付けの指示及び片付け完了ボタンを指示端末に表示する。 ・指示端末から,配膳開始を受信すると,指示端末に配膳完了ボタンを表示する。 ・指示端末から,配膳完了又は片付け完了を受信すると,該当するテーブルタスクに通知する。 |
| サーバ通信 | ・インターネットを介してサーバと通信する。 |
料理の搬送を自動で行うために,料理をテーブルまで搬送するロボット(以下,ロボという)を 1 台導入することになった。ロボは,制御装置から搬送の指示をWi-Fiで受信し,指示されたテーブルまで自律走行できる。また,指定されたテーブルまで移動が完了したこと,料理が取り出されたこと,障害物によって移動を停止したことなどを制御装置に送信する。
ロボによる搬送動作の概要を次に示す。
① 店員は,指示端末に表示された配膳開始ボタンを確認して,料理をロボで搬送するのか,店員が配膳するのかを判断する。ロボで搬送する場合は,料理をロボに格納した上で,ロボ搬送ボタンを押す。ここで,ロボ搬送ボタンは,指示端末に新たに追加されたボタンである。ロボ搬送ボタンが押されると,制御装置を介して,テーブルまでの移動の指示がロボに送信される。
② ロボは,テーブルまでの移動の指示を受信すると,指定されたテーブルまでの移動を開始する。指定されたテーブルに到達すると,ロボは,制御装置にテーブル到達を送信する。料理受取ボタンがテーブル端末に表示される。
③ 利用者がロボから料理を取り出し,テーブル端末の料理受取ボタンを押すと,制御装置を介して,所定の位置まで戻る指示がロボに送信される。
④ ロボが料理の搬送中,障害物によって移動が困難になり停止した場合は,店員が代わりに配膳を行う。ロボが停止すると搬送エラーが指示端末に表示され,ロボの搬送キャンセルボタンが有効になる。店員がロボから料理を取り出し,ロボの搬送キャンセルボタンを押すと,ロボは搬送キャンセルを制御装置に送信し,所定の位置まで戻る。また,指示端末には該当する料理の配膳完了ボタンが表示される。店員は配膳完了後,配膳完了ボタンを押す。
制御装置のタスク変更概要を表3に示す。ここで,ロボットタスクは,新規に作成するタスクである。

図の説明テキスト
表3 制御装置のタスク変更概要
| タスク名 | 変更概要 |
|---|---|
| ロボット | ・Wi-Fi でロボと通信を行う。 ・指示タスクから搬送指示を受けると,料理がロボに格納されていれば,ロボに搬送指示を送信する。 ・ロボからテーブル到達を受信すると,該当するテーブルタスクに通知する。 ・テーブルタスクから料理受取の通知を受けると,所定の位置に戻る指示をロボに送信する。 ・ロボから搬送エラーを受信すると,指示タスクに通知する。 ・ロボから搬送キャンセルを受信すると,所定の位置に戻る指示をロボに送信し,指示タスクに搬送のキャンセルを通知する。 |
| テーブル | ・ロボットタスクからテーブル到達の通知を受けると,テーブル端末に送信する。 ・テーブル端末から料理受取を受信すると,ロボットタスクに通知し,g。 |
| 指示 | ・指示端末からロボ搬送を受信すると,ロボットタスクに搬送指示を通知する。ただし,着座人数が 0人の場合は,1 人以上になるまで待ってから搬送指示を通知する。 ・ロボットタスクから搬送エラーを受けると,指示端末に搬送エラーを表示する。 ・ロボットタスクから搬送のキャンセルを受けると,指示端末の搬送エラーを解除し,h。 |
設問と解答・解説
設問1
DXレストランについて,(1),(2)に答えよ。
入店端末からスマホに送信するデータ量は,制御情報を含めて 20 バイトである。NFCの通信速度が 424 k ビット/秒の場合,このデータの送信に掛かる時間は何ミリ秒か。答えは小数第 3 位を切り上げて,小数第 2 位まで求めよ。ここで,1k ビット=1,000 ビットとする。
模範解答
0.38
解説
入店端末からスマホへ送信されるデータ量とNFCの通信速度を用いて、送信に掛かる時間を計算します。
- データ量のビット単位への変換:
送信データ量は20バイトです。1バイトは8ビットであるため、データ量は ビットとなります。 - 通信時間の計算:
NFCの通信速度は424kビット/秒です。設問の指示により となるため、通信速度は ビット/秒です。
データの送信に掛かる時間は、 秒となります。 - ミリ秒への変換と端数処理:
秒をミリ秒に変換するために1,000を掛けます。
「答えは小数第3位を切り上げて、小数第2位まで求めよ」という指示に従い、 の小数第3位(7)を切り上げると となります。
本文中の下線(ア)は,店舗の料理人が品切れ情報を登録した場合でも,該当する料理の注文がキッチン端末に送信されてしまうという事象への対処方法である。当該事象は,どのような場合に発生するか。40 字以内で述べよ。
模範解答
テーブル端末に品切れ情報が登録されるより前に該当する料理が注文された場合
採点基準
- 2点: テーブル端末に品切れ情報が反映される前に注文されたケースであることが示されている。
- 1点: 品切れ情報と注文の競合について触れているが、前後関係が不明確。
- 0点: 記述がない、または的外れな内容。
- 1点: 「〜の場合」「〜したとき」など、条件として適切な文末で記述されている。
- 0点: 文末が条件を示す表現になっていない、または意味が通らない。
解説
店舗の料理人が品切れ情報を登録したにもかかわらず、その料理の注文がキッチン端末に届いてしまう事象が発生する条件を考察します。
- システムにおける品切れ処理の流れ:
〔DXレストランの動作概要〕⑤によると、料理人がキッチン端末で品切れ情報を登録すると、制御装置へ送信されます。その後、制御装置からすべてのテーブル端末へ品切れ情報が送信され、該当料理の注文受付が中止されます。 - 事象が発生する要因:
品切れ情報がキッチン端末から発信され、テーブル端末に情報が到達・反映されるまでには通信のタイムラグが存在します。
この品切れ情報がテーブル端末に反映され、注文受付が中止される直前(より前)に、利用者がスマホから該当する料理の注文操作を行ってしまった場合、システムはまだ注文可能と判断してキッチン端末へ注文情報を送信してしまいます。
高得点のポイント
- 品切れ情報がテーブル端末に反映(登録)されるタイミングと、注文されるタイミングの前後関係を正確に記述する
- 「〜より前に〜された場合」のように、事象が発生する条件として適切な文末でまとめる
設問1(1)は,正答率がやや高かった。データの送信時間について正しく理解されていることがうかがえた。
設問2
制御装置のタスクについて,(1)〜(3)に答えよ。
サーバ通信タスクとタスク間のメッセージ通信を行うタスクが三つある。表2中のタスク名で全て答えよ。
模範解答
入店,精算,キッチン
採点基準
- 5点: 「入店」「精算」「キッチン」の3つ全てを解答し(順不同、『入店タスク』のように『タスク』を付けた表記も可)、誤ったタスク名を含まない。
- 3点: 正しいものが2つ以上あるが、3つ揃っていない又は誤ったタスク名(テーブル・指示など)を含む。
- 0点: 正しいものが1つ以下。
解説
表2「制御装置の主なタスクの処理概要」をもとに、サーバ通信タスクと直接メッセージ通信を行うタスクを特定します。
- 入店タスク:
処理概要に「サーバに会員番号を送信する」「サーバから会員番号及び予約人数を受信すると」と記載されており、サーバ通信タスクと通信を行っています。 - 精算タスク:
処理概要に「会員情報、会計金額及び決済の依頼をサーバに送信する」「サーバから決済の結果を受信すると」「サーバから売上要求を受信すると、売上情報をサーバに送信する」と記載されており、サーバ通信タスクと通信を行っています。 - キッチンタスク:
処理概要に「サーバと通信してメニュー情報を更新し」と記載されており、サーバ通信タスクと通信を行っています。 - その他のタスク:
テーブルタスク、指示タスク、ロボットタスク(表3)の処理概要には、サーバとの通信に関する記述は含まれていません。
高得点のポイント
- 表2の各タスクの処理内容を読み取り、サーバと通信を行っている「入店」「精算」「キッチン」の3つのタスクを過不足なく抜き出す
表2中の a に入れる適切な字句を答えよ。
模範解答
注文履歴情報
採点基準
- 5点: 「注文履歴情報」と正確に解答している。
- 3点: 「注文履歴」など、意味は通じるが完全な字句ではない。
- 0点: 不正解。
解説
表2のテーブルタスクにおける注文キャンセル時の処理を、システムのデータ構造と照らし合わせて特定します。
- テーブルタスクが管理する情報:
図2「制御装置の主なタスク構成」において、テーブルタスクから破線矢印(メモリへの書込み)が伸びている先は「空席管理情報」と「注文履歴情報」の2つです。 - キャンセル処理の内容:
〔DXレストランの動作概要〕④にて、「テーブルごとの注文情報の履歴管理のための、注文履歴情報を更新する」とあります。注文がキャンセルされた場合、履歴から該当する注文を無かったことにする(削除する)必要があります。
したがって、削除操作の対象となるデータは 注文履歴情報 です。
高得点のポイント
- 図2の破線矢印と表2の記述を関連付け、対象となるメモリ(情報)の名称を正確に抜き出す
表2中の b に入れる適切な字句を答えよ。
模範解答
該当する料理
採点基準
- 5点: 「該当する料理」又は同じ対象を指す表現(「該当の料理」「キャンセルされた料理」など)と解答している。
- 3点: 「料理」「注文」など、対象の特定がない解答。
- 0点: 不正解。
解説
表2のテーブルタスクにおける注文キャンセル時の削除対象データを特定します。
- 注文履歴情報の更新単位:
表2のテーブルタスクにおいて、配膳が完了した際の処理として「指示タスクから配膳完了の通知を受けると、注文履歴情報の該当する料理を配膳済みに更新する」という記述があります。 - キャンセル時の削除対象:
注文履歴情報において管理・操作の対象となる単位は「料理ごと」です。そのため、注文がキャンセルされた際に削除すべきものは、注文された料理そのもの、すなわち 該当する料理 となります。
高得点のポイント
- 注文履歴情報に対する別の処理(配膳完了時)の記述を参考に、操作対象の単位となる字句を正確に抜き出す
表2中の c に入れる適切な字句を答えよ。
模範解答
指示タスク
採点基準
- 5点: 「指示タスク」と正確に解答している。
- 3点: 「指示」など、意味は通じるが完全な字句ではない。
- 0点: 不正解。
解説
表2のテーブルタスクにおける精算完了時の通知先タスクを特定します。
- 精算完了後のシステムの動き:
〔DXレストランの動作概要〕⑨において、精算完了後にはテーブルのプリンタで領収書を印刷し、「テーブル番号、片付けの指示及び片付け完了ボタンを指示端末に表示する」と定められています。 - 指示端末の制御担当:
表2のタスク構成において、指示端末への表示処理を担当しているのは 指示タスク です(「指示端末に表示する」という処理が並んでいます)。
したがって、領収書の印刷指示を行った後、片付けに関する表示を行わせるために通知を送る先は 指示タスク となります。
高得点のポイント
- 動作概要の記述と各タスクの役割を紐付け、通知先となるタスク名を正確に抜き出す
表2中の d に入れる適切な字句を答えよ。
模範解答
片付け指示
採点基準
- 5点: 「片付け指示」又は「片付けの指示」と解答している。
- 3点: 片付けに触れているが指示であることが不明確(「片付け」だけなど)。
- 0点: 不正解。
解説
表2のテーブルタスクから指示タスクへ通知される内容を特定します。
- 精算完了後に必要な指示:
〔DXレストランの動作概要〕⑨において、精算完了後は指示端末に「片付けの指示及び片付け完了ボタン」を表示させることが記述されています。 - 指示タスクの受信内容:
表2の指示タスクの処理概要を確認すると、「片付け指示の通知を受けると、テーブル番号、片付けの指示及び片付け完了ボタンを指示端末に表示する」とあります。
したがって、テーブルタスクから指示タスクへ送信される通知内容は 片付け指示 となります。
高得点のポイント
- 指示タスク側の受信トリガーとなる名称(片付け指示)と合致する字句を正確に抜き出す
表2中の e に入れる適切な字句を答えよ。
模範解答
空席管理情報の自テーブル
採点基準
- 5点: 「空席管理情報の自テーブル」と正確に解答している。
- 3点: 「空席管理情報」や「自テーブル」など、要素が不足しているか完全な字句ではない。
- 0点: 不正解。
解説
表2のテーブルタスクにおける片付け完了時の状態更新対象を特定します。
- テーブルの空き状況の管理:
表2の入店タスクの処理概要において「テーブルの空き状況について空席管理情報を基に検索する」とあり、テーブルの状態は空席管理情報で管理されていることがわかります。 - 更新すべき対象:
片付けが完了したということは、そのテーブルが次の利用者のために空いた状態になったことを意味します。テーブルタスクは自テーブルの状態を管理しているため、更新対象は 空席管理情報の自テーブル となります。
高得点のポイント
- 図2のメモリ書込みの関連性と、入店タスク・テーブルタスクの記述を照らし合わせ、更新対象を正確に抜き出す
表2中の f に入れる適切な内容を 40 字以内で述べよ。
模範解答
メニュー情報を更新して,全てのテーブルタスクにメニュー更新を通知する
採点基準
- 3点: メニュー情報の更新と、全テーブルタスクへのメニュー更新通知の両方の要素が含まれている。
- 1点: いずれか一方の要素のみが含まれている。
- 0点: どちらの要素も含まれていない。
- 2点: 処理として適切な順序(更新して通知する)で記述されている。
- 1点: 意味は通じるが、処理の順序や因果関係の記述がやや不自然。
- 0点: 論理が破綻している、または文末が不適切。
解説
キッチンタスクが品切れ情報を受信した際に実行すべき処理を、動作概要とタスク間の関係から導出します。
- システム全体での品切れ処理の要件:
〔DXレストランの動作概要〕⑤に「制御装置から、品切れ情報がテーブル端末全てに送信され、該当する料理の注文の受付を中止にする」と記述されています。 - タスク構成に基づく実現方法:
テーブル端末に直接情報を送信するのは、表2よりテーブルタスクの役割です。テーブルタスクの処理概要には「メニュー更新の通知を受けると、テーブル端末にメニュー情報を送信する」とあります。
また、図2においてキッチンタスクから「メニュー情報」への書込み(破線矢印)が存在します。
したがって、キッチンタスクは自身でメニュー情報を更新した上で、全てのテーブルタスクに対してメニュー更新を通知する必要があります。
高得点のポイント
- メニュー情報の更新を伴うこと、および全てのテーブルタスクへ通知することの2つの処理要素を盛り込む
- キッチンタスクからテーブルタスクへ連携する流れとして論理的に記述する
設問2(3)は,正答率がやや低かった。タスクの動作を問う問題に対し,制御装置の動作を述べている解答が散見された。タスクの処理概要とシステムの動作について正しく理解することは,組込みソフトウェア技術者には必要な能力であるので,是非理解しておいてもらいたい。また,穴埋めに対する解答は,主語が何であるかに注意して解答するよう心掛けてほしい。
設問3
機能追加に伴うソフトウェアの変更について,(1)〜(3)に答えよ。
店員がロボ搬送ボタンを押して,ロボによる搬送が開始されるのはどのような条件を満足したときか。35字以内で述べよ。
模範解答
着座人数が1人以上で,かつ,ロボに料理が格納されている場合
採点基準
- 2点: 「着座人数が1人以上」「ロボに料理が格納されている」の両方の条件が示されている。
- 1点: どちらか一方の条件のみが示されている。
- 0点: 条件が示されていない、または誤っている。
- 1点: 2つの条件を同時に満たすこと(AND条件)が明確に記述されている。
- 0点: 条件の論理関係が不明確、または文末が不適切。
解説
ロボットによる料理搬送が開始される条件を、追加された仕様(表3)から整理します。
- 指示タスクの条件:
表3の指示タスクの変更概要に「着座人数が0人の場合は、1人以上になるまで待ってから搬送指示を通知する」とあります。すなわち、着座人数が1人以上であることが第一の条件です。 - ロボットタスクの条件:
表3のロボットタスクの変更概要に「指示タスクから搬送指示を受けると、料理がロボに格納されていれば、ロボに搬送指示を送信する」とあります。 - 結論:
ロボが実際にテーブルへの移動(搬送)を開始するためには、上記2つの条件を同時に満たしている必要があります。
高得点のポイント
- 「着座人数が1人以上」と「ロボに料理が格納されている」の2つの条件を漏れなく記述する
- 2つの条件が同時に成立する必要があること(AND条件)を正確に表現する
表3中の g に入れる適切な内容を,30字以内で答えよ。
模範解答
注文履歴情報の該当する料理を配膳済みに更新する
採点基準
- 2点: 更新対象(注文履歴情報の該当する料理)と更新内容(配膳済みにする)が正確に示されている。
- 1点: 更新対象か更新内容のいずれかが欠けているか、不正確。
- 0点: 記述がない、または的外れ。
- 1点: タスクの処理内容として適切な文で記述されている。
- 0点: 処理として意味が通らない記述。
解説
利用者がロボットから料理を受け取った際(料理受取時)の、テーブルタスクの処理内容を特定します。
- 料理受取が意味する状態:
ロボット搬送における「利用者がロボから料理を取り出し,テーブル端末の料理受取ボタンを押す」という動作は、システム上は「対象の料理の配膳が完了した」ことと同義になります。 - 既存仕様における配膳完了処理:
表2のロボット導入前のテーブルタスクでは、「指示タスクから配膳完了の通知を受けると、注文履歴情報の該当する料理を配膳済みに更新する」という処理を行っていました。
ロボット搬送の場合でも、料理が受け取られたタイミングでシステムのステータスを同様に更新する必要があります。
高得点のポイント
- 更新対象が「注文履歴情報の該当する料理」であることと、ステータスを「配膳済み」に更新することを正確に記述する
- タスクの処理概要として適切なフォーマットでまとめる
表3中の h に入れる適切な内容を,20字以内で答えよ。
模範解答
指示端末に配膳完了ボタンを表示する
採点基準
- 2点: 「指示端末」に「配膳完了ボタン」を表示することが示されている。
- 1点: 表示先か表示内容のいずれかが欠けているか、不正確。
- 0点: 記述がない、または的外れ。
- 1点: タスクの処理内容として適切な文で記述されている。
- 0点: 処理として意味が通らない記述。
解説
ロボットが障害物などで停止し、搬送キャンセルが行われた際の指示タスクの処理内容を特定します。
- 搬送キャンセル後の代替フロー:
〔機能追加に伴うソフトウェアの変更〕④の動作概要によると、ロボットが停止した場合は店員が代わりに配膳を行います。 - 指示端末のUI変更要件:
店員による代替配膳モードに移行するため、システムは店員が配膳を終えたことを入力できるようにする必要があります。同④の記述に「指示端末には該当する料理の配膳完了ボタンが表示される」と明記されています。
指示端末の表示制御は指示タスクが行うため、搬送エラーの解除とともにこの表示処理を実行します。
高得点のポイント
- 指示端末を対象として、配膳完了ボタンを表示させることを明記する
- 機器への画面表示処理として簡潔に記述する
設問3は,正答率が平均的であった。DXレストランにロボットの搬送機能が追加されているが,追加前後の仕様を正確に理解し,各タスクで必要となる動作を導き出してほしい。