令和6年度 春期 システムアーキテクト試験 午後I 問3 学習塾の登下校通知システムの設計変更

テクノロジシステム開発技術

この問題は2024(R6)春 システムアーキテクト 午後Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

複数拠点をもつ学習塾の登下校通知システムを題材に、要件理解と設計変更の力を試す問題です。同姓同名や複数拠点通塾のような運用で初めて顕在化する設計の穴を指摘され、既存機能への悪影響を抑えながら対応する流れが実務的です。この記事では、ファイルと機能の関係を簡単なモデル図に起こし、各指摘が「どの情報が足りない」ことを突いているのかを特定してから設計変更の解答を組み立てます。

この記事で押さえる論点

  • 複数拠点で運用する際の識別・通知の設計課題を見抜く
  • レビュー指摘・追加要望を既存機能への影響とともに設計へ反映する
  • 機能変更が引き起こす悪影響(副作用)を予測する

問題本文

学習塾の通知システムに関する次の記述を読んで,設問に答えよ。

 K社は小中学生を主なターゲットにした個別指導学習塾チェーンであり,全国約200の拠点とそれらを統括する本部で構成されている。保護者の防犯意識の高まりを受けて,生徒が塾に到着したとき(以下,登校という)と帰宅のために塾を退出するとき(以下,下校という)に保護者に電子メール(以下,メールという)で登校・下校(以下,登下校という)を通知するシステム(以下,新システムという)を新たに導入することにした。

〔業務の概要と新システムへの要望〕

 K社の拠点は駅前を中心に展開されており,各拠点には30〜100名程度の生徒が所属している。兄弟姉妹で入会する生徒も多いが,それぞれが別の拠点に所属する場合もある。通常の授業は14時から21時まで行われている。
 新システムは,保護者からの“子供が無事に塾に到着したのかを知りたい”,“帰宅前に通知が欲しい”といった要望を受けて導入が決まったものであり,拠点長からは次のような要望も寄せられている。

  • 保護者が生徒の顔を見て安心できるように,登下校を通知するメール(以下,登下校通知メールという)には登下校時に撮影した写真を添付したい。
  • 夕方のピーク時間帯の授業では,授業開始直前や終了直後に出入口が混雑するので,登下校の手続はスムーズにできるようにしてほしい。
  • 登下校通知メールの送信が遅延すると保護者に不安を与えるので,可能な限り早く送信したい。
  • 生徒は時々忘れ物をすることがあるが,その場合でも使えるようなシステムにしてほしい。
  • 登下校の履歴から拠点に在室している生徒数を把握したい。

〔新システムの設計〕

 K社情報システム部のL課長は,新システムを次のように設計した。
 拠点の出入口に,生徒が登下校の手続を行うためのタブレット端末(以下,登下校用端末という)を設置する。登下校用端末には,拠点ごとに一意の拠点コードを設定しておく。生徒数が多い拠点では,登下校用端末を複数設置してどの端末でも登下校の手続ができるようにする。

 本部に管理サーバを設置し,各種マスターや登下校履歴のファイルは管理サーバ内で一元管理する。拠点長及び本部の担当者は,管理サーバに実装する Web管理画面(以下,管理画面という)にログインして各種管理業務を行う。登下校用端末からは管理サーバ内のファイルにはアクセスしない。登下校用端末が管理サーバから受け取る情報は,依頼した処理の成功又は失敗だけとする。

 生徒には1人1枚ずつ生徒カードを配布する。生徒カードには一意の生徒カード番号を割り当て,生徒カード番号の QRコードと生徒氏名を印刷する。

 登下校用端末では常時フロントカメラが動作している。生徒が生徒カードをかざすとフロントカメラが QRコードを認識し,その時点の映像を生徒の顔や QRコードを含む写真として撮影する。その上で,QRコードから読み取った生徒カード番号と撮影した写真を管理サーバに送信し,管理サーバで登下校登録と保護者への登下校通知メール送信が行われる。登下校の手続では,登下校用端末上での画面操作は求めず,その日1回目の登下校登録は登校,2回目は下校というように自動判定する。この自動判定は登下校用端末に実装すると正しく判定できないことがあるので,管理サーバ上に実装することにした。

 登下校通知メールの送信がエラーになった場合は,新システムから生徒が所属する拠点の拠点長に通知する。通知を受け取った拠点長は保護者メールアドレスを確認し,必要な対応を行う。

 新システムの主要なファイルを表1に示す。

