応用情報技術者過去問題 平成28年春期 午後問7
⇄問題文と設問を画面2分割で開く⇱問題PDF問7 組込みシステム開発
飲食店向けタッチ式注文端末に関する次の記述を読んで,設問1~4に答えよ。
G社は,飲食店向けのタッチ式注文端末(以下,端末という)を開発している。飲食店向けタッチ式注文システムのシステム構成を図1に示す。管理システムは,ネットワークのアドレスを利用して,端末を識別する。〔端末の画面操作〕
端末の画面はタッチパネルになっている。利用者は,ボタンの領域(以下,ボタンという)にタッチして端末を操作する。画面には,選択画面,注文画面及び履歴画面の3種類がある。端末画面の表示概要を図2に示す。 端末は,利用者が一つのボタンに触れ,離したときに,そのボタンにタッチしたと認識する。また,利用者が複数のボタンに同時に触れていた場合,最後に離したボタンをタッチしたと認識する。
なお,端末の初期化中又は画面の切替え中に,ボタンにタッチした場合,タッチは無効とする。
〔端末の動作概要〕
端末の主な機能の動作概要を表1に示す。〔端末-管理システム間の通信〕
注文ボタンへのタッチを認識すると,端末は,管理システムに注文メッセージを送信する。管理システムは,注文メッセージを受信すると,一定時間後に,端末に注文確定メッセージを送信する。
端末は,注文確定メッセージを受信すると,注文履歴の中から対応する注文を確定し,管理システムに注文確定完了メッセージを送信する。ただし,対応する注文が注文履歴の中に存在しなかった場合,端末は注文確定メッセージを破棄する。
管理システムは,注文確定メッセージを送信後,一定時間内に端末から注文確定完了メッセージを受信できなかった場合,注文が取り消されたものとして扱う。注文取消ボタンへのタッチを認識すると,当該の注文が確定していない場合に限り,端末は,管理システムに注文取消メッセージを送信する。
〔端末-管理システム間のメッセージの構成〕
注文メッセージは,メッセージの種別を示すデータ,注文ID及び注文情報から構成される。それ以外のメッセージは,メッセージの種別を示すデータ及び注文IDから構成される。
〔端末のソフトウェア〕
端末は,イベントドリブンプリエンプション方式のリアルタイムOSを使用する。
G社は,飲食店向けのタッチ式注文端末(以下,端末という)を開発している。飲食店向けタッチ式注文システムのシステム構成を図1に示す。管理システムは,ネットワークのアドレスを利用して,端末を識別する。〔端末の画面操作〕
端末の画面はタッチパネルになっている。利用者は,ボタンの領域(以下,ボタンという)にタッチして端末を操作する。画面には,選択画面,注文画面及び履歴画面の3種類がある。端末画面の表示概要を図2に示す。 端末は,利用者が一つのボタンに触れ,離したときに,そのボタンにタッチしたと認識する。また,利用者が複数のボタンに同時に触れていた場合,最後に離したボタンをタッチしたと認識する。
なお,端末の初期化中又は画面の切替え中に,ボタンにタッチした場合,タッチは無効とする。
〔端末の動作概要〕
端末の主な機能の動作概要を表1に示す。〔端末-管理システム間の通信〕
注文ボタンへのタッチを認識すると,端末は,管理システムに注文メッセージを送信する。管理システムは,注文メッセージを受信すると,一定時間後に,端末に注文確定メッセージを送信する。
端末は,注文確定メッセージを受信すると,注文履歴の中から対応する注文を確定し,管理システムに注文確定完了メッセージを送信する。ただし,対応する注文が注文履歴の中に存在しなかった場合,端末は注文確定メッセージを破棄する。
管理システムは,注文確定メッセージを送信後,一定時間内に端末から注文確定完了メッセージを受信できなかった場合,注文が取り消されたものとして扱う。注文取消ボタンへのタッチを認識すると,当該の注文が確定していない場合に限り,端末は,管理システムに注文取消メッセージを送信する。
〔端末-管理システム間のメッセージの構成〕
注文メッセージは,メッセージの種別を示すデータ,注文ID及び注文情報から構成される。それ以外のメッセージは,メッセージの種別を示すデータ及び注文IDから構成される。
〔端末のソフトウェア〕
端末は,イベントドリブンプリエンプション方式のリアルタイムOSを使用する。
- 端末の初期化
端末の電源を入れると,初期化プログラムが動作する。初期化プログラムは,ハードウェアの初期化,メモリの初期化,端末制御プログラムのRAMへの転送,及びOSの起動を行う。端末制御プログラムのRAMへの転送速度は1Mバイト/秒,ハードウェア及びメモリの初期化から端末制御プログラムの転送開始までの所要時間は0.2秒であり,OSの起動には0.3秒掛かる。 - タスクの機能概要
主なタスクの機能概要を表2に,入力判定タスクの処理を図3に示す。
設問1
端末の動作について,(1)~(3)に答えよ。
- 200kバイトの端末制御プログラムの場合,初期化プログラムの動作開始からOSの起動完了まで何秒掛かるか。答えは小数第2位を四捨五入して,小数第1位まで求めよ。ここで,1Mバイト=1,000kバイト,1kバイト=1,000バイトとし,初期化プログラムの各処理の移行に必要な時間は無視できるものとする。
- 注文IDだけでは実現できないことを解答群の中から選び,記号で答えよ。
- 管理システムが端末に注文確定メッセージを送信してから,端末が受信するまでの間に,端末が,当該の注文の注文取消メッセージを送信した場合の,端末の動作として適切なものを解答群の中から選び,記号で答えよ。
(2) に関する解答群
- 注文を確定するときに,確定すべき注文を選択する。
- 注文を取り消すときに,注文履歴内の取り消すべき注文を選択する。
- 注文を取り消すときに,当該の注文を取り消してよいかを判断する。
- 利用者が注文した順に,履歴画面に注文情報を並べる。
(3) に関する解答群
- 管理システムと端末の情報に矛盾が生じ,異常な処理が実行される。
- そのときの端末の状態によって異なる。
- 注文確定メッセージが優先され,注文を取り消すことはできない。
- 当該の注文の注文情報を削除する。
解答入力欄
- 秒
解答例・解答の要点
- 0.7
- ウ
- エ
解説
- 初期化プログラムの動作開始からOSの起動完了まで何秒掛かるかを考えます。
問題文にある〔端末のソフトウェア〕の"端末の初期化"に、「初期化プログラムは,ハードウェアの初期化,メモリの初期化,端末制御プログラムのRAMへの転送,及びOSの起動を行う」とあります。これらの処理は逐次実行されていくため、以下の3つの処理に要する時間の合計となります。- ハードウェア・メモリの初期化
- 端末制御プログラムのRAMへの転送
- OSの起動
②の端末制御プログラムのRAMへの転送に掛かる時間は、RAMへの転送データ量と転送速度から計算します。本文中に「端末制御プログラムのRAMへの転送速度は1Mバイト/秒」とあり、設問1には「200kバイトの端末制御プログラムの場合」とあるため、この値を用いて転送に掛かる時間を計算します。「プログラムのサイズ÷転送速度=転送に掛かる時間」ですので、
200kバイト÷1Mバイト/秒=0.2秒
よって、②端末制御プログラムのRAMへの転送に掛かる時間は0.2秒です。
最後に、①~③それぞれの時間を合計して初期プログラムの動作開始からOSの起動完了までに掛かる時間を求めます。
0.2秒+0.2秒+0.3秒=0.7秒
∴0.7(秒) - 本文中の記述を読み取り、注文IDだけでは実現できないことを解答群の中から選びます。
- 各注文には連番で一意の注文IDが付けられています。確定すべき注文は注文IDだけで特定できるので、実現できます。
- 利用者が商品を注文すると、注文ID、商品名、注文個数が注文履歴に保存されます。注文履歴内の取り消すべき注文を選択する場合は、注文IDだけで特定できるため、実現できます。
- 正しい。問題文の〔端末-管理システム間の通信〕には、「注文取消ボタンへのタッチを認識すると,当該の注文が確定していない場合に限り,端末は,管理システムに注文取消メッセージを送信する」とあります。注文IDの他に「注文が確定しているかどうかの情報」が必要です。
- 問題文の「表1 端末の主な機能の動作概要」に、「注文IDは、端末ごとに1から始める連番として生成される」とあるため、注文IDをキーとして昇順に並べ替えれば実現できます。
- 〔端末-管理システム間の通信〕及び表1「端末の主な機能の動作概要」から処理のフローを考えます。注文確定メッセージを端末が受信する前に注文取消メッセージを送信した場合の動作は次のようになります。
- 端末は、注文確定メッセージの受信前なので、注文取消メッセージを送信する
- 端末は、注文履歴から当該注文情報を削除し、画面表示を更新する
- 端末は、注文確定メッセージを受信するが、当該注文履歴が存在しないため破棄する
- 管理システムは、注文確定完了メッセージを受信できないため注文が取り消されたものとして扱う
注文取消メッセージの送信時に当該注文の注文情報の削除を行わないと、注文履歴に残ったままとなり、注文確定メッセージの受信により注文確定することとなってしまいます。よって、端末が注文取消メッセージを送信した場合には「当該の注文の注文情報を削除する」処理が必須となります。
∴エ
設問2
図3中の下線①について,(1),(2)に答えよ。
- 通知してきたタスク名を答えよ。
- 通知された情報を答えよ。
解答入力欄
解答例・解答の要点
- タッチパネルタスク
- タッチされた座標情報
解説
- 問題文の表2「主なタスクの機能概要」の"入力判定"の説明には、「タッチパネルタスクから通知された情報と,画面表示タスクから通知された画面情報を基に,タッチの有効性を判断する」とあります。つまり、通知元はタッチパネルタスクまたは画面表示タスクとわかります。
図3「入力判定タスクの処理」の中央部の処理を見ると「①通知された情報」と「画面情報」は区別されています。「画面情報」は画面表示タスクから通知されるので、もう一方の「①通知された情報」の通知元はタッチパネルタスクであると判断できます。
∴タッチパネルタスク - 問題文の表2「主なタスクの機能概要」の"タッチパネル"には、「タッチしたと認識すると起動し、必要情報を入力判定タスクに通知する」とあります。タッチパネルはポインティングデバイスの一つですから、タッチされた位置を入力情報として通知します。すなわち、入力判定タスクに通知される必要情報とは「タッチされた座標情報」です。
∴タッチされた座標情報
設問3
図3中のaに入れる適切な内容を,15字以内で答えよ。
解答入力欄
- a:
解答例・解答の要点
- a:画面切替え中か (7文字)
解説
〔aについて〕
aがYesのときには何の処理も行わずに入力判定タスクを終了していることに着目します。問題文の〔端末の画面操作〕を読むと、「端末の初期化中又は画面の切替え中に,ボタンにタッチした場合,タッチは無効とする」とあり、タッチ操作があったにもかかわらず何もしない場合があることがわかります。aにはこれを判定する分岐条件が入ります。
利用者からのタッチ操作を受け付ける時点では既に端末の初期化(OS・タスクの起動)は終了しているので、aには「画面切替え中か」が入ります。画面表示タスクの説明には「画面切替え中は,切替えフラグを1にする」とあるので、別解として「切替えフラグが1であるか」という分岐条件でもいいのではないかと考えます。
∴画面切替え中か
aがYesのときには何の処理も行わずに入力判定タスクを終了していることに着目します。問題文の〔端末の画面操作〕を読むと、「端末の初期化中又は画面の切替え中に,ボタンにタッチした場合,タッチは無効とする」とあり、タッチ操作があったにもかかわらず何もしない場合があることがわかります。aにはこれを判定する分岐条件が入ります。
利用者からのタッチ操作を受け付ける時点では既に端末の初期化(OS・タスクの起動)は終了しているので、aには「画面切替え中か」が入ります。画面表示タスクの説明には「画面切替え中は,切替えフラグを1にする」とあるので、別解として「切替えフラグが1であるか」という分岐条件でもいいのではないかと考えます。
∴画面切替え中か
設問4
図3中の下線②の情報は二つあり,一つは画面種別である。もう一つの情報を答えよ。
解答入力欄
- o:
解答例・解答の要点
- o:有効なボタンの座標情報
解説
下線②の情報とは、入力判定タスクからメインタスクへの通知に含まれる二つの情報です。
ボタンをタッチした場合、端末はタッチされたボタンに対応する画面を表示しますが、次にどの画面を表示するかはメインタスクで決定されます(入力判定タスクはタッチの有効性を判断するだけで、どのボタンが押されたかまでは判断しません)。このため、入力判定タスクからは次の画面を判断するために必要な情報をメインタスクに通知する必要があります。
メインタスクが次の画面を判断するためには、どの画面のどのボタンが押されたかを知らなくてはなりません。つまり、必要な情報とは「現在の画面種別」と「有効なボタンの座標情報」です。したがって「有効なボタンの座標情報」が答えとなります。
∴有効なボタンの座標情報
ボタンをタッチした場合、端末はタッチされたボタンに対応する画面を表示しますが、次にどの画面を表示するかはメインタスクで決定されます(入力判定タスクはタッチの有効性を判断するだけで、どのボタンが押されたかまでは判断しません)。このため、入力判定タスクからは次の画面を判断するために必要な情報をメインタスクに通知する必要があります。
メインタスクが次の画面を判断するためには、どの画面のどのボタンが押されたかを知らなくてはなりません。つまり、必要な情報とは「現在の画面種別」と「有効なボタンの座標情報」です。したがって「有効なボタンの座標情報」が答えとなります。
∴有効なボタンの座標情報