平成21年春期試験午後問題 問5
問5 ソフトウェア設計
銀行口座の管理に関する次の記述を読んで,設問に答えよ。
ある銀行の個人顧客口座の口座管理手数料,現金自動預払機(以下,ATMという)での預払い及びATM使用手数料に関する口座情報を更新するプログラムである。
口座は,口座番号で識別される。口座には,所定の口座管理手数料が毎月掛かり,その月の月末処理で残高から引き落とされる。この口座管理手数料は,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。
口座に対してのATMからの預入れ及び引出しの操作には,1回当たり所定のATM使用手数料が掛かり,操作時に,その口座の残高から自動的に引き落とされる。このATM使用手数料も,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。
なお,同一口座に対しては,預入れ及び引出しの操作が完了するまで,ほかの操作は行えないものとする。
データベースには,所定の口座管理手数料及び所定のATM使用手数料と,口座ごとの残高及び手数料マークが格納されている。
手数料マークは,前月末日時点の残高が10万円未満であった場合に"真",そうでない場合に"偽"となる。
プログラムを構成する各モジュール間の関連を図に示す。〔預払トランザクション構成モジュールの説明〕
このモジュールには,次の各処理が用意されており,口座ごとに,預払い1件を単位として一つのトランザクションを構成する。
このモジュールには,次の各処理が用意されており,月末処理のため,口座ごとに一つのトランザクションを構成し,必要な処理を行う。月末処理は,月末日のATMからの操作受付終了後に行う。
ある銀行の個人顧客口座の口座管理手数料,現金自動預払機(以下,ATMという)での預払い及びATM使用手数料に関する口座情報を更新するプログラムである。
口座は,口座番号で識別される。口座には,所定の口座管理手数料が毎月掛かり,その月の月末処理で残高から引き落とされる。この口座管理手数料は,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。
口座に対してのATMからの預入れ及び引出しの操作には,1回当たり所定のATM使用手数料が掛かり,操作時に,その口座の残高から自動的に引き落とされる。このATM使用手数料も,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。
なお,同一口座に対しては,預入れ及び引出しの操作が完了するまで,ほかの操作は行えないものとする。
データベースには,所定の口座管理手数料及び所定のATM使用手数料と,口座ごとの残高及び手数料マークが格納されている。
手数料マークは,前月末日時点の残高が10万円未満であった場合に"真",そうでない場合に"偽"となる。
プログラムを構成する各モジュール間の関連を図に示す。〔預払トランザクション構成モジュールの説明〕
このモジュールには,次の各処理が用意されており,口座ごとに,預払い1件を単位として一つのトランザクションを構成する。
- 処理A
- ATMでの預払操作に対応して,データベースを更新する命令を作成し,データベース更新モジュールに送る。
- 処理B
- 残高不足となる場合は,利用者にメッセージで伝え,預払処理を行わない。
- 処理C
- データベースを更新する命令1件に対して,所定のATM使用手数料を 口座から引き落とす命令を作成し,データベース更新モジュールに送る。
このモジュールには,次の各処理が用意されており,月末処理のため,口座ごとに一つのトランザクションを構成し,必要な処理を行う。月末処理は,月末日のATMからの操作受付終了後に行う。
- 処理D
- 翌月のために手数料マークを設定する命令を作成し,データベース更新モジュールに送る。
- 処理E
- 所定の口座管理手数料を残高から引き落とした新たな残高を計算する。 新たな残高を書き戻す命令を作成して,データベース更新モジュールに送る。 計算結果の残高が負の値になることもある。
広告
設問
次の各モジュールに関する記述中の に入れる正しい答えを,解答群の中から選べ。
預払トランザクション構成モジュールでは,それぞれの実行条件に従って処理A~C及びデータベースへのアクセスが実行される。
その順番は,次のとおりである。
a→b→c→処理C
月末処理モジュールの処理Dでの手数料マークの設定に最低限必要なデータは,dである。また,処理Eは実行される場合とされない場合がある。処理Eの実行判定に必要なデータと,処理Eの実行に最低限必要なデータは,eである。
ここで,月末処理モジュールの処理D,処理Eの両方が実行される場合,その順番は,fである。
預払トランザクション構成モジュールでは,それぞれの実行条件に従って処理A~C及びデータベースへのアクセスが実行される。
その順番は,次のとおりである。
a→b→c→処理C
月末処理モジュールの処理Dでの手数料マークの設定に最低限必要なデータは,dである。また,処理Eは実行される場合とされない場合がある。処理Eの実行判定に必要なデータと,処理Eの実行に最低限必要なデータは,eである。
ここで,月末処理モジュールの処理D,処理Eの両方が実行される場合,その順番は,fである。
a,b,c に関する解答群
- 処理A
- 処理B
- データベースの検索
- データベースの項目内容変更
- データベースのレコード削除
d,e に関する解答群
- 所定の口座管理手数料
- 所定の口座管理手数料,その口座の残高
- 所定の口座管理手数料,その口座の残高,その口座の手数料マークの値
- その口座の残高
- その口座の手数料マークの値
f に関する解答群
- 処理Dの次に処理E
- 処理Eの次に処理D
- 任意
解答選択欄
- a:
- b:
- c:
- d:
- e:
- f:
- a=ウ
- b=イ
- c=ア
- d=エ
- e=ウ
- f=イ
解説
〔a,b,cについて〕処理Bにて口座残高が参照されるため、処理Bの前にデータベースを検索し該当する口座情報を取得しておく必要があります。したがって「データベースの検索」が「処理B」の前に入ります。
また残高不足となる支払要求に関してはデータベース更新命令を発行しないため、「処理Bにて有効な操作かを判断」→「処理Bにて有効と判断された預払操作に対して、処理Aはデータベース更新命令を発行」という手順が適切です。したがって処理Aは処理Bの後に入ると判断できます。
したがって正しい順番は「データベースの検索」→「処理B」→「処理A」になります。
∴a=ウ:データベースの検索
b=イ:処理B
c=ア:処理A
〔dについて〕
手数料マークには、前月末時点の残高によって"真"または"偽"が記録されます。この真偽を判断するため必要な情報は口座残高情報のみです。
∴d=エ:その口座の残高
〔eについて〕
処理Eではまず手数料マークを確認して、口座管理手数料の引き落としが必要かを判断します。引き落としが必要な口座は、その口座の残高から指定の口座管理手数料をひいた金額を計算します。したがって実行判定には手数料マークが、処理の実行には口座の残高・口座管理手数料の情報が必要です。
∴e=ウ
〔fについて〕
手数料マークは前月末時点の残高を判断基準にします。手数料マーク付けが口座管理手数料の引き落とし処理よりも先に実行された場合、口座管理手数料の引き落としに伴い残高が10万円未満になってしまうケースでも手数料マークに"真"が付与されてしまうため不適切です。このため先に処理Eを行い、その後の口座残高情報に基づき処理Dを行わなくてはなりません。
∴f=イ:処理Eの次に処理D
広告
広告