表1 新システムの主要なファイル
図の説明テキスト

表1 新システムの主要なファイル

ファイル名 属性(下線は主キーを示す)
拠点マスター 拠点コード, 拠点名, 拠点長メールアドレス
生徒マスター 生徒番号, 拠点コード, 生徒氏名, 保護者メールアドレス, 登下校通知メール受信有無(“有”, “無”)
生徒カードマスター 生徒カード番号, 生徒番号
登下校履歴 生徒番号, 登下校日時, 登下校区分(“登校”, “下校”)

 管理サーバの主要な機能を表2に示す。

表2 管理サーバの主要な機能
図の説明テキスト

表2 管理サーバの主要な機能

機能名 機能概要
生徒情報管理 拠点長が管理画面にログインし,生徒情報の登録や変更を行う機能。
・新規登録時には一意の生徒番号が採番され,拠点コード,生徒氏名とともに生徒マスターに登録する。
・保護者が登下校通知メールの受信を希望する場合は,登下校通知メール受信有無を“有”にし,保護者メールアドレスを設定する。
・保護者が登下校通知メールの受信を希望しない場合は,登下校通知メール受信有無を“無”にし,保護者メールアドレスは設定しない。
生徒カード発行 拠点長が管理画面にログインし,生徒カードを発行する機能。
・一意の生徒カード番号を割り当て,生徒カードマスターに登録する。生徒カード番号のQRコードを生成し,生徒氏名とともに用紙に印刷する。
登下校登録 登下校用端末から呼び出され,登下校履歴を登録する機能。
・登下校用端末から受け取った生徒カード番号で生徒カードマスターを検索し,生徒番号を特定する。登下校履歴ファイルのうち,登下校日時が当日で生徒番号が一致するものの件数が偶数であれば登下校区分を登校,奇数であれば下校と判定する。
・特定された生徒番号,判定された登下校区分を用いて登下校履歴ファイルに登録する。登下校日時は現在日時とする。
・登下校通知メール送信機能を呼び出し,登録した登下校履歴ファイルの情報と登下校用端末から受け取った写真を渡す。
登下校代理登録 生徒が生徒カードの持参を忘れた場合,登下校用端末での手続ができない。この際に拠点長に申し出て,拠点長が管理画面にログインして手動で登下校履歴を登録する機能。
・生徒番号を入力し,登下校日時は現在日時として登下校履歴ファイルに登録する。登下校区分は登下校登録機能と同様に自動判定する。
・登下校通知メール送信機能を呼び出し,登録した登下校履歴ファイルの情報を渡す。
登下校通知メール送信 登下校登録機能又は登下校代理登録機能から呼び出され,保護者にメールを送信する機能。ただし,登下校通知メール受信有無が“無”の場合は何もしない。
・渡された登下校履歴ファイルの生徒番号で生徒マスターを検索して生徒氏名を取得する。また,検索結果から拠点コードも取得し,その拠点コードで拠点マスターを検索して拠点名を取得する。メール本文には,登校時は“(生徒氏名)さんが(登下校日時)に(拠点名)に到着しました”,下校時は“(生徒氏名)さんが(登下校日時)に(拠点名)を退出しました”のように記載される。呼出し元の機能から写真が渡された場合は,その写真をメールに添付する。
・メールは新システム全体で一つのメールアドレスから送信する。メールサーバの仕様上,一度に大量に送信すると送信完了までに時間が掛かることがあるが,夕方のピーク時間帯でも問題ない程度の性能を確保する。

〔上長からの指摘及び追加要望〕

 L課長が設計内容を上長に説明したところ,次のような指摘及び追加要望が出された。

  • 生徒が生徒カードの持参を忘れた場合に,登下校代理登録機能を用いる方法では,一部の要望を実現できない。
  • メール送信エラー通知機能で,ある場合に通知すべき拠点を特定できない。
  • 各拠点から,所属する全ての生徒の保護者に対して臨時休校のお知らせなどを一斉送信する機能を追加したい。本部からも,全拠点又は特定拠点の生徒の保護者に対して各種お知らせを一斉送信できるようにしたい。
  • 模試や夏期講習などで,臨時で別の拠点の授業を受けることがある。この際も登下校を管理し,登下校通知のメール送信もできるようにしたい。生徒カードは通常の授業と同じものを使いたい。

