基本情報技術者過去問題 平成31年春期 午後問5

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

問5 ソフトウェア設計

農産物の検査管理システムに関する次の記述を読んで,設問1~3に答えよ。

 K社は,農産物を検査し,結果を報告する検査業務を実施している。検査の申込者の情報,検査を依頼された農産物(以下,検査農産物という)の情報,及び検査項目ごとの検査結果の情報は,検査管理システムで管理する。

〔検査農産物の検査業務の流れ〕
 検査農産物の検査業務の流れは,次のとおりである。
  • 担当者は,申込者から検査農産物と検査項目を受け付ける。一つの検査農産物に対して五つまでの検査項目を受け付ける。
  • 担当者は,申込者が新規の場合,申込者の情報を検査管理システムに登録する。
  • 担当者は,検査農産物の情報を検査管理システムに登録する。ただし,検査項目は登録しない。
  • 担当者は,受け付けた検査項目の検査を実施する。受け付けた全ての検査項目の検査が終了した後,検査結果の情報を,検査項目ごとに検査管理システムに一括して登録する。
  • 担当者は,検査管理システムに登録された検査結果を確認して,申込者に検査結果を報告する。
〔検査管理システムの説明〕
 検査管理システムの構成を,図1に示す。検査管理システムは3台のサーバから成り,各サーバは個別にデータベース(以下,DBという)をもつ。各DBへの情報の登録には,各サーバの申込情報登録ツール,利用者情報登録ツール及び検査結果登録ツールを利用する。
 申込者に報告する検査結果を確認するために,担当者は報告用アプリケーションを利用する。報告用アプリケーションは,各サーバが提供しているWebインタフェースのAPI(以下,WebAPIという)である情報取得用WebAPIと認証関連WebAPIだけを利用して,各DBにアクセスする。
 担当者は,報告用アプリケーションに自身の利用者IDとパスワードを入力して,検査管理システムにログインする。報告用アプリケーションは,ログイン処理に認証関連WebAPIを利用し,ログインに成功したら認証サーバからアクセス用のID(以下,アクセスIDという)を取得する。アクセスIDは,認証情報として認証DBに格納され,ログアウトするまで管理される。報告用アプリケーションは,アクセスIDを情報取得用WebAPIの引数に指定して,各DBから必要な情報を取得する。
〔検査管理システムが管理する情報〕
 検査管理システムが管理する情報と項目を,図2に示す。各情報は,個別のID(利用者ID,検査IDなど)を付与される。各情報は,いずれかのDBだけに格納されている。各サーバがもつDBは,そのサーバが提供している情報取得用WebAPI(表1参照)又は認証関連WebAPIと,登録ツールだけからアクセスできる。よって,申込DBに格納されている情報は,図2に示す情報のうち,aである。
〔情報取得用WebAPIの説明〕
 申込情報管理サーバと検査結果管理サーバが提供している情報取得用WebAPIの説明を,表1に示す。
 情報取得用WebAPIは,指定された引数に基づいて処理を実行し,取得した情報を戻り値とする。
 引数の指定方法には,情報取得用WebAPIによって,個別のIDを指定する方法,IDのリストを指定する方法,開始番号を指定する方法の3通りがある。情報取得用WebAPIの引数が開始番号の場合,格納されている情報を整列し,整列後の並びの先頭の情報を1件目とし,開始番号の位置から最多で10件を取得して戻り値とする。例えば,検査結果情報が25件ある場合,開始番号が1のときは整列後の並びの1~10件目を,開始番号が11のときは11~20件目を,開始番号が21のときは21~25件目を戻り値とする。
 情報取得用WebAPIは,処理開始時に,認証関連WebAPIを利用して,引数に指定されたアクセスIDが認証情報として管理されているかどうかを確認する。管理されていない場合は,処理を受け付けない。ここで,表1中のWebAPI仕様の処理の説明では,アクセスIDの確認処理の説明は省略している。

設問1

本文中及び図2中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
  • 認証情報及び申込者情報
  • 認証情報及び利用者情報
  • 認証情報,申込者情報及び検査農産物情報
  • 検査農産物情報
  • 申込者情報
  • 申込者情報及び検査農産物情報
b,c に関する解答群
  • アクセスID
  • 検査ID
  • 検査項目名
  • 検査農産物ID
  • 申込者ID
  • 利用者ID

解答選択欄

  • a:
  • b:
  • c:

解答

  • a=
  • b=
  • c=

解説

aについて〕
本文中では以下の2つの事実に基づいてaが結論付けられています。
  • 各情報は、いずれかのDBにだけ格納されている
  • 各DBは、そのDBが提供するWebAPIと登録ツールだけからアクセスできる
これを踏まえて、本文及び表1「情報取得用WebAPIの説明」を読むと、各情報が格納されるDBが判断できます。
認証情報
「アクセスIDは,認証情報として認証DBに格納され」という記述から認証DBに格納されるとわかります。
利用者情報
図1を見ると、利用者情報登録ツールから認証サーバに登録するフローになっています。よって、利用者情報は認証DBに格納されるとわかります。
申込者情報
図1を見ると、申込者情報登録ツールから申込情報管理サーバに登録するフローになっています。よって、申込者情報は申込DBに格納されるとわかります。
また表1のWebAPIの説明を見ると、申込情報管理サーバには、申込者IDを用いて申込者情報を取得するAPIが提供されています。申込者IDは申込者情報の主キーですので、この点からも申込者情報は申込DBに格納されているとわかります。
検査農作物情報
WebAPIの説明を見ると、申込情報管理サーバには、検査農産物IDを用いて検査農産物情報を取得するAPIが提供されています。検査農産物IDは検査農産物情報の主キーですので、検査農産物情報は申込DBに格納されているとわかります。
検査検査情報
WebAPIの説明を見ると、検査結果管理サーバには、検査IDを用いて検査結果情報を取得するAPIが提供されています。検査IDは検査結果情報の主キーですので、検査結果情報は検査結果DBに格納されているとわかります。
a=カ:申込者情報及び検査農作物情報

