SAシステムアーキテクト試験 午後Ⅰ

令和5年度春期 システムアーキテクト 午後Ⅰ 問2

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問2 セミナー管理システムに関する次の記述を読んで,設問に答えよ。 ソフトウェアパッケージの開発・販売を行っているC社では,全国主要都市で自社製品の説明会を開催していたが,新たに無料のオンラインセミナーを開催することになり,それをサポートするセミナー管理システム(以下,新システムという)をWebシステムとして開発することになった。 〔セミナー管理業務の概要〕 C社のセミナー管理業務の概要は次のとおりである。 (1) セミナー登録 企画担当者がセミナーを企画し,企画書を作成する。 セミナーは,企画担当者のほか,講演資料を作成して講演を行う講師担当者及びセミナーの運営を行う運営担当者で担当する。企画・講師・運営の三つの担当役割について,それぞれ複数名の担当者を設定でき,一人の担当者が複数の担当役割を兼務する場合もある。一つの担当役割に複数名を設定した場合は,その中でリーダーを一人設定する。 セミナーには,リソースのひっ迫を避けるために受講する人数について定員を設定している。 企画書には,セミナー名,セミナー内容,定員,開催日時,終了時刻及び企画・講師・運営の各担当者の担当者IDと担当者名が記載されている。 企画担当者は,作成した企画書を上長に提出し,承認を受けた後,実施予定セミナーとして登録する。 (2) 募集・申込み 企画担当者はセミナーの概要を募集画面に掲載して受講申込みを受け付ける。 受講を希望する者は申込入力画面からセミナーを選択し,氏名,会社名,部署名,役職名,メールアドレスなどの情報を入力して申込みを行う。 当該セミナーについて同一メールアドレスで申込みが重複しておらず,セミナーの定員に達していない場合は申込みを確定し,受講確定メールを受講申込者へ送付する。 申込みはセミナー開催の3日前に締め切る。 (3) 開催準備,開催案内 運営担当者はセミナー開催の2日前にオンラインルームを開設し,アクセスURLとアクセスキーを決定する。 運営担当者は受講申込者に開催案内メールを送信する。開催案内メールには,受講確定メールに記載した内容に加えて,アクセスURL及びアクセスキーが記載されている。 企画担当者は,受講申込者に回答してもらうアンケートを作成する。 (4) 受講 受講申込者はセミナー開催当日にWebブラウザからアクセスURLにアクセスし,オンラインルームにログインしてセミナーを受講する。 なお,受講申込者は多重ログインできない。 (5) アンケート セミナー終了後,運営担当者から受講申込者にアンケートURLが記載されたアンケートメールを送信する。受講申込者はアンケートURLにアクセスし,受講ID,氏名及び受講の有無を入力し,個別の設問に回答する。また,受講した者(以下,受講者という)はセミナーの評価点を10点満点の数字で入力し,受講しなかった者は受講しなかった理由を入力する。入力したアンケートの回答は変更できない。 (6) 集計・分析 企画担当者はアンケートの回答について,集計・分析を行った結果を上長に報告する。また,担当者の業務負荷確認のために,1か月ごとに担当したセミナーの数と担当役割を集計して上長に報告する。 〔新システムの概要〕 情報システム部のD課長は,業務の概要を基に新システムの設計を行った。 (1) セミナー登録 セミナーの企画書を登録する機能。企画担当者が企画書の内容を入力すると,セミナー,セミナー担当の各ファイルにレコードを作成する。この時,セミナーに一意のセミナーIDを付与する。セミナー担当に登録する担当者IDは別システムで事前に付与されている。 (2) 募集・申込み 受講を希望する者からの申込みを受け付け,申込みの重複及び定員超過を判定し,受講を確定させる機能。申込判定がOKのときは申込確認画面を表示し,確定ボタンが押されたら受講を確定する。申込確認画面で,取消ボタンが押されたら申込入力画面に戻る。 受講確定時に受講IDを発行し,受講申込ファイルにレコードを作成する。受講IDは,英数字8桁から成る一意のIDである。 受講確定後,受講ID,セミナーID,セミナー名,開催日時,終了時刻及びセミナー内容を記載した受講確定メールを受講申込者へ送付する。 (3) 開催準備,開催案内 開設したオンラインルームのアクセスURLとアクセスキーをオンラインルームファイルに登録し,受講申込者に開催案内メールを送信する機能,及びセミナー終了後に回答してもらうアンケート画面を作成する機能。開催案内メールには,受講確定メールに記載した内容に加えて,アクセスURL及びアクセスキーを記載する。 (4) 受講 受講を受け付ける機能。受講申込者はアクセスURLにアクセスし,開催案内メールにある受講ID及びアクセスキーを転記してオンラインルームにログインし,セミナーを受講する。ログイン時に受講ID及びアクセスキーのチェックを行い,受講ファイルにレコードを作成する。この時,受講受付日時に現在日時を設定する。 (5) アンケート 対象者にアンケートメールを送信する機能,及びアンケート画面から入力された回答を基にアンケートファイルにレコードを作成する機能。 (6) 集計・分析 アンケートの回答の集計・分析,及び担当者の担当役割とセミナー数を集計する機能。 D課長は,上記の概要を基に新システムのデータ設計を行い,主要なファイルを表1のように設計した。 表1 新システムの主要なファイル また,新システムにおける募集・申込みの処理について,表2のように設計した。 表2 新システムにおける募集・申込みの処理 〔指摘及び追加要望〕 D課長が設計内容を上長に説明したところ,次のような指摘及び追加要望が出された。 ・申込確認処理について,今のままでは確定ボタンを押した際に定員を超過する可能性がある。定員超過の際は,エラーとするよう変更してほしい。 ・今のログイン方式では,通信障害などで接続が切れた場合に再接続ができなくなる。接続が切れたことを検知した場合には,当該受講IDで再ログインができるようにしてほしい。 ・アンケートURLにアクセスした際に,入力画面で受講ID及び氏名を入力させるのではなく,あらかじめ受講ID及び氏名を埋め込んだページを開いて回答させるようにしたいので,個別のアンケートURLを送信してほしい。 ・開催したセミナーの申込率,受講率及び平均評価点の三つの項目を一覧表示する機能を追加してほしい。ここで,申込率は定員に対する受講申込者数の割合,受講率は受講申込者数に対する受講者数の割合,平均評価点はアンケートに回答した受講者の評価点の平均点を示す。 〔新システムの設計変更〕 D課長は指摘及び追加要望を受け,次のような設計変更を行った。 ・申込確認画面で確定ボタンが押されたときに再度申込判定の処理を行うようにし,エラーになった場合はエラーメッセージを表示して処理を終了する。また,確定ボタンを押してもエラーとなることがある旨を申込確認画面に表示する。 ・受講ファイルに,接続フラグという属性を追加し,初期値として“1”を設定する。別途,接続が切れたことを検知した際に接続フラグに“0”を設定するようにする。その上で,再接続する際の①ログイン時の受講IDに関するチェック及び受講ファイルの更新処理を新たに追加する。 ・セミナー終了後に受講申込者に送信するアンケートURLを,受講IDごとの個別のURLに変更する。これに伴って,②表1中のある属性を別のファイルに移す。 ・セミナーファイルに,申込率,受講率及び平均評価点の属性を追加する。申込率,受講率及び平均評価点は,セミナーID及びセミナーIDから検索した受講IDを用いて表1の各ファイルを検索し,その結果を用いて,それぞれ,表3に示す計算式で求める。ただし,各計算式の除数が0のときは項目の値を0とする。 表3 各項目の計算式 設問1 〔新システムの概要〕について答えよ。 (1) セミナー担当ファイルに主キーを設定する場合,主キーとするものを表1中の属性を用いて全て答えよ。 (2) 表2中の【a】,【b】に入れる適切な字句を答えよ。 設問2 〔指摘及び追加要望〕について,申込確認処理で,確定ボタンを押した際に定員を超過するのはどのような場合か。40字以内で答えよ。 設問3 〔新システムの設計変更〕について答えよ。 (1) 本文中の下線①について,受講IDに関するチェックの内容を40字以内で,受講ファイルの更新処理の内容を30字以内で答えよ。 (2) 本文中の下線②について,どの属性をどのファイルに移すか。属性と移す先のファイルを表1中のファイル名と属性で答えよ。 (3) 表3中の【c】~【f】に入れる適切な字句を,表1中のファイル名と属性を用いて20字以内で答えよ。ここで,レコード件数が該当する場合は,表3の記載にならい,“のレコード件数”という形式で答えよ。
表1 新システムの主要なファイル。セミナー、セミナー担当、受講申込、オンラインルーム、受講、アンケートの6ファイルについて、主な属性と主キー(下線)を示す表。セミナー担当ファイルの主キー下線は省略されているという注記と、リーダーフラグ・受講有無・評価点に関する注1~3が付いている。
表1 新システムの主要なファイル。セミナー、セミナー担当、受講申込、オンラインルーム、受講、アンケートの6ファイルについて、主な属性と主キー(下線)を示す表。セミナー担当ファイルの主キー下線は省略されているという注記と、リーダーフラグ・受講有無・評価点に関する注1~3が付いている。
表2 新システムにおける募集・申込みの処理。申込入力、申込判定(重複)、申込判定(定員)、申込確認の各処理の概要を示す表。重複判定では、空欄aのファイルを検索し、入力された空欄bと同じ値があればエラーにする。定員判定では、受講申込のレコード件数と定員を比較する。
表2 新システムにおける募集・申込みの処理。申込入力、申込判定(重複)、申込判定(定員)、申込確認の各処理の概要を示す表。重複判定では、空欄aのファイルを検索し、入力された空欄bと同じ値があればエラーにする。定員判定では、受講申込のレコード件数と定員を比較する。
表3 各項目の計算式。申込率(%)、受講率(%)、平均評価点(点)の計算式を示す表。申込率は受講申込ファイルのレコード件数÷c×100、受講率はd÷e×100、平均評価点はf÷アンケートファイルで受講有無が“有”のレコード件数となっている(c~fは空欄)。
表3 各項目の計算式。申込率(%)、受講率(%)、平均評価点(点)の計算式を示す表。申込率は受講申込ファイルのレコード件数÷c×100、受講率はd÷e×100、平均評価点はf÷アンケートファイルで受講有無が“有”のレコード件数となっている(c~fは空欄)。
解き方のヒントを見る