〔システムの設計変更〕

 L課長は上長からの指摘及び追加要望を受け,次のような設計変更を行った。ただし,登下校代理登録機能の指摘に関しては,本システムでの要望の実現は難しいと判断して対応を見送ることにした。

(1) メール送信エラー通知機能の修正

(省略)

(2) お知らせメール送信機能の追加

表2 管理サーバの主要な機能(続き)
図の説明テキスト

表2 管理サーバの主要な機能(続き)

機能名 機能概要
拠点在室人数表示 拠点長が管理画面にログインし,在室している生徒数を確認する機能。
・登下校履歴ファイルのうち,登下校日時が当日で生徒番号が自拠点の生徒番号のものを抽出し,登下校区分が“登校”の件数と“下校”の件数の差を在室人数として表示する。
メール送信エラー通知 登下校通知メール送信の結果,メールサーバからエラーメッセージが返った場合に,登下校した生徒が所属する拠点の拠点長に,メール送信がエラーになった旨を通知する機能。
・エラーメッセージに含まれる宛先メールアドレスを生徒マスターに設定されている保護者メールアドレスと照合の上,一致した生徒が所属する拠点の拠点長にメール送信がエラーになった旨を通知する。

 拠点長及び本部担当者の管理画面において,生徒の保護者に一斉にメール送信できるようにする。拠点長の場合は自拠点に所属する全生徒が,本部担当者の場合は全拠点又は選択した拠点の全生徒が対象となる。件名,本文を入力して送信ボタンを押すことで,対象となるメールアドレス全てにメールが送信される。本機能の導入に当たり,表2中のある機能を変更する

 また,他の機能へ悪影響を与える懸念があるので,本機能では専用のメールサーバを新たに導入することにした。

(3) 別拠点への登下校への対応

 登下校履歴ファイルに,実際に登下校した拠点を示す“拠点コード”属性を追加する。この属性には,登下校登録機能では登下校用端末から受け取った拠点コードを設定し,登下校代理登録機能では拠点長が自拠点の拠点コードを設定する。また,これらの機能のほかにも二つの機能を変更する

 登下校用端末は,生徒カード番号と撮影した写真に加えて,設定されている拠点コードを管理サーバに送信するように修正する。

設問と解答・解説

設問1

〔新システムの設計〕について,本文中の下線①はどのような場合に起こるか。30字以内で答えよ。

模範解答

登校時と下校時で別の登下校用端末を使用した場合

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 登校時と下校時で別端末を使用していることが記述されている。
  • 1: 別端末の使用には触れているが、登校・下校の違いが不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 主語・述語が適切で、意味が通る自然な文章で構成されている。
  • 1: 意味は推測できるが、文章構造にやや不自然な点がある。
  • 0: 全く意味が通らない文章である。

解説

解答の導き方

本文中のシステム設計要件や制約に基づき、下線①「登校時と下校時の画像をペアにできない場合」の発生条件を読み取ります。
画像データは端末固有のストレージに保存される仕様であるため、登校時と下校時で別々の端末を利用すると、データが一致しなくなります。

高得点のポイント

  • 登校時と下校時で別の端末を使用するという状況を明記すること。
  • 30文字以内の字数制限に収め、簡潔で分かりやすい文章で表現すること。

設問2

〔上長からの指摘及び追加要望〕について答えよ。

(1)

登下校代理登録機能を用いる方法では実現できない要望を25字以内で答えよ。

模範解答

登下校通知メールに写真を添付する要望

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 写真を添付するという要望が具体的に記述されている。
  • 1: 写真に関することは記述されているが、要望の内容がやや不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 短い字数制限内で、的確に要望を表現している。
  • 1: やや冗長、または意味が通じにくい表現が含まれる。
  • 0: 意味が通らない文章である。

解説

解答の導き方

〔上長からの指摘及び追加要望〕に関する設問です。
登下校代理登録機能を利用した場合、実際の生徒の写真撮影が行われません。そのため、追加要望として挙がっている内容のうち、代理登録では満たせないものを特定します。
本文から、登下校通知メールに写真を添付する要望が該当することが分かります。

高得点のポイント

  • 写真添付の要望を確実に含めること。
  • 25文字以内で簡潔にまとめること。

(2)

メール送信エラー通知機能で通知すべき拠点を特定できないのはどのような場合か。40字以内で具体的に答えよ。

模範解答

