システムアーキテクト試験 2010年 午後1 問02
債券システムの設計に関する次の記述を読んで、設問1~3に答えよ。
B銀行は、顧客である機関投資家から債券の売買依頼を受けると、仲介業者などを通して売買相手先を探し、売買相手先が取引する金融機関と中央銀行を通して決済を行う債券業務を行っている。このたび、債券システムの再構築を行うことになった。
再構築後の債券システムは、顧客の売買依頼を受け付ける債券フロントシステムと、会計処理や決済処理などの後方事務を行う債券事務システムから構成される。取り扱う債券は銘柄コードで管理する。債券フロントシステムは顧客ごとに取引を管理するが、債券事務システムでは顧客ごとの管理を必要としないので、銘柄コードごとに取引を管理する。再構築後の債券システムの概要図を図1に示す。
〔債券事務システムの機能概要設計〕 債券フロントシステムの機能を踏まえ、債券事務システムで行うべき主な機能を検討した結果、次のとおりとなった。ただし、資金決済明細作成処理は省略している。
(1)売買取引の管理機能
①窓口担当者は、顧客の売買依頼を受けて、債券フロントシステムに約定日、銘柄コード、取引区分、単価などの取引データを入力する。取引データには、債券システム全体で一意な取引番号が昇順に割り当てられる。
②事務担当者が債券フロントシステムの画面から取引データの受入承認を行うと、取引データが債券事務システムに送信される。債券事務システムは、取引データを受信するたびに取引ログ作成処理を起動して取引ログを作成する。
③債券事務システムは、取引ログが作成されるたびに売買明細作成処理および資金決済明細作成処理を起動して、売買明細と資金決済明細を作成する。
④単価は市場動向によって取引ごとに変動するので、その銘柄の平均単価を移動平均法によって算出するとともに、数量残高、残高および損益を算出して売買明細に保持する。
数量残高及び残高は、同じ銘柄コードの前回取引時点の値に今回の取引分を加減算して求める。それらの値を使って平均単価及び損益を求める。新たな銘柄コード“028”の取引が3件成立した時の売買明細テーブルの内容の一部と各値の計算式を図2に示す。
⑤事務担当者は、売買明細および資金決済明細を照会して、売買相手先に取引内容の確認を行う。確認後、債券フロントシステムに対して取引データの確定承認を行う。債券フロントシステムは確定承認を受け付けると承認データを債券事務システムに送信し、債券事務システムでは該当する取引ログの承認区分を確定承認にする。
(2)売買取引の取消機能
①売買相手先との確認で、単価の入力ミスなど取引内容に誤りがあった場合、事務担当者は確定承認をせず、窓口担当者に承認拒否とその内容を知らせる。窓口担当者は原因調査の上、承認拒否の対象となった取引の取消しと、同一取引番号の正しい取引を入力する。事務担当者は受入承認を行った後、改めて正しい取引に対する確定承認を行う。
②事務担当者の受入承認によって、取引ログテーブルには取引の取消しによる取引ログと、正しい取引による取引ログが新たに作成される。その後、売買明細テーブルには取消対象の売買明細の状態区分に取消表示が設定され、同一取引番号で枝番付きの正しい売買明細が作成され、以降の同一銘柄コードの売買明細に対して、残高、平均単価、損益などの変更が行われる。
図2の取引番号168番の単価を110円から120円に変更した場合の売買明細テーブルの更新内容の例を図3に示す。網掛け部分が追加又は変更箇所である。
(3)締め処理におけるチェック機能および照合機能 ①窓口担当者が当日の業務の終わりに債券フロントシステムに対して業務の終了を行うと、締めの電文が債券事務システムに送信される。債券事務システムは、締めの電文を受け取ると、当日作成した取引ログの承認区分が確定承認であることのチェックと、取消しの取引ログがある場合は、該当の取消しの売買明細の有無と新たな正しい売買明細が作成されたことのチェックを行う。 ②債券事務システムは、債券フロントシステムから当日分の売買が成立した売買取引件数、取消件数、銘柄コードごとの買入数量合計および売却数量合計を属性とする照合ファイルを受け取る。その後、取引ログおよび売買明細の内容と照合ファイルの属性の値とを照合する。 ③締め処理におけるチェック機能及び照合機能の内容を表に示す。表中の項番1の承認のチェックでは、取引ログの取消レコードを除く当日レコードの承認区分が確定承認になっていることをチェックする。項番2以降の項目についても同様に記述している。
(3)締め処理におけるチェック機能および照合機能 ①窓口担当者が当日の業務の終わりに債券フロントシステムに対して業務の終了を行うと、締めの電文が債券事務システムに送信される。債券事務システムは、締めの電文を受け取ると、当日作成した取引ログの承認区分が確定承認であることのチェックと、取消しの取引ログがある場合は、該当の取消しの売買明細の有無と新たな正しい売買明細が作成されたことのチェックを行う。 ②債券事務システムは、債券フロントシステムから当日分の売買が成立した売買取引件数、取消件数、銘柄コードごとの買入数量合計および売却数量合計を属性とする照合ファイルを受け取る。その後、取引ログおよび売買明細の内容と照合ファイルの属性の値とを照合する。 ③締め処理におけるチェック機能及び照合機能の内容を表に示す。表中の項番1の承認のチェックでは、取引ログの取消レコードを除く当日レコードの承認区分が確定承認になっていることをチェックする。項番2以降の項目についても同様に記述している。
④事務担当者は、チェック又は照合で不整合が発生した場合、取引の内容を分析して対処する。不整合がない場合は、債券事務システムに締めを入力する。債券事務システムは、締めの入力によって残高試算表作成処理を実行する。
(4)残高試算表作成処理の機能
①当日の勘定を計上するため、取消し以外の売買明細を読み込み、仕訳伝票テーブルに仕訳伝票レコードを作成する。一つの売買明細から複数の勘定科目による仕訳が行われるので、仕訳伝票テーブルには、日付、勘定科目別に、金額、取引番号などを保有する。
例えば、100百万円の買入を行った場合、取引を実行した約定日に有価証券勘定を計上し、債券を授受する受渡日に現金の支払の勘定を計上するので、図4に示す仕訳が行われる。図4中の仮払金は債券の利息分である。その結果、仕訳伝票テーブルには日付、勘定科目別に5レコードが作成される。
②仕訳伝票テーブル作成後、当日勘定の仕訳伝票レコードを集計して、当日の残高試算表を作成する。
設問1:
売買明細作成処理で新たな売買明細レコードを作成する場合、取引ログのほかに入力データとして参照する売買明細レコードはどのようなレコードか。35字以内で述べよ。
模範解答
同一銘柄コードで取引番号が一番大きく状態区分が“ 0” のレコード
解説
解答の論理構成
- 【問題文】には売買明細の計算式として
「数量残高及び残高は、同じ銘柄コードの前回取引時点の値に今回の取引分を加減算して求める」
と明記されています。 - “前回取引時点の値” とは、該当銘柄で最も直近に確定している売買明細レコードを指します。
- 取消が発生した場合の挙動は
「売買明細テーブルには取消対象の売買明細の状態区分に取消表示が設定され、…以降の同一銘柄コードの売買明細に対して、残高、平均単価、損益などの変更が行われる」
と定義されており、状態区分が取消表示のレコードは後続計算の基礎にしないことが示唆されています。 - よって“前回”として参照すべきレコードは
(a) 同一銘柄コードである
(b) 状態区分が“0”(取消でない)である
(c) その中で取引番号が最大である
という三条件をすべて満たすレコードになります。 - 以上から模範解答どおりの記述となります。
誤りやすいポイント
- 取引番号ではなく枝番を大小比較してしまう
- 状態区分が取消表示でも“取引番号が大きいから”と誤って採用する
- 平均単価・損益の計算に必要な前回値を売買明細からではなく取引ログから直接参照しようとする
FAQ
Q: 状態区分が“1”のレコードを参照すると何が問題になりますか?
A: 取消済みの数値を基準にすると残高や平均単価が二重計上され、後続の残高試算表が誤ります。
A: 取消済みの数値を基準にすると残高や平均単価が二重計上され、後続の残高試算表が誤ります。
Q: 枝番は参照条件に含める必要がありますか?
A: 枝番は同一取引番号内での派生を示すため大小比較の対象外です。大小判定は取引番号で行います。
A: 枝番は同一取引番号内での派生を示すため大小比較の対象外です。大小判定は取引番号で行います。
Q: 取消発生後の再計算はいつ行われますか?
A: 取消・再入力で新しい取引ログが作成されるたびに売買明細作成処理が起動し、直近の未取消レコードを基に再計算されます。
A: 取消・再入力で新しい取引ログが作成されるたびに売買明細作成処理が起動し、直近の未取消レコードを基に再計算されます。
関連キーワード: 取引ログ、残高計算、移動平均、取消処理、勘定集計
設問2:締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
(1)表中の(a)、(b)に入れる適切な字句を、それぞれ35字以内で述べよ。
模範解答
a:当日の取消しの取引ログに対応するレコードの状態区分
b:当日のレコード件数から当日の取消レコード件数を引いた件数
解説
解答の論理構成
- 取消後の売買明細の構造を把握
- 【問題文】「売買明細テーブルには取消対象の売買明細の状態区分に取消表示が設定され、同一取引番号で枝番付きの正しい売買明細が作成され」と記載。
- 表の項番2を読む
- 対象テーブル:売買明細
- チェック内容:「取消表示になっていること」
- したがって (a) は「状態区分」に関する情報であり、取消ログに対応するレコードを示す必要がある。
- 売買明細件数の増減を整理
- 取消1件につき売買明細は+2件(取消済と正しい取引)。
- 照合ファイルは実際に成立した売買取引件数を送ってくる。
- そこで「当日のレコード件数」から「当日の取消レコード件数」を引けば、+1件のズレが解消され照合ファイルと一致する。
- 表の項番3(売買明細)で求められる式
- 【問題文:表】「照合ファイルの売買取引の取引件数と同じになること」とある。
- よって (b) は「当日のレコード件数から当日の取消レコード件数を引いた件数」となる。
誤りやすいポイント
- 取引ログと売買明細で「差し引く取消レコード件数」が2倍と1倍で異なることを混同する。
- (a) を「取消表示フラグ」などと簡略に書き、表の「当日の取消しの取引ログに対応する」が抜け落ちる。
- 取消件数を“追加された正しい取引の件数”と取り違え、(b) の計算式を間違える。
FAQ
Q: なぜ取引ログは2倍差し引くのに売買明細は1倍だけなのですか?
A: 取引ログは「取消ログ」と「正しい取引ログ」の2レコードが追加されるため件数が+2になります。一方、売買明細は取消表示レコードを含めて+2ですが、照合ファイルは取消分をカウントしないため1件だけ差し引けば一致します。
A: 取引ログは「取消ログ」と「正しい取引ログ」の2レコードが追加されるため件数が+2になります。一方、売買明細は取消表示レコードを含めて+2ですが、照合ファイルは取消分をカウントしないため1件だけ差し引けば一致します。
Q: 状態区分とは具体的にどんな値が入りますか?
A: 【問題文】で「取消対象の売買明細の状態区分に取消表示が設定され」とあるように、通常取引は“0”、取消は“1”など、取引の状態を示すコードが格納されます。
A: 【問題文】で「取消対象の売買明細の状態区分に取消表示が設定され」とあるように、通常取引は“0”、取消は“1”など、取引の状態を示すコードが格納されます。
Q: 取消が当日に確定しなかった場合の扱いは?
A: 表のチェックは「あくまで当日作成レコード」が対象です。翌日以降に取消が確定した取引はその日の締め処理で再度チェック・照合されます。
A: 表のチェックは「あくまで当日作成レコード」が対象です。翌日以降に取消が確定した取引はその日の締め処理で再度チェック・照合されます。
関連キーワード: 取消処理、状態区分、レコード件数、照合ファイル、売買明細
設問2:締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
(2)表中の照合以外にも、銘柄コードごとに、当日作成又は更新された最終の売買明細レコードのある属性の値(x)を、前日以前に作成又は更新された最終の売買明細レコードの同じ属性の値(y)と照合ファイルを用いて照合が可能である。その属性は何か、図2中の属性名を用いて答えるとともに、照合の条件を示す等式を,x,y及び照合ファイルの属性を用いて答えよ。
模範解答
属性:数量残高
等式:x=y+買入数量合計-売却数量合計
解説
解答の論理構成
- 照合対象となる属性の候補抽出
- 売買明細が持つ集計系属性は「数量残高」「残高」「平均単価」など。
- 【問題文】「数量残高及び残高は、同じ銘柄コードの前回取引時点の値に今回の取引分を加減算して求める」と明記されている。
- 照合ファイルの提供情報確認
- 【問題文】「銘柄コードごとの買入数量合計および売却数量合計」を受け取る。
- 数量ベースの情報であり、金額情報は含まれない。
- 数式導出
- 前日以前の最終値を 、当日処理後の最終値を と定義。
- 当日の純増減は「買入数量合計 − 売却数量合計」。
- よって 。
- 他属性との比較
- 「残高」は単価変動を含むため買入額・売却額で式が複雑。
- 「平均単価」は分母が変動し、取消にも影響を受けやすい。
- したがって最もシンプルに照合できるのは「数量残高」となる。
誤りやすいポイント
- 残高(百万円)を選んでしまう
→ 単価変動と取消による再計算が絡むため、照合ファイルの数量情報だけでは整合性を確認できません。 - 取消分を式に二重計上する
→ 取消レコード+正しい取引レコードで数量ネットゼロになるため、買入/売却合計は正味値で算出されます。 - 平均単価再計算をイメージして複雑な式を立てる
→ 問われているのは数量ベースのチェックであり、金額・単価の再計算は不要です。
FAQ
Q: 取消取引があった場合でもこの式で合いますか?
A: 合います。取消レコードは売買明細の状態区分が取消表示になり、正しい取引が同一取引番号で枝番付きレコードとして作成されます。買入・売却合計は正味値で算出されるため、式は維持されます。
A: 合います。取消レコードは売買明細の状態区分が取消表示になり、正しい取引が同一取引番号で枝番付きレコードとして作成されます。買入・売却合計は正味値で算出されるため、式は維持されます。
Q: 「残高」や「平均単価」を使った照合は不可能ですか?
A: 不可能ではありませんが、照合ファイルに金額情報が無く、取消や単価変動の影響を排除するのが難しいため、実務的には数量残高が最適です。
A: 不可能ではありませんが、照合ファイルに金額情報が無く、取消や単価変動の影響を排除するのが難しいため、実務的には数量残高が最適です。
Q: 照合はいつ実行されますか?
A: 【問題文】「締め処理におけるチェック機能および照合機能」で、窓口担当者が当日の業務終了を行った後に実行されます。
A: 【問題文】「締め処理におけるチェック機能および照合機能」で、窓口担当者が当日の業務終了を行った後に実行されます。
関連キーワード: クロスチェック、残高管理、移動平均法、トランザクションログ、勘定照合
設問2:締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
(3)“チェック又は照合で不整合が発生した場合、取引の内容を分析して対処する。”とあるが、照合ファイルによる照合機能では、取引の内容を分析するには不十分であるという指摘を受けた。不十分である理由を35字以内で述べよ。
模範解答
照合データの値が合計値なので、売買明細の個別の照合ができないから
解説
解答の論理構成
- 照合ファイルの内容確認
引用:【問題文】「当日分の売買が成立した売買取引件数、取消件数、銘柄コードごとの買入数量合計および売却数量合計」。
→ 件数・数量は総計のみ。 - 実施している照合処理
引用:表「当日のレコード件数から当日の取消レコード件数の2倍を引いた件数」「銘柄コードごとの…数量合計」。
→ 明細単位ではなく“件数一致”“数量一致”をチェック。 - 不足している視点
合計が一致しても、個別取引の金額・単価・受渡日などが誤っている可能性を見抜けません。 - したがって
個々の売買明細が照合対象に含まれていないことが「取引の内容を分析するには不十分」の理由となります。
誤りやすいポイント
- 「取消件数の2倍を引いた件数」があるので十分と誤解しやすい。これは件数補正に過ぎず内容チェックではない。
- 承認チェック(項番1)と照合ファイルチェック(項番3)を混同し、承認区分が確定承認なら問題なしと考えてしまう。
- “銘柄コードごとの数量合計”があるから取引内容まで分かると早合点する。数量が合っても単価ミスは検出できない。
FAQ
Q: 合計値で一致していれば業務上問題はないのでは?
A: 単価や受渡日などが誤っていても数量・件数は合う場合があります。決済金額や損益計算が誤るため個別明細の照合が不可欠です。
A: 単価や受渡日などが誤っていても数量・件数は合う場合があります。決済金額や損益計算が誤るため個別明細の照合が不可欠です。
Q: 承認チェックで確定承認になっているなら安全では?
A: 承認は入力プロセスが完了したことを示すだけで、内容の正確性までは保証しません。承認済みでも入力ミスが残ることがあります。
A: 承認は入力プロセスが完了したことを示すだけで、内容の正確性までは保証しません。承認済みでも入力ミスが残ることがあります。
Q: 個別照合を追加すると処理負荷が増えませんか?
A: 取引件数は限られるうえ、誤決済のリスクや後処理コストを考えると個別照合による品質向上の方がメリットは大きいです。
A: 取引件数は限られるうえ、誤決済のリスクや後処理コストを考えると個別照合による品質向上の方がメリットは大きいです。
関連キーワード: データ照合、サマリチェック、明細一致、入力ミス検出、内部統制
設問3:
残高試算表作成処理を短時間に行うために、当該処理の一部の機能を売買明細作成処理に移植することにした。移植すべき機能を20字以内で述べよ。また、移植する際、残高試算表作成処理では処理の対象としなかった取消データに関する追加機能が必要である。どのような機能が必要か。35字以内で述べよ。
模範解答
移植すべき機能:仕訳伝票レコードを作成する機能
取消データに関する追加機能:同じ取引番号によって作成されている仕訳伝票レコードを削除する機能
解説
解答の論理構成
- 移植対象機能の特定
- 【問題文】(4)①「取消し以外の売買明細を読み込み、仕訳伝票テーブルに仕訳伝票レコードを作成する。」
- 作成処理が残高試算表作成処理の最初に位置し、件数=売買明細件数×複数勘定科目で肥大化します。先に作れば後続処理は単なる集計となり高速化できます。
- 取消データへの配慮
- 【問題文】(2)②「同一取引番号で枝番付きの正しい売買明細が作成され…残高、平均単価、損益などの変更が行われる。」
- 取消後に枝番付きで再入力されるため、旧取引番号に紐付く伝票を残すと二重計上になります。
- 残高試算表作成処理は【小問説明】にあるとおり取消を対象外でしたが、移植後は取消直後に動作するため、重複排除=「同じ取引番号によって作成されている仕訳伝票レコードを削除する機能」が不可欠となります。
- なぜ「削除」なのか
- 取消取引自体にも新規伝票が発生しない(取消後の正しい取引番号枝番は別扱い)ため、差分調整ではなく“取引番号単位での全削除”が最もシンプルかつ整合的です。
誤りやすいポイント
- 「集計して残高を求める機能」を移植すると思い込み、伝票作成負荷を見落とす。
- 取消時に「修正仕訳を追加する」と考え、元伝票削除を忘れる。
- 「枝番付き取引番号」の扱いと「取消表示の売買明細」とを混同し、削除対象の範囲を誤る。
FAQ
Q: 仕訳伝票作成機能を移植しても残高試算表作成処理は何をするのですか?
A: 伝票は既に出来ているため、(4)②の「仕訳伝票レコードを集計して…残高試算表を作成する」だけを実行します。集計処理はデータ件数が減るため短時間で済みます。
A: 伝票は既に出来ているため、(4)②の「仕訳伝票レコードを集計して…残高試算表を作成する」だけを実行します。集計処理はデータ件数が減るため短時間で済みます。
Q: 削除ではなく「取消仕訳」を入れる方法では駄目でしょうか?
A: 取消仕訳を入れると「同一取引番号+枝番付きの再取引」の伝票と二重で存在し、件数と金額が増えるリスクがあります。最初の伝票を削除する方が整合性チェックが簡単です。
A: 取消仕訳を入れると「同一取引番号+枝番付きの再取引」の伝票と二重で存在し、件数と金額が増えるリスクがあります。最初の伝票を削除する方が整合性チェックが簡単です。
Q: 枝番付きの正しい取引の仕訳伝票はどう作成されますか?
A: 取消後に作成される新しい売買明細に連動して、移植された伝票作成機能が通常どおり枝番付き取引番号で新規伝票を生成します。
A: 取消後に作成される新しい売買明細に連動して、移植された伝票作成機能が通常どおり枝番付き取引番号で新規伝票を生成します。
関連キーワード: 仕訳伝票、取消処理、データ移行、一意取引番号、バッチ高速化