情報が表す対象の範囲を確かめる

まず、扱われる情報がどの範囲の対象について述べているかに着目しましょう。同じ言葉が使われていても、対象の範囲まで同じとは限りません。与えられた条件に沿って、その範囲を丁寧に確かめることが検討の出発点になります。

この問題で問われていること

この問題では、情報が表す対象の範囲を意識して考えてみましょう。扱う情報を整理するときは、名称の似通いだけでまとめず、どこまでを一つの対象として捉えているかを、示された条件から確かめる視点が役立ちます。

視点

情報の名称と、その情報が表す対象の範囲は分けて考えましょう。名称から範囲を決めつけず、与えられた条件を根拠にして捉えることが、整理の手掛かりになります。

確認ポイント

  • その情報が表す対象の範囲を意識できているか。
  • 対象の範囲を、名称だけから決めつけていないか。
  • 捉えた範囲に、与えられた条件の根拠があるか。
正解と解説を見る

解説

業務要件から複合主キーと重複判定を導き、申込確認中の定員到達、接続フラグによる再ログイン、受講ID単位のURL管理に対応します。集計では申込者、受講者、アンケート回答者を区別して計算式を組み立てます。

問題の全体像

C社は、従来の製品説明会に加えて無料のオンラインセミナーを開催するため、Webシステムを新規開発します。対象業務はセミナー登録、募集・申込み、開催準備、受講、アンケート、集計・分析です。公式の出題趣旨では、要件を正しく理解して機能やファイルを設計する能力と、レビュー指摘や追加要望に応じて設計を変更する能力を問うとされています。各設問では、業務上の管理単位や制約を、主キー、判定処理、状態管理、属性の配置、計算式へ具体化することが求められます。

