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

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

問5 ソフトウェア設計

購買管理システムで行う処理に関する次の記述を読んで,設問1~3に答えよ。

 自動車用アクセサリ類を製造しているK社では,購買部門が部品を発注する際に利用する購買管理システムを構築中である。システム部のC君は,購買ファイル更新可否チェック処理の開発を担当することになった。
 購買ファイル更新可否チェック処理においては,部品の購入依頼情報を格納したファイル(以下,依頼ファイルという)中の各レコードについて,購買ファイルを更新できるかどうかをチェックする。更新することができないレコードは,更新対象外依頼ファイルに出力する。更新することができるレコードは,更新用依頼ファイルに出力し,一連の処理として実行する購買ファイル更新処理に引き渡す。ここで,依頼ファイルは,1日に1回,バッチ処理時間帯に製造部門から受け取る。依頼ファイルには,過去に受け取った購入依頼情報のレコードは含まれない。購買ファイル更新可否チェック処理の位置付けを,図1に示す。
pm05_1.png
 依頼ファイル及び購買ファイルのレコードの項目を表1に,その項目の説明を表2に示す。更新用依頼ファイル及び更新対象外依頼ファイルのレコードの項目は,依頼ファイルのレコードの項目と同じである。
pm05_2.png
  • 依頼種別には,依頼者が購入依頼情報を新規に作成するときは"登録"が,変更するときは"変更"が,削除するときは"削除"が設定される。
  • 購買ステータスには,購買部門が発注先に見積りを依頼する前は"購買受付"が,見積りを依頼して発注するまでの間は"見積り中"が,発注して納品されるまでの間は"発注済"が,納品後は"納品済"が設定される。
〔購買ファイル更新可否チェック処理の概要〕
  • 依頼ファイルのレコードの,依頼IDと依頼種別を除く項目の内容は,正しいものとする。
  • 依頼IDの昇順に整列された依頼ファイルのレコードを先頭から順に読み込んで,全てのレコードについて次の処理を行う。
    1. 購買ファイルに同じ依頼IDをもつレコードがない場合
      依頼ファイルから読み込んだレコードの依頼種別が"登録"であれば,そのレコードを対象レコード出力処理を使って更新用依頼ファイルに出力する。
    2. 購買ファイルに同じ依頼IDをもつレコードがある場合
      購買ステータスが"購買受付"又は"見積り中"で,依頼ファイルから読み込んだレコードの依頼種別が"変更"又は"削除"であれば,そのレコードを対象レコード出力処理を使って更新用依頼ファイルに出力する。
    3. ①と②の処理で更新用依頼ファイルに出力しなかったレコードを,対象外レコード出力処理を使って更新対象外依頼ファイルに出力する。
 購買ファイル更新可否チェック処理の流れ図を,図2に示す。
pm05_3.png

設問1

図2中の に入れる適切な答えを,解答群の中から選べ。ここで,a1とa2に入れる答えは,aに関する解答群の中から組合せとして適切なものを選ぶものとする。
a に関する解答群
pm05_4.png
解答選択欄
  • a:
  • a=

解説

〔購買ファイル更新可否チェック処理の概要〕で説明されている処理の流れを図で視覚化すると次のようになります。
pm05_8.png
a1について〕
「レコードを読み込んだ」の分岐で No になったということは、購買ファイルに同じ依頼IDをもつレコードがないということです。この場合には、依頼種別を見て"登録"であれば更新用依頼ファイルに、それ以外であれば更新対象外依頼ファイルに出力することになります。
流れ図を見るとa1の分岐では、Yes のときに更新用依頼ファイルに出力、No のときに更新対象外依頼ファイルに出力することになっているので、適切な分岐条件は「依頼種別="登録"」になります。

a1=依頼種別="登録"

a2について〕
「レコードを読み込んだ」の分岐で Yes になったということは、購買ファイルに同じ依頼IDをもつレコードがあるということです。この場合には、購買ステータスが"購買受付"・"見積り中"であり、かつ、依頼種別が"変更"・"削除"であれば更新用依頼ファイルに、それ以外であれば更新対象外依頼ファイルに出力することになります。
流れ図を見るとa2の分岐は、購買ステータスが"購買受付"・"見積り中"であり、依頼種別が"変更"ではないときに行われる処理です。これは、依頼種別が"削除"であるか否かによって出力先を分ける部分に相当します。Yes のときに更新用依頼ファイルに出力、No のときに更新対象外依頼ファイルに出力することになっているので、適切な分岐条件は「依頼種別="削除"」になります。

