平成30年春期試験午後問題 問5

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

問5 ソフトウェア設計

健康管理システムの設計に関する次の記述を読んで,設問1,2に答えよ。

 K社は,従業員の健康診断管理業務に健康管理システムを利用している。全従業員には,年1回,誕生月に定期健康診断を受診させる。再検査が必要となった場合には,再度,健康診断を受診させる。

〔健康管理システムを利用した健康診断管理業務の説明〕
 月初に,受診日(当月中旬の特定日)を指定して受診案内を通知する。受診すれば,受診した月の月末に健康診断結果を通知する。
  • 健康管理システムに,当月の受診対象者を登録する。
    1. 当月が誕生月である従業員を抽出する。
    2. 前月の定期健康診断において,再検査が必要と判定された従業員を抽出する。
    3. ①と②で抽出した従業員を受診対象者とし,健康診断コースを決定する。
    4. 受診日を決定し,受診対象者の健康診断レコードを健康管理システムに登録する。
  • 受診案内を受診対象者に通知する。
  • 定期健康診断及び再検査の受診後に,受診者の判定結果などを健康管理システムに登録する。
  • 受診者に,健康診断結果を通知する。

〔健康管理システムの機能の説明〕
 健康管理システムの機能一覧を,表1に示す。表1において,"業務との対応"列の項番は,〔健康管理システムを利用した健康診断管理業務の説明〕の項番に対応する。各機能では,健康管理システムの健康診断ファイルのアクセスと,人事システムの各マスタファイル(以下,マスタという)の情報の参照を行う。
pm05_1.gif
〔健康管理システム及び人事システムの関係の説明〕
 健康管理システムは,健康診断結果を健康診断ファイルで管理し,従業員の情報については,必要な項目の最新情報を人事システムの各マスタを参照して利用する。健康管理システム及び人事システムの関係は,図1のとおりである。
pm05_2.gif
〔健康診断ファイルの説明〕
 健康診断ファイルのレコード様式を,図2に示す。下線付きの項目は,主キーである。
pm05_3.gif
  • 対象年には,定期健康診断の受診対象となった年を設定する。再検査の場合は,前月に受診した定期健康診断の対象年と同じとする。
  • 実施年月には,健康診断を受診する年月を設定する。
  • 区分には,定期健康診断の場合は"定期"を,再検査の場合は"再検"を設定する。
  • 判定結果,再検査要否及び判定年月日は,対象者登録機能で空白を設定し,判定結果登録機能で更新する。

〔人事システムの各マスタの説明〕
 健康管理システムが参照する人事システムの各マスタのレコード様式を,図3に示す。下線付きの項目は,主キーである。
pm05_4.gif
 従業員マスタは,従業員の氏名,性別,生年月日などを保持する。従業員コードは,従業員に一意に付けられた番号であり,在勤地コードには,現在の在勤地の在勤地コードが入っている。職位マスタは,職位名と管理職フラグを保持し,管理職フラグで管理職かどうかが判別できる。在勤地マスタは,在勤地名とその在勤地の健康診断実施場所を保持する。

設問1

次の記述中の に入れる適切な答えを,解答群の中から選ベ。

 健康診断内容決定機能において,定期健康診断対象者抽出機能で従業員マスタから抽出された情報に加えて,定期健康診断の健康診断コース及び健康診断実施場所を決定するために最低限必要となるのは,aの情報である。再検査対象者抽出機能で健康診断ファイルから抽出された情報に加えて,再検査の健康診断実施場所を決定するために最低限必要となるのは,bの情報である。
a,b に関する解答群
  • 従業員マスタ
  • 従業員マスタ及び職位マスタ
  • 従業員マスタ及び在勤地マスタ
  • 従業員マスタ,職位マスタ及び在勤地マスタ
  • 職位マスタ
  • 職位マスタ及び所属マスタ
  • 職位マスタ及び在勤地マスタ
  • 所属マスタ
  • 在勤地マスタ
解答選択欄
  • a:
  • b:
  • a=
  • b=

解説

aについて〕
健康診断内容決定機能の説明には、「健康診断コースは、定期健康診断の場合は従業員の年齢性別管理職かどうかで決定する。再検査の場合は,前月に受信した定期健康診断の健康診断コースと同じにする。健康診断実施場所は,転勤になることも考慮し,従業員の現在の在勤地に基づいて決定する。」とあります。
このうち、既に従業員マスタから取得済みの情報は「年齢」「性別」だけですので、その従業員の職位コードが「管理職かどうか」について情報を職位マスタから、在勤地コードに紐付けられた「在勤地名」を在勤地マスタから取得しなければなりません。

a=キ:職位マスタ及び在勤地マスタ

bについて〕
健康診断の実施場所は転勤等により前回と異なる可能性があるため、対象者登録の度に在勤地を確認して決定します。再検査対象者抽出機能は、再検査が必要とされた従業員を健康診断ファイルから抽出する機能であり、抽出された健康診断ファイルのレコードには在勤地コードは含まれていません。このため、再検査対象者に対する健康診断内容決定機能では、抽出された健康診断ファイルのレコードの従業員コードをもとに従業員マスタから在勤地コードを取得し、さらに在勤地コードをもとに在勤地マスタから在勤地名を取得しなければなりません。