設問1(1)

〔セミナー管理業務の概要〕の「各担当役割に複数名を設定できる」「一人が複数の担当役割を兼務する」という条件に着目します。セミナーIDと担当役割だけでは同じ役割の複数担当者を区別できず、セミナーIDと担当者IDだけでは同じ人の兼務を区別できません。したがって、一件の担当割当ては三つの属性の組合せで識別します。公式解答例では「セミナーID、担当役割、担当者ID」です。リーダーフラグは担当者の位置付けを示す属性であり、担当割当てを識別する主キーには含めません。

設問1(2)(a)

表2の申込判定(重複)は、当該セミナーへの既存の申込みを検索する処理です。表1では、申込みが確定した際に作成する受講申込ファイルに、セミナーIDとメールアドレスが保存されています。このファイルをセミナーIDで検索して重複を調べるため、公式解答例ではaは「受講申込」です。受講ファイルはログイン時に作成するものであり、申込みの重複を調べる段階の検索先にはなりません。

設問1(2)(b)

〔セミナー管理業務の概要〕の募集・申込みには、「当該セミナーについて同一メールアドレスで申込みが重複しておらず」とあります。表2でも当該セミナーIDで検索するため、その検索結果と入力値との比較対象はメールアドレスです。公式解答例ではbは「メールアドレス」です。受講IDは確定時に新規発行される識別子なので、申込入力時の重複判定には用いません。

設問2