bについて〕
検査システムに登録された検査結果は、最終的に申込者に報告されます。図2の各情報には、申込を受け付けた検査農作物と申込者を紐づける情報がないため、bには申込者IDが入ります。

b=オ:申込者ID

cについて〕
検査結果管理サーバのWebAPIの説明を見ると、検査農産物IDを用いて指定した農産物の全ての検査結果情報を取得する"getResultInfoForProduct"が提供されています。検査管理情報を検査農作物ごとのレコードに絞るには、検査IDに検査農作物を紐づける情報が必要です。よってcには検査農産物IDが入ります。

c=エ:検査農作物ID

設問2

次の記述中の に入れる正しい答えを,解答群の中から選べ。

 報告用アプリケーションには農産物検査結果表示機能があり,この機能は,1件の検査農産物IDを入力して"表示"ボタンをクリックすると,画面に情報を表示する。農産物検査結果表示機能が表示する画面の例を,図3に示す。検査結果の情報が登録済みの検査農産物の検査農産物IDを入力した場合,"表示"ボタンをクリックしてから画面の表示が完了するまでには,表1に示す情報取得用WebAPIの実行が最低d回必要である。ここで,実行時にエラーは発生しないものとする。
pm05_4.png/image-size:397×256
d に関する解答群
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

解答選択欄

  • d:

解答

  • d=

解説

設問では、表1に示す情報取得用WebAPIの実行回数を問うているので、認証関連WebAPIの実行については除外して考えます。

図3の画面例に含まれる各情報は、それぞれ以下のDBに格納されています。
pm05_6.png/image-size:494×236
報告アプリケーションへのログイン後、1件の検査農産物IDから画面の情報を得る手順は以下のようになります(※1は2,3の後でもOK)。
  1. 検査結果管理サーバの"getResultInfoForProduct"に検査農産物IDを指定して、その農産物に関連付けられている全ての検査結果情報を取得する。
  2. 申込情報管理サーバの"getProductInfo"に検査農産物IDを指定して、その検査農産物の検査農産物名・申込者IDを取得する。
  3. 申込情報管理サーバの"getOffererInfo"に、2.で取得した申込者IDを指定して、申込者の団体名・住所・電話番号を取得する。
よって、画面の表示が完了するまでには最低3回のWebAPIの実行が必要です。

d=イ:3

設問3

次の記述中の に入れる正しい答えを,解答群の中から選べ。

 担当者から,検査農産物IDの検査結果を個別に閲覧するのではなく,一覧形式で閲覧したいという要望が挙がった。要望を受けて,報告用アプリケーションに検査結果リスト表示機能を追加する。
 検査結果リスト表示機能では,表1に示す情報取得用WebAPIを利用して,登録されている検査結果の情報(以下,農産物検査結果情報という)を全て一覧形式で表示する。1行の表示内容は,各農産物検査結果情報の一覧全体中での位置を示す番号と,農産物検査結果情報の内訳として,団体名,検査農産物ID,検査ID,検査項目名,検査結果及び検査日である。一覧にするとき,最近実施した検査の検査結果が先に表示されるように,検査日の降順に整列する。検査結果リスト表示機能が表示する画面の例を,図4に示す。ここで,実行時にエラーは発生しないものとする。
pm05_5.png/image-size:565×315
 検査結果リスト表示機能は,1画面に最多で10件の農産物検査結果情報を表示する。画面に表示されていない農産物検査結果情報を表示するときは,ボタン"前へ"又は"次へ"をクリックして表示の対象を切り替える。
 この機能では,初期表示時の開始番号を1として画面を表示する。ボタン"前へ"又は"次へ"をクリックすると,開始番号に-10又は10を加算して,画面を再表示する。画面表示のたびに,開始番号及び情報取得用WebAPIを利用して表示する情報を取得する場合,情報取得用WebAPIをeという順番で1回ずつ実行する。
e に関する解答群
  • listOffererInfo,listProductInfo,getResultInfoForProduct
  • listProductInfo,getOffererInfo,getResultInfoForProduct
  • listProductInfo,listOffererInfo,getResultInfoForProduct
  • listResultInfo,getOffererInfo,getProductInfo
  • listResultInfo,getProductInfo,getOffererInfo

解答選択欄

  • e:

解答

  • e=

解説

eについて〕
図4の画面の情報は、検査結果情報に番号と団体名を加えたものになっています。検査結果管理サーバには、検査結果情報を検査日・検査IDの降順で取得する"listResultInfo"があるので、このWebAPIで取得したリストをベースに、他のWebAPIを使用して団体名を取得する流れになります。

表1で示されている各WebAPIの特徴を踏まえると、一覧表示を行うときの実行手順は以下のようになります。
  1. 検査結果管理サーバの"listResultInfo"に開始番号を指定して、表示対象となる検査結果情報10件を降順で取得する。
  2. 1.で取得した検査結果情報に含まれる10個の検査農作物IDのリストを引数に、申込情報管理サーバの"getProductInfo"を実行して、各検査結果情報に対応する検査農作物情報10件を取得する。
  3. 2.で取得した検査農作物情報に含まれる10個の申込者IDのリストを引数に、申込情報管理サーバの"getOffererInfo"を実行して、各検査農作物情報に対応する申込者情報10件を取得する。
したがって使用するWebvAPIと適切な順序は、listResultInfo→getProductInfo→getOffererInfo になります。

e=オ:listResultInfo,getProductInfo,getOffererInfo

平成31年春期 午後問題一覧

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

Pagetop