保護者メールアドレスが同一の複数の生徒が,別々の拠点に所属している場合

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 保護者メールアドレスが同一の複数生徒が、別々の拠点に所属している状況が記述されている。
  • 1: 「同一メールアドレス」には触れているが、「別拠点への所属」が抜けている、または「臨時で別拠点の授業を受けている場合」など誤った解釈が含まれる。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 状況を正確に伝える、論理的に破綻のない文章で構成されている。
  • 1: 意味は通じるが、文脈の繋がりがやや不自然な部分がある。
  • 0: 意味が通らない文章である。

解説

解答の導き方

メール送信エラー通知機能において、保護者メールアドレスをキーに検索すると、同一メールアドレスで複数拠点の生徒がヒットしてしまうケースを答えます。
講評にもある通り、「臨時で別拠点の授業を受けている場合」は誤りです。正しくは、兄弟などが別々の拠点に所属しており、同一の保護者メールアドレスが登録されている場合です。

高得点のポイント

  • 保護者メールアドレスが同一の複数の生徒が、別々の拠点に所属している状況を明記すること。
  • 講評で指摘されたような誤解(別拠点での臨時受講)を与えない明確な表現であること。

設問2(2)は,正答率がやや低かった。保護者メールアドレスをキーに検索すると複数拠点の生徒が一致する場合があることを問う問題であったが,“臨時で別拠点の授業を受けている場合”と誤って解答した受験者が多かった。本文中の記述から処理の内容と指摘事項を読み取り,正答を導き出してほしい。

設問3

〔システムの設計変更〕について答えよ。

(1)

本文中の下線②について,変更する機能名を表2中から答えよ。

模範解答

生徒情報管理

採点基準(配点 6点)

正確性(内容)(6点)

  • 6: 「生徒情報管理」と完全に一致している。
  • 3: 余計な文字が含まれるが、「生徒情報管理」のキーワードは含まれている。
  • 0: 「登下校通知メール送信」などの誤答、あるいは全く異なる内容。

解説

解答の導き方

保護者メールアドレスの必須化に伴い、どの機能に変更が生じるかを検討します。
生徒の基本情報(保護者メールアドレスを含む)を管理する機能であるため、表2の中から生徒情報管理が該当します。
追加機能の実装に併せて、既存機能のどこに変更が必要となるかを正しく把握することが求められます。(講評にある通り「登下校通知メール送信」とするのは誤りです)

高得点のポイント

  • 表2にある「生徒情報管理」という名称を正確に抜き出すこと。

(2)

また,どのような変更を行うのか。35字以内で答えよ。

模範解答

全ての生徒の保護者メールアドレスを設定するように変更する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 全ての生徒の保護者メールアドレスを設定するように変更する旨が記述されている。
  • 1: 保護者メールアドレスの追加には触れているが、「全ての生徒」の条件が不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 変更内容が明確に伝わる自然な文章である。
  • 1: やや不自然な表現が含まれる。
  • 0: 意味が通らない文章である。

解説

解答の導き方

「生徒情報管理」の機能において、保護者メールアドレスの扱いを必須にするための具体的な変更点を答えます。
既存のシステムでは任意であった設定を、必須設定に改めるため、全ての生徒に対して保護者メールアドレスを設定するように変更する旨を記載します。

高得点のポイント

  • 全ての生徒を対象とすることを明記すること。
  • 保護者メールアドレスを設定するという変更内容を分かりやすく記述すること。

(3)

本文中の下線③で懸念したのはどのような悪影響か。20字以内で答えよ。

模範解答

登下校通知メールの送信が遅延する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 登下校通知メールの送信が遅延する悪影響が記述されている。
  • 1: メールの問題に触れているが「遅延」という具体的な現象が不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 短い字数制限内で、的確に悪影響を表現している。
  • 1: やや不自然な表現が含まれる。
  • 0: 意味が通らない文章である。

解説

解答の導き方

下線③について、処理が集中した場合などのパフォーマンス懸念として想定される悪影響を答えます。
通知システムにおいて最もクリティカルな影響は、本来リアルタイムで届くべき通知メールの送信が遅延することです。

高得点のポイント

  • 登下校通知メールの送信に影響が及ぶことを明記すること。
  • 遅延するという具体的な悪影響を簡潔に(20字以内)表現すること。

(4)

本文中の下線④について,変更する機能名を表2中から二つ答えよ。1つ目を答えよ。

模範解答

登下校通知メール送信