b=ウ:従業員マスタ及び在勤地マスタ

設問2

次の記述中の に入れる適切な答えを,解答群の中から選べ。

 今回,健康管理業務として,12月の受診者の健康診断の判定結果を登録した後に,当年の健康診断の未受診者を抽出することになった。そのために,未受診者抽出機能を追加することにした。ここで,当年の健康診断の未受診者は,従業員マスタから情報が抽出できる従業員のうち,次のいずれかに該当する者とする。
  • 当年の定期健康診断の健康診断レコードが存在しない。
  • 当年の定期健康診断の判定結果が登録されていない。
  • 当年の定期健康診断の結果,再検査が必要と判定されたが,再検査の健康診断レコードが存在しない,又はその判定結果が登録されていない。
 未受診者抽出機能の処理の流れを図4に示す。ここで,図4の従業員マスタは従業員コードの昇順で整列されているものとする。
pm05_5.gif
〔未受診者抽出機能の処理の説明〕
  • 図4の突合せ処理において,各ファイルを先頭から順次読み込んで処理できるように,前処理として次の①~③を実行する。
    1. 抽出1処理で,対象年が当年のレコードを健康診断ファイルから抽出し,当年の健康診断ファイルを作成する。
    2. 整列処理で,当年の健康診断ファイルをcにで整列し,ファイルXを作成する。
    3. 抽出2処理で,ファイルXのレコードを先頭から順にファイルYに出力する。ここで,dが連続した場合には,最初に出現したレコードだけを出力する。
  • 突合せ処理で,従業員マスタに存在する従業員コードに対して,次に示す①又は②のいずれかに該当する場合に,従業員コードを未受診者ファイルに出力する。
    1. 従業員コードが一致するレコードがファイルYに存在しない
    2. eのレコードがファイルYに存在する。
c に関する解答群
  • 従業員コードの昇順
  • 従業員コードの昇順,実施年月の昇順
  • 従業員コードの昇順,実施年月の降順
  • 従業員コードの降順
  • 従業員コードの降順,実施年月の昇順
  • 従業員コードの降順,実施年月の降順
d に関する解答群
  • 同じ従業員コード
  • 同じ従業員コード及び区分
  • 同じ健康診断コース
  • 同じ健康診断コース及び区分
e に関する解答群
  • 判定結果が空白
  • 再検査要否が"要"
  • 再検査要否が"否"
  • 判定結果が空白,又は再検査要否が"要"
  • 判定結果が空白,又は再検査要否が"否"
解答選択欄
  • c:
  • d:
  • e:
  • c=
  • d=
  • e=

解説

cについて〕
問題文中に「従業員マスタは従業員コードの昇順で整列されている」と説明されています。②の処理で整列されたファイルXは、その後ファイルYとなり、従業員マスタと突合せが行われるため、ファイルXの整列は従業員マスタと同じ従業員コードの昇順になっていなければなりません。
そして、ファイルYの出力処理中に「最初に出現したレコードだけを出力する」とあります。未受診者の判定に必要なのは、当年分の健康診断ファイルのレコードのうち直近の1レコードだけですので、同じ従業員コードのレコードが複数存在する場合には実施年月が最も新しいものを出力しなければなりません。このためには、あらかじめ整列処理において実施年月の降順に整列させておく必要があります。

c=ウ:従業員コードの昇順,実施年月の降順

dについて〕
上の説明で少し触れましたが、ファイルXには従業員コードが同じである複数のレコードが含まれていますが、未受診者の判定には直近の1レコードがあれば足ります。ファイルXは、「従業員コードの昇順・実施年月の降順」に整列されているので、最初に出現したレコードのみを出力するのは同じ従業員コードが続いた場合ということになります。

d=ア:従業員コード

eについて〕
未受診者として判定されるのは次のいずれかに該当する者です。
  • 当年の定期健康診断の健康診断レコードが存在しない。
  • 当年の定期健康診断の判定結果が登録されていない。
  • 当年の定期診断の結果,再検査が必要と判定されたが,再検査の健康診断レコードが存在しない,又はその判定結果が登録されていない。
(1)の者は「①従業員コードが一致するレコードがファイルYに存在しない」で抽出されますので、eには(2)(3)の者を抽出する条件が入ります。

まず(2)についてですが、対象者登録の際には判定結果欄を空白で登録するため、判定結果が登録されていないレコードは判定結果欄がそのまま空白になっているはずです。このため(2)の者を抽出する条件として判定結果が空白を含めなければなりません。

次に(3)についてですが、判定結果登録機能の説明において「再検査後の再検査要否は必ず"否"にする」と説明されています。12月の判定結果は登録済ですから、再検査を受診した者ならばファイルYに出力されているレコードは、判定結果≠空白、再検査要否="否"になっているはずです。つまり、ファイルYに出力されたレコードの再検査要否が"要"になっているということは、(12月の定期健康診断で再検査"要"と診断されるなどして)まだ再検査の登録が行われていない者であると判断できます。つまりファイルYのレコードの再検査要否が"要"になっている者は未受診者に該当します。

以上より、eにはこの2つの条件を組み合わせた「エ」が入るとわかります。

e=エ:判定結果が空白,又は再検査要否が"要"

Pagetop