応用情報技術者過去問題 令和7年春期 午後問7

⇄問題文と設問を画面2分割で開く⇱問題PDF

問7 組込みシステム開発

電動キックボードのシェアリングシステムに関する次の記述を読んで,設問に答えよ。

 G社は,電動キックボード(以下,電動KBという)のシェアリングシステム(以下,本システムという)を開発している。本システムは,利用者に対し,電動KBの貸出し,使用及び返却をさせるものである。本システムを利用する場合には,利用者が事前にスマートフォン(以下,スマホという)に専用アプリケーションプログラム(以下,アプリという)をインストールし,利用者情報を登録して,利用者IDを取得しておく必要がある。電動KBの外観を図1に,本システムの主な構成を図2に,本システムの主な構成要素を表1に示す。
pm07_1.png/image-size:529×228
pm07_2.png/image-size:584×347
〔本システムの利用方法〕
 利用開始前の電動KBは,車輪がロックされた状態で,専用の貸出し用及び返却用の駐車スペース(以下,ポートという)に,駐車している。本システムには,複数のポートがあり,各ポートで電動KBの貸出し又は返却を行う。なお,ポート以外の場所では,電動KBの貸出し及び返却を行うことはできない。電動KBの利用手順を表2に示す。
pm07_3.png/image-size:586×277
〔電動KBの状態の遷移〕
 電動KBの状態の遷移を図3に示す。
pm07_4.png/image-size:582×238
〔電動KBの動作概要〕
 電動KBの動作概要を次に示す。
  • 利用開始前の電動KBは,車輪をロックした待機中状態でポートに駐車している。
  • 待機中状態で利用者がアプリで"貸出し"を選択すると,電動KBはアプリを介した管理サーバからの指示によって車輪のロックを解除して停止中状態になる。
  • 停止中状態で手押しなどによって0.3km/時以上になると,走行準備状態になる。
  • 走行準備状態で手押しなどを続けて3km/時以上になると,加速可能状態になる。
  • 加速可能状態でアクセルを押すと,走行中状態になり次の動作のいずれかを行う。
    • 現在速度が最高速度未満の場合は,アクセルの操作量に応じて,モーターのトルクの発生を制御する。
    • 現在速度が最高速度に達した場合は,最高速度表示灯を点灯させ,モーターのトルクを抑制する。
  • 走行中状態でアクセルを戻すと,加速可能状態になる。
  • 走行準備状態,加速可能状態,走行中状態で0.1km/時未満が一定時間継続すると停止中状態になる。
  • 停止中状態で利用者がアプリで"返却"を選択したとき,管理サーバは(ア)ある情報を確認してから,返却の指示を行う。電動KBはアプリを介した管理サーバからの指示によって車輪をロックし,待機中状態になる。
  • 状態に関係なく,ブレーキレバーを握ると,機械的にブレーキが掛かる。

〔本システムで使用する主なメッセージ〕
 本システムで使用する主なメッセージを表3に示す。
pm07_5.png/image-size:555×346
〔電動KBの制御部のソフトウェア構成について〕
 電動KBの制御部では,リアルタイム0Sを使用する。制御部の主なタスクの処理概要を表4に示す。
pm07_6.png/image-size:575×310

設問1

電動KBを手押しからアクセルを押して加速した後,アクセルを戻して惰性で走行したときの状態の遷移を解答群の中から選び,記号で答えよ。
解答群
  • 走行準備→加速可能
  • 走行準備→加速可能→走行中
  • 走行準備→加速可能→走行中→加速可能
  • 走行準備→加速可能→走行中→加速可能→走行準備

解答入力欄

解答例・解答の要点

解説

利用者が手押しで速度を上げ、アクセルで加速し、その後アクセルを戻して惰性走行する一連の流れに対し、電動KBの状態がどう遷移するかを本文の仕様に沿ってたどります。

設問の文章に記載されている操作は、次の3つに分解することができます。
  • 電動KBを手押しする
  • アクセルを押して加速する
  • アクセルを戻して惰性で走行する
まず、手押しで速度が上がったときの遷移です。〔電動KBの概要〕には以下の記述があります。
  • 停止中状態で手押しなどによって0.3km/時以上になると,走行準備状態になる
  • 走行準備状態で手押しなどを続けて3km/時以上になると,加速可能状態になる
この時点ではアクセルは押していないこと、解答群がすべて「走行準備→加速可能」から始まっていることを考慮すると、電動KBを手押しすることにより「走行準備→加速可能」に遷移することがわかります。

次に、アクセルを押して加速したときの遷移です。本文中に「加速可能状態でアクセルを押すと,走行中状態になり…」とあるため、アクセスを押すと「加速可能→走行中」へと遷移します。