採点基準(配点 6点)

正確性(内容)(6点)

  • 6: 「登下校通知メール送信」と完全に一致している。
  • 3: 余計な文字が含まれるが、対象機能を示す記述がある。
  • 0: 不一致、または無解答。

解説

解答の導き方

下線④に関連し、別拠点に登下校した場合の変更が必要な機能を答えます。
1つ目は、保護者に送信する通知メールにおいて正しい拠点名を表示する必要があるため、登下校通知メール送信が該当します。

高得点のポイント

  • 表2にある「登下校通知メール送信」という名称を正確に抜き出すこと。

(5)

また,それらの機能概要をどのように変更するのか。それぞれ40字以内で具体的に答えよ。

模範解答

拠点名を登下校履歴ファイルの拠点コードから取得するように変更する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 拠点名を登下校履歴ファイルの拠点コードから取得するように変更する旨が明記されている。
  • 1: 取得元の変更には触れているが、「登下校履歴ファイルの拠点コード」であることが不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 変更内容が明確に伝わる自然な文章である。
  • 1: やや不自然な表現が含まれる。
  • 0: 意味が通らない文章である。

解説

解答の導き方

「登下校通知メール送信」機能の具体的な変更内容を答えます。
生徒が本来所属している自拠点の情報ではなく、実際に登下校した拠点の名前を表示する必要があります。そのため、登下校履歴ファイルの拠点コードから拠点名を取得するように変更します。

高得点のポイント

  • 拠点名の取得元が登下校履歴ファイルの拠点コードであることを明記すること。

(6)

変更する機能名を表2中から二つ答えよ。2つ目を答えよ。

模範解答

拠点在室人数表示

採点基準(配点 6点)

正確性(内容)(6点)

  • 6: 「拠点在室人数表示」と完全に一致している。
  • 3: 余計な文字が含まれるが、対象機能を示す記述がある。
  • 0: 不一致、または無解答。

解説

解答の導き方

下線④に関連し、別拠点に登下校した場合の変更が必要な機能の2つ目を答えます。
各拠点の現在の在室人数を正しく表示するためには、他拠点から来た生徒や他拠点へ行った生徒の登下校も反映させる必要があります。したがって、拠点在室人数表示が該当します。

高得点のポイント

  • 表2にある「拠点在室人数表示」という名称を正確に抜き出すこと。

(7)

また,それらの機能概要をどのように変更するのか。それぞれ40字以内で具体的に答えよ。

模範解答

登下校日時が当日で,拠点コードが自拠点のものを抽出するように変更する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 「登下校日時が当日」「拠点コードが自拠点」の両方の抽出条件が明記されている。
  • 1: どちらか一方の条件のみ記載されている、または条件が不明確である。
  • 0: 条件を満たさない、または無解答。

論理性(構造)(2点)

  • 2: 条件抽出の変更内容が明確に伝わる自然な文章である。
  • 1: やや不自然な表現が含まれる。
  • 0: 意味が通らない文章である。

解説

解答の導き方

「拠点在室人数表示」機能の抽出条件の変更内容を答えます。
講評にある通り、「別拠点の生徒が自拠点に登下校するケースだけでなく、自拠点の生徒が別拠点に登下校するケースもある」ため、単に所属拠点ではなく実際の登下校記録を使用する必要があります。
人数の計算には、登下校履歴ファイルの拠点コードが自拠点のものであり、かつ登下校日時が当日であるデータを抽出するように変更します。

高得点のポイント

  • 登下校日時が当日である条件を含めること。
  • 拠点コードが自拠点である条件を明記すること。
  • 両方の条件を漏れなく記述すること。

設問3(1)は,正答率がやや低かった。変更する機能名を,“登下校通知メール送信”と誤って解答した受験者が多かった。追加機能の実装に併せて,既存機能にどのような変更が必要となるかを正しく把握してほしい。設問3(3)は,拠点在室人数表示機能に関する変更内容の正答率がやや低かった。“別拠点の生徒も抽出対象に加える”のような,条件の変更には触れているものの,内容が不十分な解答が散見された。別拠点の生徒が自拠点に登下校するケースだけでなく,自拠点の生徒が別拠点に登下校するケースもあることから,人数の計算には登下校履歴ファイルの“拠点コード”を使用する必要がある。追加要望に応じた変更を加える際の影響範囲を正しく把握し,適切な処理内容を設計できるよう心掛けてほしい。