AP過去問 令和7年度春期 午後 問8 情報システム開発
AP 過去問題 午後に戻る。
AP過去問_令和7年度春期_午後_問7_組込みシステム開発の同じ回の前の問題へ移動。
AP過去問_令和7年度春期_午後_問9_プロジェクトマネジメントの同じ回の次の問題へ移動。
AP過去問_令和6年度秋期_午後_問8_情報システム開発の前の回の同じカテゴリの問題へ移動。
令和7年度春期 午後 問8 情報システム開発(AIプロンプト向け)
■エラーハンドリングに関する次の記述を読んで,設問に答えよ。
Q社は、業務システムの受託開発会社である。Q社は、スーパーマーケットの複数の店舗を運営するB社から、CRM(Customer Relationship Management)システムの開発と運用保守業務を受託した。CRMシステムは各店舗で利用され、顧客からの意見 やクレーム、店舗での対応の内容が登録・蓄積される。CRMシステムを運用する際の関係者のー覧を表1に示す。
<div><div class="table-container"><div class="table-header"><span class="table-title">表1 関係者の一覧</span><span class="table-unit"></span></div>
<table border="0" width="100%" style="border-collapse: collapse;border-style: solid">
<tr>
<td align="center" style="border: 2px solid; width: 5em;">関係者</td>
<td align="center" style="border: 2px solid;">説明</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">顧客</td>
<td align="center" style="border: 2px solid;">B社の店舗に来店した顧容。意見やクレームを、店舗に勤務するB 社の従業員に伝える。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">利用者</td>
<td align="center" style="border: 2px solid;">CRMシステムへのアクセスが許可されたB社の従業員。顧客からの意見やクレ―ムをCRMシステムに入力し、過去の類似案件の記録を参考に顧客対応を行う。顧客から聞き取った氏名と連絡先を、 CRMシステムに顧客情報として登録することがある。顧客情報は、B社の従業員が顧客に連絡するために利用する。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">運用担当者</td>
<td align="center" style="border: 2px solid;">B社に常駐しているQ社の従業員。CRMシステムの運用手順書に従って、利用者からの質問や不具合発生時の問合せに対応する。問合せ時の状況や不具合の再現手順の確認のために、運用中のCRMシステムへのアクセスが許可されている。運用手順書で対応しきれない技術的な問題については、Q社の開発担当者に対応を依頼する。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">開発担当者</td>
<td align="center" style="border: 2px solid;">Q社内で勤務しているQ社の開発担当者。運用担当者からの問合せの際は、調査に必要な最小限の情報として、不具合の状況、再現手順及び発生時刻付近のログを受け取る。運用中のCRMシステムへの入力情報を、直接参照することはできない。</td>
</tr>
</table>
</div>
</div>
Q社は、システムのリリース後に想定される、店舗からの問合せに対する迅速な対応を可能にするために、想定される問合せのパターンと対応方法を事前に整理し、対応の際に必要な要件をシステムの設計に反映させることにした。
〔CRMシステムの構造〕
CRMシステムのクラス図(一部)を図1に示す。AbstractController、AbstractService及びAbstractDaoは、それぞれ画面遷移、ビジネスロジック及びデータベースアクセスの共通処理が実装された抽象クラスである。これらのクラスを[ a ]したクラスを作成して、具体的な機能を実装する。ログを出力するにはLoggerクラスを利用する。ログの出力時には❝DEBUG❞、❝ERROR❞などの、ログの種別(以下、ログ種別という)が記録される。図1に示すクラスを使った処理の流れの例として、システムにログインする際のシーケンス図を図2に示す。
図1 CRMシステムのクラス図(一部) ここから
AbstractControllerクラス(抽象クラス)、AbstractServiceクラス(抽象クラス)、AbstractDaoクラス(抽象クラス)は繋がっている。各クラスは属性名やメソッド名は持たない。
AbstractControllerクラスの派生クラスとして、LoginControllerクラス、CaseControllerクラスがある。
LoginControllerクラスは属性名は持たない。メソッドとしてログイン画面表示()、ログイン実行(ID, Password)を持つ。
CaseControllerクラスは属性名を持たない。メソッド名も持たない。
AbstractServiceクラスの派生クラスとして、AuthServiceクラス、CaseServiceクラスがある。
AuthServiceクラスは属性名は持たない。メソッドとして認証(ID, Password)を持つ。
CaseServiceクラスは属性名を持たない。メソッド名も持たない。
AbstractDaoクラスの派生クラスとして、UserDaoクラス、CaseDaoクラスがある。
UserDaoクラスは属性名は持たない。メソッドとして検索([ a ])がある。
CaseDaoクラスは属性名を持たない。メソッド名も持たない。
Loggerクラスは独立していて、属性名は持たない。メソッドとしてログ出力(ログ種別, 内容)を持つ。
Exceptionクラスは独立していて、属性名は持たない。メソッド名も持たない。
図1 CRMシステムのクラス図(一部) ここまで
図2 システムにログインする際のシーケンス ここから
- Webブラウザ、:LoginController、:AuthService、:UserDaoというシーケンスがある
ここからシーケンスがはじまり、以下の順序で処理が行われる。
- Webブラウザシーケンスからログイン実行(ID, Password)により:LoginControllerのシーケンスに移動する。
- LoginControllerシーケンスから認証(ID, Password)により:AuthServiceのシーケンスに移動する。
- AuthServiceシーケンスから検索([ b ])により:UserDaoのシーケンスに移動する。
- UserDaoシーケンスから利用者情報を得て:AuthServiceのシーケンスに移動する。
- AuthServiceシーケンスから[ c ]を得て:LoginControllerシーケンスに移動する。
ここまででシーケンスは終わり
図2 システムにログインする際のシーケンス ここまで
利用者がログイン画面で認証に必要な情報を入力しログインを実行すると、LoginControllerのログイン実行メソッドが呼び出される。ログイン実行メソッドは、画面から入力された情報をAuthServiceに引き渡す。AuthServiceは、UserDaoに実装されている、利用者情報の検索を行う機能を用いて、認証の判定に必要な利用者情報をデータベースから取得する。AuthServiceは、取得した利用者情報を用いて口グイン認証の判定を行い、結果を返す。
プログラムの実行中にエラーが発生した際の、例外処理用のクラスとしてExceptionクラスがある。Exceptionクラスは、エラーの詳細情報として、エラーの発生個所のソースファイル名、行番号、メソッドの呼出し履歴及び直接的な原因を示すメッセージ文字列をもつ。エラー発生時には、エラーの発生箇所でExceptionクラスのオブジェクトを作成し、呼出し元ではそれを使って例外処理を行う。
〔CRMシステムのエラーの種別の整理とその対応〕
Q社は、運用中に起き得るエラーの種別(以下、エラー種別という)を整理し、対応方法について検討した。エラー種別と運用担当者の対応を表2に、対応を行うために必要な出力機能及び出力内容と、出力内容を参照する関係者を表3に示す。
<div><div class="table-container"><div class="table-header"><span class="table-title">表2 エラー種別と運用担当者の対応</span><span class="table-unit"></span></div>
<table border="0" width="100%" style="border-collapse: collapse;border-style: solid">
<tr>
<td align="center" style="border: 2px solid; width: 5em;">エラー種別</td>
<td align="center" style="border: 2px solid;">説明</td>
<td align="center" style="border: 2px solid;">運用担当者の対応</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">システム障害</td>
<td align="center" style="border: 2px solid;">Webサ一バやデ一タべ一スサーバの停止、プ口グラムの異常終了、ネットワ―ク障害などの原因によって、システム自体の稼働が継続不能になる。</td>
<td align="center" style="border: 2px solid;">利用者からの報告を受けて、サ一バやサービスの稼働状況を確認し、 必要に応じて再起動を行う。それでも復旧できない場合は開発担当者に対応を依頼する。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">システムエラー</td>
<td align="center" style="border: 2px solid;">主にプ口グラムの欠陥によって発生する、想定外のエラ一。操作の途中で画面に工ラ一メッセージが表示され、業務を続行できない。</td>
<td align="center" style="border: 2px solid;">利用者から、操作した手順を聞き取り、状況を確認する。エラー発生時の前後のログをログファイルから切り出して開発担当者に送付し、対応を依頼する。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">業務エラー</td>
<td align="center" style="border: 2px solid;">業務ルール上、入力値の内容が正しくないか、禁止されている操作をしたときに発生するエラー。プログラムで想定済みのエラーで、利用者が入力値の内容を修正し、操作をやり直すことによって業務を続行できる。</td>
<td align="center" style="border: 2px solid;">利用者から、操作した手順と、画面に表示されたエラーメッセージの内容を聞き取り、状況を確認する。運用手順書を参照し、エラーの回避方法を利用者に伝える。回避方法が不明な場合は、エラーの再現手順とエラー発生時の前後のログを開発担当者に送付し、回避方法の提示を求める。</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">入力エラー</td>
<td align="center" style="border: 2px solid;">文字列長や文字種に関する入力値の検証時のエラー。利用者自身が入力値を修正することによって業務を続行できる。</td>
<td align="center" style="border: 2px solid;">対応なし。利用者自身が画面に表示されているエラーメッセージを参照してエラーを解消する。</td>
</tr>
</table>
</div>
</div>
<div><div class="table-container"><div class="table-header"><span class="table-title">表3 出力機能及び出力内容と、出力内容を参照する関係者</span><span class="table-unit"></span></div>
<table border="0" width="100%" style="border-collapse: collapse;border-style: solid">
<tr>
<td align="center" style="border: 2px solid; width: 5em;">出力機能</td>
<td align="center" style="border: 2px solid;">出力内容</td>
<td align="center" style="border: 2px solid;">参照する関係者</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">ログ出力</td>
<td align="center" style="border: 2px solid;">プログラムの実行中に想定外の事態が発生した場合は処理を中断し、処理の呼出し元にエラーの内容を返す。その際、エラーの概要、詳細情報及びメソッドの呼出し履歴をLoggerクラスを使ってログファイルに出力する。</td>
<td align="center" style="border: 2px solid;">[ d ]</td>
</tr>
<tr>
<td align="center" style="border: 2px solid; width: 5em;">エラーメッセージ表示</td>
<td align="center" style="border: 2px solid;">エラーの概要、Exceptionクラスがもつエラーの詳細情報及び利用者が次に行うべき操作の案内を画面に表示する。</td>
<td align="center" style="border: 2px solid;">利用者</td>
</tr>
</table>
</div>
</div>
表2、表3についてレビューを行ったところ、次の3点が指摘された。
(1) 表2のシステム障害及びシステムエラーは、利用者の問合せの前にシステムが自動的に検出して運用担当者が対応を開始できるようにすべきである。
(2) 表3の出力内容には、セキュリティの観点における潜在的なリスクがある。
(3) 表3について、エラーに関するログだけでは、開発担当者が原因を調査するための情報としては不足するので、追加の情報を出力する必要がある。
指摘事項の(1)に対応するために、<u>①監視の機能</u>を用意することにした。監視の機能は、監視対象の情報を定期的に取得し、エラー発生時の特徴を検出した場合に電子メールで運用担当者に通知する。指摘事項の(2)については、表3の<u>②出力内容をー部変更</u>することにした。指摘事項の(3)については、アスペクト指向プログラミングを導入して、プログラムの処理の中で、要所ごとにログを出力することにした。
〔アスペクト指向プログラミングの導入〕
レビューの指摘事項の(3)に関して、利用者が行った操作内容を一律でログに出力することにし、これを実現するためにアスペクト指向プログラミングを導入することにした。
アスペクト指向プログラミングでは、特定のルールを定義しておくことによって、そのルールに合致する全ての箇所で同じ処理を実行させる。ルールの定義の条件にはクラス名、メソッド名に含まれる文字列のパターンが利用できる。また、特定の条件に合致する場合には実行の対象から除外するように指定することもできる。
ここでは、実装上の制約ができるだけ少なくなるようなルールの定義方法で、画面遷移に関するクラスに実装された全てのメソッドについて、クラス名、メソッド名及び全て引数の内容をログに出力することにした。これを実現するために、[ e ]を親クラスにもつクラスの[ f ]には必ず特定の文字列のパターンを含み、それ以外のクラスの[ f ]には特定の文字列のパターンを含まないように命名規則を定義した。ただし、秘匿情報や個人情報の保護の観点から、認証に関する情報や、<u>③顧客情報を扱う箇所はログに出力しない</u>ようにした。Q社は、表2、表3に関する検討結果をシステムの設計に反映させ、開発を開始した。
設問1 本文、図1及び図2中の[ a ]~[ c ]に入れる適切な字句を答えよ。
設問2 表3中の[ d ]について、どの関係者に向けた表現として出力をすべきか。表1の関係者から<u>全て</u>選び答えよ。
設問3 本文中の下線①について、業務運用中のCRMシステムの何を対象に監視するか。システム障害とシステムエラーのそれぞれについて、最も適切なものを解答群の中から選び、記号で答えよ。
解答群
ア 画面に表示されたエラーメッセージ
イ データベースの接続確認の結果
ウ 電子メール送信履歴
エ ログ種別の文字列
オ ログファイルのサイズ
設問4 本文中の下線②について、変更した出力機能を答えよ。また、その変更の内容を20字以内で答えよ。
設問5 〔アスペクト指向プログラミングの導入〕について答えよ。
(1) 本文中の[ e ]、[ f ]に入れる適切な字句を答えよ。
(2) 本文中の下線③について、出力しないようにした理由を、20字以内で答えよ。
令和7年度春期 午後 問8 情報システム開発(問題原文)
■エラーハンドリングに関する次の記述を読んで,設問に答えよ。
Q社は、業務システムの受託開発会社である。Q社は、スーパーマーケットの複数の店舗を運営するB社から、CRM(Customer Relationship Management)システムの開発と運用保守業務を受託した。CRMシステムは各店舗で利用され、顧客からの意見 やクレーム、店舗での対応の内容が登録・蓄積される。CRMシステムを運用する際の関係者のー覧を表1に示す。
関係者 | 説明 |
顧客 | B社の店舗に来店した顧容。意見やクレームを、店舗に勤務するB 社の従業員に伝える。 |
利用者 | CRMシステムへのアクセスが許可されたB社の従業員。顧客からの意見やクレ―ムをCRMシステムに入力し、過去の類似案件の記録を参考に顧客対応を行う。顧客から聞き取った氏名と連絡先を、 CRMシステムに顧客情報として登録することがある。顧客情報は、B社の従業員が顧客に連絡するために利用する。 |
運用担当者 | B社に常駐しているQ社の従業員。CRMシステムの運用手順書に従って、利用者からの質問や不具合発生時の問合せに対応する。問合せ時の状況や不具合の再現手順の確認のために、運用中のCRMシステムへのアクセスが許可されている。運用手順書で対応しきれない技術的な問題については、Q社の開発担当者に対応を依頼する。 |
開発担当者 | Q社内で勤務しているQ社の開発担当者。運用担当者からの問合せの際は、調査に必要な最小限の情報として、不具合の状況、再現手順及び発生時刻付近のログを受け取る。運用中のCRMシステムへの入力情報を、直接参照することはできない。 |
Q社は、システムのリリース後に想定される、店舗からの問合せに対する迅速な対応を可能にするために、想定される問合せのパターンと対応方法を事前に整理し、対応の際に必要な要件をシステムの設計に反映させることにした。
〔CRMシステムの構造〕
CRMシステムのクラス図(一部)を図1に示す。AbstractController、AbstractService及びAbstractDaoは、それぞれ画面遷移、ビジネスロジック及びデータベースアクセスの共通処理が実装された抽象クラスである。これらのクラスを a したクラスを作成して、具体的な機能を実装する。ログを出力するにはLoggerクラスを利用する。ログの出力時には❝DEBUG❞、❝ERROR❞などの、ログの種別(以下、ログ種別という)が記録される。図1に示すクラスを使った処理の流れの例として、システムにログインする際のシーケンス図を図2に示す。
図1 CRMシステムのクラス図(一部)
図2 システムにログインする際のシーケンス
利用者がログイン画面で認証に必要な情報を入力しログインを実行すると、LoginControllerのログイン実行メソッドが呼び出される。ログイン実行メソッドは、画面から入力された情報をAuthServiceに引き渡す。AuthServiceは、UserDaoに実装されている、利用者情報の検索を行う機能を用いて、認証の判定に必要な利用者情報をデータベースから取得する。AuthServiceは、取得した利用者情報を用いて口グイン認証の判定を行い、結果を返す。
プログラムの実行中にエラーが発生した際の、例外処理用のクラスとしてExceptionクラスがある。Exceptionクラスは、エラーの詳細情報として、エラーの発生個所のソースファイル名、行番号、メソッドの呼出し履歴及び直接的な原因を示すメッセージ文字列をもつ。エラー発生時には、エラーの発生箇所でExceptionクラスのオブジェクトを作成し、呼出し元ではそれを使って例外処理を行う。
〔CRMシステムのエラーの種別の整理とその対応〕
Q社は、運用中に起き得るエラーの種別(以下、エラー種別という)を整理し、対応方法について検討した。エラー種別と運用担当者の対応を表2に、対応を行うために必要な出力機能及び出力内容と、出力内容を参照する関係者を表3に示す。
エラー種別 | 説明 | 運用担当者の対応 |
システム障害 | Webサ一バやデ一タべ一スサーバの停止、プ口グラムの異常終了、ネットワ―ク障害などの原因によって、システム自体の稼働が継続不能になる。 | 利用者からの報告を受けて、サ一バやサービスの稼働状況を確認し、 必要に応じて再起動を行う。それでも復旧できない場合は開発担当者に対応を依頼する。 |
システムエラー | 主にプ口グラムの欠陥によって発生する、想定外のエラ一。操作の途中で画面に工ラ一メッセージが表示され、業務を続行できない。 | 利用者から、操作した手順を聞き取り、状況を確認する。エラー発生時の前後のログをログファイルから切り出して開発担当者に送付し、対応を依頼する。 |
業務エラー | 業務ルール上、入力値の内容が正しくないか、禁止されている操作をしたときに発生するエラー。プログラムで想定済みのエラーで、利用者が入力値の内容を修正し、操作をやり直すことによって業務を続行できる。 | 利用者から、操作した手順と、画面に表示されたエラーメッセージの内容を聞き取り、状況を確認する。運用手順書を参照し、エラーの回避方法を利用者に伝える。回避方法が不明な場合は、エラーの再現手順とエラー発生時の前後のログを開発担当者に送付し、回避方法の提示を求める。 |
入力エラー | 文字列長や文字種に関する入力値の検証時のエラー。利用者自身が入力値を修正することによって業務を続行できる。 | 対応なし。利用者自身が画面に表示されているエラーメッセージを参照してエラーを解消する。 |
出力機能 | 出力内容 | 参照する関係者 |
ログ出力 | プログラムの実行中に想定外の事態が発生した場合は処理を中断し、処理の呼出し元にエラーの内容を返す。その際、エラーの概要、詳細情報及びメソッドの呼出し履歴をLoggerクラスを使ってログファイルに出力する。 | d |
エラーメッセージ表示 | エラーの概要、Exceptionクラスがもつエラーの詳細情報及び利用者が次に行うべき操作の案内を画面に表示する。 | 利用者 |
表2、表3についてレビューを行ったところ、次の3点が指摘された。
(1) 表2のシステム障害及びシステムエラーは、利用者の問合せの前にシステムが自動的に検出して運用担当者が対応を開始できるようにすべきである。
(2) 表3の出力内容には、セキュリティの観点における潜在的なリスクがある。
(3) 表3について、エラーに関するログだけでは、開発担当者が原因を調査するための情報としては不足するので、追加の情報を出力する必要がある。
指摘事項の(1)に対応するために、①監視の機能を用意することにした。監視の機能は、監視対象の情報を定期的に取得し、エラー発生時の特徴を検出した場合に電子メールで運用担当者に通知する。指摘事項の(2)については、表3の②出力内容をー部変更することにした。指摘事項の(3)については、アスペクト指向プログラミングを導入して、プログラムの処理の中で、要所ごとにログを出力することにした。
〔アスペクト指向プログラミングの導入〕
レビューの指摘事項の(3)に関して、利用者が行った操作内容を一律でログに出力することにし、これを実現するためにアスペクト指向プログラミングを導入することにした。
アスペクト指向プログラミングでは、特定のルールを定義しておくことによって、そのルールに合致する全ての箇所で同じ処理を実行させる。ルールの定義の条件にはクラス名、メソッド名に含まれる文字列のパターンが利用できる。また、特定の条件に合致する場合には実行の対象から除外するように指定することもできる。
ここでは、実装上の制約ができるだけ少なくなるようなルールの定義方法で、画面遷移に関するクラスに実装された全てのメソッドについて、クラス名、メソッド名及び全て引数の内容をログに出力することにした。これを実現するために、e を親クラスにもつクラスの f には必ず特定の文字列のパターンを含み、それ以外のクラスの f には特定の文字列のパターンを含まないように命名規則を定義した。ただし、秘匿情報や個人情報の保護の観点から、認証に関する情報や、③顧客情報を扱う箇所はログに出力しないようにした。Q社は、表2、表3に関する検討結果をシステムの設計に反映させ、開発を開始した。
設問1 本文、図1及び図2中の a ~ c に入れる適切な字句を答えよ。
設問2 表3中の d について、どの関係者に向けた表現として出力をすべきか。表1の関係者から全て選び答えよ。
設問3 本文中の下線①について、業務運用中のCRMシステムの何を対象に監視するか。システム障害とシステムエラーのそれぞれについて、最も適切なものを解答群の中から選び、記号で答えよ。
解答群
ア 画面に表示されたエラーメッセージ
イ データベースの接続確認の結果
ウ 電子メール送信履歴
エ ログ種別の文字列
オ ログファイルのサイズ
設問4 本文中の下線②について、変更した出力機能を答えよ。また、その変更の内容を20字以内で答えよ。
設問5 〔アスペクト指向プログラミングの導入〕について答えよ。
(1) 本文中の e 、f に入れる適切な字句を答えよ。
(2) 本文中の下線③について、出力しないようにした理由を、20字以内で答えよ。
回答・解説
設問1
aについて、AbstractController、AbstractService及びAbstractDaoは、それぞれ画面遷移、ビジネスロジック及びデータベースアクセスの共通処理が実装された抽象クラスである。これらのクラスを a したクラスを作成して、具体的な機能を実装する。という穴埋めです。抽象クラスを利用する方法は継承です。この問題は問題文を分析する類のものではなく情報処理技術の一般知識を問う問題となっています。抽象クラスを利用する継承という方法をしらない場合には答えられない問題です。
したがって
a:継承
が答えです。
bについて、図の中でUserDaoクラスが持っているメソッド検索の引数に何を与えればよいか?AuthServiceクラスからUserDaoクラスを使って検索して、利用者情報を得る部分の引数として何が必要かというのを一般的な知識から回答する問題です。
AuthServiceは、UserDaoに実装されている、利用者情報の検索を行う機能を用いて、認証の判定に必要な利用者情報をデータベースから取得する。AuthServiceは、取得した利用者情報を用いて口グイン認証の判定を行い、結果を返す。とありますので
利用者情報を得るためのキーになるものです。それは同じログインidで管理されている利用者のidだと言えます。単にIDと記述したら満点だと思いますが、あえてここでは利用者のIDと表現してもよいと思います。
したがって
b:ID
が答えです。
cについては、図の中でAuthServiceからLoginControllerに対して返す値が何かを答える問題です。
AuthServiceは、UserDaoに実装されている、利用者情報の検索を行う機能を用いて、認証の判定に必要な利用者情報をデータベースから取得する。AuthServiceは、取得した利用者情報を用いて口グイン認証の判定を行い、結果を返す。とありますので
ログイン認証の判定結果を返すというのがAuthServiceがLoginControllerに返すものであると考えられます。
したがって
c:ログイン認証の判定結果
が答えです。
設問2
ログ出力機能のプログラムの実行中に想定外の事態が発生した場合は処理を中断し、処理の呼出し元にエラーの内容を返す。その際、エラーの概要、詳細情報及びメソッドの呼出し履歴をLoggerクラスを使ってログファイルに出力する。という動作がどの関係者に向けた表現として出力をすべきかを全ての対象について問う問題です。答えは表1の関係者つまり顧客、利用者、運用担当者、開発担当者の中から選ぶというのと問題にはあえて全てと書いてあるので2つ以上解答する可能性が高いと思われます。その中でログを使う人について触れている部分は表1の開発担当者の説明欄に運用担当者からの問合せの際は、調査に必要な最小限の情報として、不具合の状況、再現手順及び発生時刻付近のログを受け取る。とありますので、ログは運用担当者から開発担当者が受け取るという流れが見えます。
したがって
d:運用担当者、開発担当者
が答えです。
設問3
表2のシステム障害とシステムエラーが発生した場合、利用者がエラーの報告をする前に、事前に運用担当者に自動的に通知が届き、対応を開始すべきとの指摘について監視するべき項目をシステム障害の場合とシステムエラーの場合のそれぞれについて選択肢から答える問題です。
選択肢の中で、通知されたところで何も対応できないのではウ 電子メールの送信履歴、エ ログ種別の文字列、オ ログファイルのサイズだと考えられるのでこの二つの選択肢は意味がないとすぐに判断できます。
イ データベースの接続確認の結果を得られるのは表2でシステム障害の説明にWebサーバやデータベースサーバの停止、プログラムの異常終了という内部的な動きの障害だと考えることができます。またア 画面に表示されたエラーメッセージはシステムエラーの説明でプログラムの欠陥によって発生する、想定外のエラー。操作の途中で画面にエラーメッセージが表示されとありますので、システムエラーによって得られるのが画面に表示されるエラーメッセージと考えられます。
したがって
システム障害 :イ データベースの接続確認の結果
システムエラー:ア 画面に表示されたエラーメッセージ
が答えです。
設問4
ログ出力やエラーメッセージ表示にはセキュリティの観点における潜在的なリスクがあると指摘され出力内容を一部変更することにしたとある。変更した出力機能とその変更内容を20文字以内で答えるというもの
Exceptionクラスは、エラーの詳細情報として、エラーの発生個所のソースファイル名、行番号、メソッドの呼出し履歴及び直接的な原因を示すメッセージ文字列をもつ。エラー発生時には、エラーの発生箇所でExceptionクラスのオブジェクトを作成し、呼出し元ではそれを使って例外処理を行う。とありますので、エラーメッセージ表示の出力機能にはエラーの概要、Exceptionクラスがもつエラーの詳細情報及び利用者が次に行うべき操作の案内を画面に表示する。ともありますので、エラーメッセージ表示の出力機能は利用者に対して、エラーの発生個所のソースファイル名、行番号、メソッドの呼出し履歴及び直接的な原因を示すメッセージを表示することを意味しています。これはセキュリティリスクと考えられます。
したがって、
変更した出力機能:エラーメッセージ表示
1 5 10 11 20
Exceptionク ラスがもつエラーの詳
細情報を除外する(28文字)
21 30
が答えです。
設問5
(1)
eについて、画面遷移に関するクラスに実装された全てのメソッドについて、クラス名、メソッド名及び全て引数の内容をログに出力することにした。これを実現するために、e を親クラスにもつクラスの f には必ず特定の文字列のパターンを含み、それ以外のクラスの f には特定の文字列のパターンを含まないように命名規則を定義した。の穴埋めです。
画面遷移を伴うクラスの親クラスはAbstractControllerです。そして特定の文字列を含めるものはメソッド名です。例えば接頭辞としてdisplayを付けてdisplayログイン画面表示()、displayログイン実行(ID, Password)というようなメソッド名にしておけば、アスペクト指向プログラミングにおいては、そのルールで名付けられているメソッドをログに出力したりする指定ができるようになります。
したがって
e:AbstractController
f:メソッド名
が答えです。
(2)
秘匿情報や個人情報の保護の観点から、認証に関する情報や、顧客情報を扱う箇所はログに出力しないようにした。その理由を20文字で答える問題です。
顧客情報は、B社の従業員が顧客に連絡するために利用する。とありますから、これがこの設問の聞きたいことかもしれません。
したがって、
1 5 10 11 20
顧客情報は連絡するた めだけに利用するから(20文字)
が答えです。顧客情報の使い方にそぐわないからとかでも正解でしょうか?あるいはもっと一般的な知識として、顧客情報が洩れるリスクがあるからとかでも良さそうです。
アスペクト指向プログラミングのような運用ルールを設定できる方式を知らないといけなかったり、少し難しい問題文だったかもしれません。
AP過去問_令和7年度春期_午後_問7_組込みシステム開発の同じ回の前の問題へ移動。
AP過去問_令和7年度春期_午後_問9_プロジェクトマネジメントの同じ回の次の問題へ移動。
AP過去問_令和6年度秋期_午後_問8_情報システム開発の前の回の同じカテゴリの問題へ移動。
AP 過去問題 午後に戻る。