表2では、定員判定後に申込確認画面を表示し、確定ボタンが押されてから受講申込ファイルにレコードを作成します。画面の表示中に他者の申込みが確定すると、最初の判定で空きがあっても、確定時には定員に達している場合があります。公式解答例の要点を40字以内で表すと、「申込確認画面の表示中に他者の申込みが確定して定員に達した場合」です。採点講評では、他者が先に確定したことだけを書き、その結果として定員に達したことに触れない答案が多かったとされています。時間帯、他者の確定、定員到達の三点を押さえます。

設問3(1)(チェック)

業務要件には多重ログインの禁止があり、追加要望では通信障害による切断後の再ログインを求めています。設計変更で、接続中は接続フラグが「1」、切断を検知すると「0」になるため、受講ファイルに同じ受講IDが存在していても、フラグが「0」なら再ログインを許可します。公式解答例では、当該受講IDの受講ファイルの接続フラグが「0」のときはエラーとしない、とされています。40字以内では「当該受講IDの接続フラグが『0』のときはエラーとしない。」の粒度で、対象ID、フラグ値、判定結果を示します。

設問3(1)(更新処理)

再ログインが成立したら、切断状態を示していた接続フラグを接続中の状態に戻す必要があります。「0」のままでは、接続中でも次のログインを許可してしまい、多重ログインの禁止を満たせません。公式解答例では、受講ファイルの接続フラグに「1」を設定して更新します。30字以内の答案は「受講ファイルの接続フラグを『1』に更新する。」とし、更新するファイル、属性、設定値を明記します。

設問3(2)(属性)

追加要望では、受講IDと氏名をあらかじめ埋め込んだページを開くため、受講IDごとに個別のアンケートURLを送信します。表1ではアンケートURLがセミナーファイルにあり、セミナー単位の情報として管理されています。この属性を受講ID単位の情報に変更するので、公式解答例で移す属性は「アンケートURL」です。受講IDや氏名を移すのではなく、個別化によって管理単位が変わるURLに着目します。

設問3(2)(ファイル)

個別アンケートURLの送信対象は、セミナー終了後の受講申込者です。表1の受講申込ファイルは受講IDを主キーとし、氏名とメールアドレスも保持するため、対象者ごとのURLを管理する先として対応します。公式解答例では移す先は「受講申込」です。受講ファイルには受講した人だけが記録され、アンケートファイルは回答後に作成されるため、全受講申込者への送信に必要な情報の保持先としては適合しません。採点講評でも、移動先を誤った答案が見られ、設計変更前のデータ設計と追加要望を踏まえる必要があるとされています。

設問3(3)(c)

〔指摘及び追加要望〕では、申込率を「定員に対する受講申込者数の割合」と定義しています。表3の分子は受講申込ファイルのレコード件数なので、分母には対象セミナーの定員を置きます。表1では定員をセミナーファイルに保持しており、公式解答例ではcは「セミナーファイルの定員」です。この字句は20字以内です。申込率は、定員のうち何割が申込みで埋まったかを表します。

設問3(3)(d)

受講率は「受講申込者数に対する受講者数の割合」なので、分子には受講者数を置きます。〔新システムの概要〕ではログイン時に受講ファイルにレコードを作成するため、対象セミナーの受講IDに対応する受講ファイルの件数から受講者数を求めます。公式解答例ではdは「受講ファイルのレコード件数」です。20字以内で、指定された「のレコード件数」という形式にも合います。アンケートの回答件数は回答した人だけを数えるため、ここで求める受講者数とは異なります。

設問3(3)(e)

受講率の分母は受講申込者数です。〔新システムの概要〕では受講確定時に受講申込ファイルにレコードを作成するため、当該セミナーIDで検索した受講申込ファイルの件数を用います。公式解答例ではeは「受講申込ファイルのレコード件数」です。20字以内で指定の形式を満たします。定員は申込率の分母であり、受講率では実際に申込みが確定した人数を分母にする点を区別します。

設問3(3)(f)

平均評価点は「アンケートに回答した受講者の評価点の平均点」です。表3の分母は、アンケートファイルで受講有無が「有」のレコード件数なので、分子は評価点の合計になります。表1の注3では受講しなかった人の評価点を0とするため、対象セミナーのアンケートの評価点を合計しても、非受講者の値は合計に影響しません。公式解答例ではfは「アンケートファイルの評価点の合計」で、20字以内です。分母に非受講者を含めないことと、本文の指定どおり分母が0なら項目の値を0とすることも確認します。

学習のポイント

情報の管理単位、判定時点と確定時点の違い、接続状態の遷移、集計対象と分母の対応を読み取る練習が重点です。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 システムアーキテクト試験 午後Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針