平成31年春期試験午後問題 問5
問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の確認処理の説明は省略している。
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と登録ツールだけからアクセスできる
- 認証情報
- 「アクセスIDは,認証情報として認証DBに格納され」という記述から認証DBに格納されるとわかります。
- 利用者情報
- 図1を見ると、利用者情報登録ツールから認証サーバに登録するフローになっています。よって、利用者情報は認証DBに格納されるとわかります。
- 申込者情報
- 図1を見ると、申込者情報登録ツールから申込情報管理サーバに登録するフローになっています。よって、申込者情報は申込DBに格納されるとわかります。
また表1のWebAPIの説明を見ると、申込情報管理サーバには、申込者IDを用いて申込者情報を取得するAPIが提供されています。申込者IDは申込者情報の主キーですので、この点からも申込者情報は申込DBに格納されているとわかります。 - 検査農作物情報
- WebAPIの説明を見ると、申込情報管理サーバには、検査農産物IDを用いて検査農産物情報を取得するAPIが提供されています。検査農産物IDは検査農産物情報の主キーですので、検査農産物情報は申込DBに格納されているとわかります。
- 検査検査情報
- WebAPIの説明を見ると、検査結果管理サーバには、検査IDを用いて検査結果情報を取得するAPIが提供されています。検査IDは検査結果情報の主キーですので、検査結果情報は検査結果DBに格納されているとわかります。
〔bについて〕
検査システムに登録された検査結果は、最終的に申込者に報告されます。図2の各情報には、申込を受け付けた検査農作物と申込者を紐づける情報がないため、bには申込者IDが入ります。
∴b=オ:申込者ID
〔cについて〕
検査結果管理サーバのWebAPIの説明を見ると、検査農産物IDを用いて指定した農産物の全ての検査結果情報を取得する"getResultInfoForProduct"が提供されています。検査管理情報を検査農作物ごとのレコードに絞るには、検査IDに検査農作物を紐づける情報が必要です。よってcには検査農産物IDが入ります。
∴c=エ:検査農作物ID
広告
設問2
次の記述中の に入れる正しい答えを,解答群の中から選べ。
報告用アプリケーションには農産物検査結果表示機能があり,この機能は,1件の検査農産物IDを入力して"表示"ボタンをクリックすると,画面に情報を表示する。農産物検査結果表示機能が表示する画面の例を,図3に示す。検査結果の情報が登録済みの検査農産物の検査農産物IDを入力した場合,"表示"ボタンをクリックしてから画面の表示が完了するまでには,表1に示す情報取得用WebAPIの実行が最低d回必要である。ここで,実行時にエラーは発生しないものとする。
報告用アプリケーションには農産物検査結果表示機能があり,この機能は,1件の検査農産物IDを入力して"表示"ボタンをクリックすると,画面に情報を表示する。農産物検査結果表示機能が表示する画面の例を,図3に示す。検査結果の情報が登録済みの検査農産物の検査農産物IDを入力した場合,"表示"ボタンをクリックしてから画面の表示が完了するまでには,表1に示す情報取得用WebAPIの実行が最低d回必要である。ここで,実行時にエラーは発生しないものとする。
d に関する解答群
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解答選択欄
- d:
- d=イ
解説
設問では、表1に示す情報取得用WebAPIの実行回数を問うているので、認証関連WebAPIの実行については除外して考えます。図3の画面例に含まれる各情報は、それぞれ以下のDBに格納されています。報告アプリケーションへのログイン後、1件の検査農産物IDから画面の情報を得る手順は以下のようになります(※1は2,3の後でもOK)。
- 検査結果管理サーバの"getResultInfoForProduct"に検査農産物IDを指定して、その農産物に関連付けられている全ての検査結果情報を取得する。
- 申込情報管理サーバの"getProductInfo"に検査農産物IDを指定して、その検査農産物の検査農産物名・申込者IDを取得する。
- 申込情報管理サーバの"getOffererInfo"に、2.で取得した申込者IDを指定して、申込者の団体名・住所・電話番号を取得する。
∴d=イ:3
広告
設問3
次の記述中の に入れる正しい答えを,解答群の中から選べ。
担当者から,検査農産物IDの検査結果を個別に閲覧するのではなく,一覧形式で閲覧したいという要望が挙がった。要望を受けて,報告用アプリケーションに検査結果リスト表示機能を追加する。
検査結果リスト表示機能では,表1に示す情報取得用WebAPIを利用して,登録されている検査結果の情報(以下,農産物検査結果情報という)を全て一覧形式で表示する。1行の表示内容は,各農産物検査結果情報の一覧全体中での位置を示す番号と,農産物検査結果情報の内訳として,団体名,検査農産物ID,検査ID,検査項目名,検査結果及び検査日である。一覧にするとき,最近実施した検査の検査結果が先に表示されるように,検査日の降順に整列する。検査結果リスト表示機能が表示する画面の例を,図4に示す。ここで,実行時にエラーは発生しないものとする。 検査結果リスト表示機能は,1画面に最多で10件の農産物検査結果情報を表示する。画面に表示されていない農産物検査結果情報を表示するときは,ボタン"前へ"又は"次へ"をクリックして表示の対象を切り替える。
この機能では,初期表示時の開始番号を1として画面を表示する。ボタン"前へ"又は"次へ"をクリックすると,開始番号に-10又は10を加算して,画面を再表示する。画面表示のたびに,開始番号及び情報取得用WebAPIを利用して表示する情報を取得する場合,情報取得用WebAPIをeという順番で1回ずつ実行する。
担当者から,検査農産物IDの検査結果を個別に閲覧するのではなく,一覧形式で閲覧したいという要望が挙がった。要望を受けて,報告用アプリケーションに検査結果リスト表示機能を追加する。
検査結果リスト表示機能では,表1に示す情報取得用WebAPIを利用して,登録されている検査結果の情報(以下,農産物検査結果情報という)を全て一覧形式で表示する。1行の表示内容は,各農産物検査結果情報の一覧全体中での位置を示す番号と,農産物検査結果情報の内訳として,団体名,検査農産物ID,検査ID,検査項目名,検査結果及び検査日である。一覧にするとき,最近実施した検査の検査結果が先に表示されるように,検査日の降順に整列する。検査結果リスト表示機能が表示する画面の例を,図4に示す。ここで,実行時にエラーは発生しないものとする。 検査結果リスト表示機能は,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の特徴を踏まえると、一覧表示を行うときの実行手順は以下のようになります。
- 検査結果管理サーバの"listResultInfo"に開始番号を指定して、表示対象となる検査結果情報10件を降順で取得する。
- 1.で取得した検査結果情報に含まれる10個の検査農作物IDのリストを引数に、申込情報管理サーバの"getProductInfo"を実行して、各検査結果情報に対応する検査農作物情報10件を取得する。
- 2.で取得した検査農作物情報に含まれる10個の申込者IDのリストを引数に、申込情報管理サーバの"getOffererInfo"を実行して、各検査農作物情報に対応する申込者情報10件を取得する。
∴e=オ:listResultInfo,getProductInfo,getOffererInfo
広告
広告