傘シェアリングシステムに関する次の記述を読んで,設問に答えよ。
I社は,鉄道駅,商業施設,公共施設などに無人の傘貸出機を設置し,利用者に傘を貸し出す,傘シェアリングシステム(以下,本システムという)を開発している。 本システムの構成を図1に,傘貸出機の外観を図2に示す。
図1 本システムの構成
図2 傘貸出機の外観
傘貸出機は,スマートフォンで動作する専用のアプリケーションプログラム(以下,アプリという)と組み合わせて傘の貸出し又は返却を行う。利用者がアプリを使って,利用する傘貸出機に貼り付けてある2次元バーコードの情報を読み,傘貸出機を特定する。アプリは,管理サーバへ傘の貸出要求又は返却要求を送る。管理サーバは,アプリからの要求に従って指定の傘貸出機へ指示を送り,貸出し又は返却が実施される。傘貸出機の構成を図3に示す。
図3 傘貸出機の構成
〔傘貸出機の処理〕
・貸出・返却口に内蔵されているロック機構は,制御部からの指示で貸出・返却口のロックを制御する。ロック機構は,1度の操作で傘貸出機から1本の傘の貸出し,又は,1本の傘の返却ができる。ロックが解除されると,制御部はスピーカーから音声を出力して,ロックが解除されたことを利用者に知らせる。また,ロック機構は,貸出時と返却時とでロックの解除方法が異なっており,貸出時のロックの解除では,傘の貸出しだけが可能となり,返却時のロックの解除では,傘の返却だけが可能となる。
・ロック機構の傘検知部は,傘検知部を通過する傘を検知する光センサー(以下,センサーという)及び傘に付与される識別情報を記録したRFIDタグを読み取るRFIDリーダーで構成される。①制御部は,傘検知部のセンサー出力の変化を検出すると10ミリ秒周期で出力を読み出し,5回連続で同じ値が読み出されたときに,確定と判断し,その値を確定値とする。傘の特定には,RFIDリーダーで読み出した情報(以下,RFIDタグの情報という)が使用される。傘貸出機が貸出し,返却を行うためのロックを解除した後10秒経過しても傘の貸出し,返却が行われなかった場合は,異常と判断し,ロックを掛ける。異常の際は,制御部がスピーカーから音声を出力して,異常が発生したことを利用者に知らせる。
・傘貸出機内の傘の本数は,制御部で管理する。本システムの管理者は,初回の傘設置の際,管理サーバ経由で傘の本数の初期値を傘貸出機に登録する。
・傘貸出機は,利用者への傘の貸出し又は返却が終了すると,自機が保有する傘の本数及び傘を識別するRFIDタグの情報(以下,これらを管理情報という)を更新し,管理サーバに送信する。傘貸出機は,全ての管理情報を管理サーバから受信し記憶する。
制御部のソフトウェアには,リアルタイムOSを使用する。制御部の主なタスクの一覧を表1に示す。
タスク名 | 処理概要 |
メイン |
・管理サーバから指示を受信すると,貸出タスク又は返却タスクへ送信する。 ・“RFID情報”を受けると,RFIDタグの情報を確認し,“正常”又は“異常”を必要とする送信元タスクへ送信する。 ・“ロック解除完了”を受けると,傘の貸出し又は返却が可能なことを知らせる音声をスピーカーから出力する。 ・“完了”を受けると,管理情報を更新し,管理サーバへ管理情報を送信する。 ・“異常終了”を受けると,異常を知らせる音声をスピーカーから出力し,管理サーバに異常終了を送信する。 |
貸出 |
・要求を受けると,センサーで傘を検知し,RFIDリーダーでRFIDタグの情報を読み出し,“RFID情報”をメインタスクに送信してから,傘貸出機のロックを解除し,“ロック解除完了”をメインタスクに送信する。 ・傘が取り出されたことをセンサーで検知すると,傘貸出機のロックを掛け,メインタスクへ“完了”を送信する。 ・ロックを解除した後,10秒経過しても傘が取り出されなかった場合は,傘貸出機のロックを掛け,メインタスクへ“異常終了”を送信する。 |
返却 |
・要求を受けると,センサーで傘を検知し,RFIDリーダーでRFIDタグの情報を読み出し,“RFID情報”をメインタスクに送信する。送信後“正常”を受けると,傘貸出機のロックを解除し,“ロック解除完了”をメインタスクに送信する。 ・傘が傘貸出機へ返却されたことをセンサーで検知すると,傘貸出機のロックを掛け,メインタスクへ“完了”を送信する。 ・“異常”を受けると,傘貸出機のロックを掛け,メインタスクへ“異常終了”を送信する。 ・ロックを解除した後,10秒経過しても傘が返却されなかった場合は,傘貸出機のロックを掛け,メインタスクへ“異常終了"を送信する。 |
出典:令和4年度秋期 問7
設問1 傘貸出機の処理について答えよ。
(1)本文中の下線①について答えよ。
(a)制御部が確定値を算出するのに,複数回センサー出力を読出しする理由を20字以内で答えよ。
(b)制御部がセンサー出力の変化を検出してからセンサー出力の確定ができるまで最小で何ミリ秒か。答えは小数点以下を切り捨てて,整数で答えよ。
解答・解説
解答例
(a)ノイズなどによる誤動作を防ぐため
(b)40
解説
(2)ロックを解除した後の異常を10kHzのカウントダウンタイマーを使用して,タイマーの値が0になったときに異常と判断する。タイマーに設定する値を10進数で求めよ。ここで,1k=10³とする。/p>
解答・解説
解答例
100,000
解説
設問2 制御部の主なタスクについて答えよ。
(1)貸出タスクがロックを解除した後,利用者が傘を取り出さなかった場合の処理について,次の文章中の a , b に入れる適切な字句を表1中の字句を用いて答えよ。
貸出タスクがロックを解除したにもかかわらず,利用者が傘を取り出さなかった場合は,貸出タスクが異常と判断し, a タスクに送信する。“異常終了"を受けた。 a タスクは, b に異常終了を送信する。
解答・解説
解答例
a:メイン b:管理サーバ
解説
(2)返却時のタスクの処理について記述した次の文章中の c , d に入れる適切な字句を解答群の中から選び,記号で答えよ。
メインタスクは,不正な傘を返却させないように,返却タスクが傘から読み出した。 c に対し, d と異なっていないか確認し,異なっていなければ,返却タスクに“正常”を送信する。返却タスクはメインタスクから“正常”を受けるまで,ロックを解除しない。
解答群
- RFIDタグの情報
- RFIDリーダー
- 傘の本数
- 貸出中の傘
- センサー出力
- 不正な傘
- 返却タスク
- メインタスク
解答・解説
解答例
c:ア d:エ
解説
設問3 制御部のタスクの処理について答えよ。
(1)次の文章中の e 〜 h に入れる適切な字句を答えよ。
傘の貸出しを行う場合,メインタスクから要求を受けた貸出タスクは,傘検知部のセンサーを起動し,傘を検知する。傘が検知されたらRFIDリーダーでRFIDタグの情報を読み出し,“RFID情報”をメインタスクに送信する。“RFID情報”を送信後,傘貸出機のロックを解除し,“ e ”をメインタスクに送信する。傘が傘貸出機から取り出されたことを f すると,傘貸出機の g ,メインタスクへ" h ”を送信する。
解答・解説
解答例
e:ロック解除完了
f:センサーで検知
g:ロックを掛け
h:完了
解説
(2)“完了”を受けた場合のメインタスクの処理を25字以内で答えよ。
解答・解説
解答例
管理情報を更新し,管理サーバへ送信する。
解説
IPA公開情報
出題趣旨
近年,様々な物を各自で個別に所有するのではなく,複数人で共同利用するシェアリングサービスが普及しつつある。
本問では,傘シェアリングシステムを題材に,応用情報技術者に求められる要求仕様の理解力,要求仕様に基づいてソフトウェアを設計する能力,及びタスク間の処理の理解について問う。
採点講評
問7では,傘シェアリングシステムを題材に,要求仕様の理解,要求仕様に基づいたソフトウェア設計,及びタスク間の処理について出題した。全体として正答率は高かった。
設問1(1)(a)は,正答率が低かった。センサーを用いて対象を検知する際,現実ではノイズなどが発生して不正な値を検知することもあるので,そのような不具合をソフトウェアによって対処する必要があることを理解してほしい。
設問2は,正答率が高かった。それぞれのタスクの処理について正確に把握することは,組込みシステムにおいては非常に重要な技術である。是非理解を深めてほしい。
設問3は,正答率が高かった。傘の貸出しに関する制御部のタスクの一連の処理を正しく理解できていることがうかがえた。(2)は正答率が高かったが,処理の一部しか記述されていない解答,処理の順序が異なる解答が一部見受けられた。通知を受けた際のタスクの処理の内容と,その順序を正しく理解して解答してほしい。