a2=依頼種別="削除"

したがって分岐条件の適切な組合せは「ア」です。

∴ア

設問2

購買ファイル更新可否チェック処理のテストケースを設計する。テストケースに漏れがないように購買ファイル更新可否チェック処理で出力するファイルに着目して,決定表を作成した。出力するファイルの決定表を表3に示す。表3中の に入れる適切な答えを,解答群の中から選べ。
pm05_5.png
b,c に関する解答群
  • pm05_6a.png
  • pm05_6i.png
  • pm05_6u.png
  • pm05_6e.png
  • pm05_6o.png
  • pm05_6ka.png
解答選択欄
  • b:
  • c:
  • b=
  • c=

解説

決定表は、ある事象について条件や選択肢を表に記述し、記述された条件・選択肢をたどった場合にどのような結果になるかをわかりやすく表現した図です。
pm05_9.png
bについて〕
購買ステータスが"見積り中"のテストケースです。3種類の依頼種別のうち"登録"と"削除"はbの左右列に存在するので、bは、依頼種別が"変更"の場合のテストケースであるとわかります。よって、依頼種別の"変更"の位置に Y がつきます。
"見積り中"で"変更"の場合には更新用依頼ファイルに出力することになっているので、"更新用依頼ファイルに出力"の部分に X がつきます。

b=ア
pm05_10.png

cについて〕
購買ステータスが"納品済"のテストケースです。3種類の依頼種別のうち"登録"と"変更"はcの左2列に存在するので、cは、依頼種別が"削除"の場合のテストケースであるとわかります。よって、依頼種別の"削除"の位置に Y がつきます。
"納品済"になっている場合には依頼種別にかかわらず更新対象外依頼ファイルに出力することになっているので、"動作2)(更新対象外依頼ファイルに出力)"の部分に X がつきます。

c=オ
pm05_11.png

設問3

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

 購買ファイル更新可否チェック処理のテストのためにテスト用レコードを作成した。購買ファイルには表4に示すテスト用レコードを,依頼ファイルには表5に示すテスト用レコードを,事前に格納しておいた。
pm05_7.png
 これらのテスト用レコードを用いて,購買ファイル更新可否チェック処理を実行した場合,図2の破線で囲んだ処理のうち,対象外レコード出力処理では依頼IDがdのレコードが処理され,対象レコード出力処理では依頼IDがeのレコードが処理される。
d に関する解答群
  • 10000003
  • 10000004
  • 10000005
  • 10000006
  • 10000007
e に関する解答群
  • 10000003 と 10000005
  • 10000004 と 10000005
  • 10000004 と 10000006
  • 10000005 と 10000008
解答選択欄
  • d:
  • e:
  • d=
  • e=

解説

図2の破線で囲んだ処理に進むには、次の2つの条件を満たす必要があります。
  1. 購買ファイルに同じ依頼IDをもつレコードがある
  2. そのレコードの購買ステータスが"購買受付"・"見積り中"である
テスト用レコードの中から、この条件に合致するレコードを探します。まず、条件1を満たすレコードは 10000003~10000006 の4つです。次の条件2を満たすレコードは 10000003・10000004・10000005 の3つです。この3レコードが、破線部分で処理されるレコードになります。
pm05_12.png
dについて〕
図2の破線中の"対象外レコード出力処理"に進むには、依頼種別が"変更"・"削除"以外(つまり"登録")になっていなければなりません。上記の3つのレコードのうち、依頼種別が"変更"・"削除"以外になっているのは 10000004 だけなので、対象外レコード出力処理では 10000004 だけが処理されます。

d=イ:10000004

eについて〕
図2の破線中の"対象レコード出力処理"に進むには、依頼種別が"変更"・"削除"のいずれかになっていなければなりません。上記の3つのレコードのうち、依頼種別が"変更"・"削除"になっているのは 10000003 と 10000005 なので、対象レコード出力処理では 10000003 と 10000005 の2つのレコードが処理されます。

e=ア:10000003 と 10000005

Pagetop