最後に、アクセルを戻して惰性で走る場面です。本文では「走行中状態でアクセルを戻すと,加速可能状態になる」としているため、アクセスを戻すと「走行中→加速可能」へと遷移します。

「エ」にある「加速可能→走行準備」への直接の遷移は、図3にそれを示す矢印が描かれてないことからわかるようにありません。

したがって「ウ」が適切な状態遷移となります。

∴ウ:走行準備→加速可能→走行中→加速可能

設問2

〔電動KBの状態の遷移〕及び〔電動KBの動作概要〕について答えよ。
  • 図3中のaに入れる適切な条件を答えよ。
  • 下線(ア)について,ある情報には車体ID及び利用者ID以外に何があるか。本文中の字句を用いて答えよ。なお,スマホと電動KB間はBLE通信が安定的に行える状態である。

解答入力欄

    • a:

解答例・解答の要点

    • a:0.1km/時未満が一定時間継続
    • 位置情報
  • 解説

    • aについて〕
      空欄aは、走行準備・加速可能・走行中の各状態から、停止中へと遷移する条件です。

      〔電動KBの動作概要〕に「走行準備状態,加速可能状態,走行中状態で0.1km/時未満が一定時間継続すると停止中状態になる」とあり、他に関連する記述が見当たらないことから、本文そのまま「0.1km/時未満が一定時間継続」が答えとなります。

      a=0.1km/時未満が一定時間継続

    • 〔本システムの利用方法〕には、返却時の制約として次の説明があります。
      • ポート以外の場所では,電動KBの貸出し及び返却を行うことはできない
      • 予約した返却ポートに,利用中の電動KBを駐車する
      すなわち、返却は所定のポート上でのみ許可されます。返却ポート以外の場所での返却を防ぐためには、管理サーバは電動KB(正確にはアプリが取得するスマホの)位置情報を見て、その位置が「予約した返却ポート」であるかを判定したうえで返却指示を行う必要があります。

      表3を見ると、停止中状態で利用者がアプリで"返却"を選択したときは、管理サーバに対し"返却要求"メッセージが送られることがわかります。本メッセージの構成データは「車体ID,利用者ID,位置情報」の3つです。返却の可否を判断する材料となる情報で、車体ID・利用者ID以外のものなので「位置情報」が該当します。

      ∴位置情報

    設問3

    電動KBの制御部の主なタスクについて答えよ。
    • 表4中のbに入れる適切な電動KBの状態を図3中の字句で,表4中のdに入れる適切なタスク名を表4中のタスク名でそれぞれ答えよ。
    • 表4中のcに入れる適切な情報を答えよ。

    解答入力欄

      • b:
      • d:
      • c:

    解答例・解答の要点

    • b:停止中
    • d:メイン
    • c:電動KBの状態
  • 解説

    • bについて〕
      空欄bに入るのは車輪のロックの解除した直後の状態です。

      〔電動KBの動作概要〕に「利用者がアプリで"貸出し"を選択すると,…車輪のロックを解除して停止中状態になる」とあり、これ以外にロックを解除するタイミングはないため、「停止中」が答えとなります。

      b=停止中

      dについて〕
      空欄dには速度計測タスクが、現在速度を通知する先のタスク名が入ります。

      表3の現在速度に関する説明として次の2点があります。
      • メインタスクから現在速度及び電池残量の情報を受け取ると,現在速度及び電池残量をディスプレイに表示し,最高速度表示等を制御する(表示タスク)
      • 現在速度及び電池残量を表示タスクに通知する(メインタスク)
      表示タスクは現在速度の情報を必要としますが、その情報はメインタスクを介して通知される仕様であることが読み取れます。また、メインタスク自体は「電動KBの状態管理」を担うために現在速度の情報を必要とします。この2点より、速度計測タスクが現在速度を通知する先は「メイン」タスクと判断できます。

      d=メイン

    • cについて〕
      空欄cにはメインタスクからモータータスクに通知すべき情報が入ります。

      〔電動KBの動作概要〕より、モーター制御に関連する動作は以下の3点です。
      1. 走行中状態のときのみ、モーターのトルク制御を行う
      2. 現在速度が最高速度未満の場合は、アクセルの操作量によってモーターのトルクの発生を制御する
      3. 現在速度が最高速度に達した場合は、モーターのトルクを抑制する
      表3を見ると、モータータスクにはいくつかの情報が送られてきます。アクセルタスクからは「アクセルの操作量」が、速度計測タスクからは「現在速度」が通知され、これが②③を実現します。したがって、メインタスクからは①を判定するための情報、つまり「電動KBの状態」を通知すればよいです。

      c=電動KBの状態

    設問4

    電動KBの貸出し・返却の処理について答えよ。
    • 利用者が電動KBを借りる処理において車輪のロック解除が失敗なく正常に行われた場合に,送受信されるメッセージの流れについて,egに入れる適切なメッセージ名を解答群の中から選び,記号で答えよ。

      "貸出し要求"→"貸出し指示"→"e"→"f"→"g"

    • 利用者がアプリで"返却"を選択した後,電動KBは1回目では車輪のロックに失敗し,2回目で車輪のロックに成功した。管理サーバが結果を受信するまでの処理について,次の①及び②に要する時間は何秒かそれぞれ答えよ。答えは小数第3位を四捨五入して,小数第2位まで求めよ。
      ここで,管理サーバとアプリ間で一つのメッセージ通信には200ミリ秒掛かり,アプリと電動KB間で一つのメッセージ通信には10ミリ秒掛かるものとする。また,電動KBの車輪をロックする処理に成功した場合1秒,電動KBの車輪をロックする処理に失敗した場合1秒,メッセージ再送までに0.5秒掛かり,その他の管理サーバ,アプリ,電動KBの処理時間は無視できるものとする。
      1. アプリで"返却"を選択してから,管理サーバから"返却指示"メッセージを受信するまで
      2. アプリが,"返却指示"メッセージを受信してから,結果が成功の"車輪ロック応答"メッセージを受信するまで
    e,f,g に関する解答群
    • 貸出し応答
    • 車輪ロック指示
    • 車輪ロック応答
    • 車輪ロック解除指示
    • 車輪ロック解除応答

    解答入力欄

      • e:
      • f:
      • g:
      • ①:
      • ②:

    解答例・解答の要点

    • e:
    • f:
    • g:
    • ①:0.40
    • ②:2.54
  • 解説

    • 車輪ロック解除に関連するメッセージは、"車輪ロック解除指示"と"車輪ロック解除応答"の2つです。一方、"車輪ロック指示"と"車輪ロック応答"は返却時の車輪ロック動作で使われるメッセージなので、貸出時には使用されません。よって、残る空欄に入るメッセージは"貸出し応答"になると推測できます。

      "車輪ロック解除指示"と"車輪ロック解除応答"は、アプリと電動KBとの間でやり取りされるメッセージです。"車輪ロック解除応答"の構成データには「結果」が含まれるので、解除を指示した後に送信されるメッセージとなります。そのため、"車輪ロック解除指示"→"車輪ロック解除応答"という先後関係となります。

      また、"貸出し応答"は、アプリから管理サーバに送信されるメッセージです。構成データとして「車輪ロック解除結果」が含まれることから、アプリが電動KBから"車輪ロック解除応答"を受け取り、解除を確認した後に送信されることがわかります。

      以上より、メッセージの流れは「貸出し要求」→「貸出し指示」→「e:車輪ロック解除指示」→「f:車輪ロック解除応答」→「g:貸出し応答」となります。

      e=車輪ロック解除指示
       f=車輪ロック解除応答
       g=貸出し応答
      pm07_7.png/image-size:503×300
    • 〔①について〕
      アプリで"返却"を選択した場合、次の2つのメッセージが送受信されます。これ以外にはありません。
      1. 返却要求(アプリ→管理サーバ)
      2. 返却指示(管理サーバ→アプリ)
      管理サーバとアプリ間で一つのメッセージ通信には200ミリ秒掛かるので、要する時間は「200ミリ秒×2=400ミリ秒」。解答単位は秒で、小数第2位まで求めることに注意すると、答えは「0.40秒」です。

      ∴0.40(秒)

      〔②について〕
      1回目では車輪のロックに失敗し、2回目で車輪のロックに成功した場合、アプリが"返却指示"を受信してから"車輪ロック"を受信するまで以下の処理が行われます。
      1. 車輪ロック指示(アプリ→電動KB)
      2. 車輪ロック処理:失敗
      3. 車輪ロック応答(電動KB→アプリ)
      4. メッセージ再送まで待機
      5. 車輪ロック指示(アプリ→電動KB)
      6. 車輪ロック処理:成功
      7. 車輪ロック応答(電動KB→アプリ)
      アプリと電動KB間のメッセージ通信(1, 3, 5, 7)は10ミリ秒、車両ロック処理(2, 6)は成功・失敗を問わず1秒、メッセージ再送(4)まで0.5秒掛かるとあるので、要する時間は、

       10ミリ秒×4+1秒×2+0.5秒=2.54秒
       0.04秒+2秒+0.5秒=2.54秒

      ∴2.54(秒)
    問7成績

    令和7年春期 午後問題一覧

    問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11 採点講評
    © 2010- 応用情報技術者試験ドットコム All Rights Reserved.

    Pagetop