ホーム > システムアーキテクト試験 > 2010年
システムアーキテクト試験 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” のレコード
解説
模範解答の核心となるキーワードや論点
- 同一銘柄コード
- 取引番号が一番大きい(最新の取引番号)
- 状態区分が「0」(取消されていない有効なレコード)
- 売買明細の作成にあたり、前回取引時点の残高や平均単価などの計算に参照するデータである点
解答がなぜそうなるのかの論理的説明
問題文の「〔債券事務システムの機能概要設計〕」(1)-④には、次の記述があります。
「数量残高及び残高は、同じ銘柄コードの前回取引時点の値に今回の取引分を加減算して求める。」
つまり、売買明細レコードを作成する際には、同じ銘柄コードにおける最新の(=取引番号が最も大きい)有効な(取消されていない)売買明細レコードを参照し、その値を基に数量残高や残高を計算して平均単価や損益を求めます。
また、(2)の取消機能説明にも、
「売買明細テーブルには取消対象の売買明細の状態区分に取消表示が設定され、同一取引番号で枝番付きの正しい売買明細が作成され、以降の同一銘柄コードの売買明細に対して残高、平均単価、損益などの変更が行われる。」
ここでの「状態区分が“0”」は取消されていない有効なレコードを指し、逆に取消済みレコードは状態区分が“1”となっています。
以上より、
売買明細作成時には銘柄ごとの「直近(取引番号最大)の取消されていない(状態区分0)」の売買明細レコードを基準(参照)とする必要があります。
売買明細作成時には銘柄ごとの「直近(取引番号最大)の取消されていない(状態区分0)」の売買明細レコードを基準(参照)とする必要があります。
受験者が誤りやすいポイント・ひっかけの理由
-
状態区分の意味を混同する点
状態区分「0」を「取り消し済み」と誤解することがありますが、問題文では状態区分「0」が「有効」、状態区分「1」が「取消表示」であることを正確に理解しましょう。 -
取引番号の解釈ミス
最新のデータを参照するため「取引番号が一番大きい」ことが重要ですが、取引番号ではなく枝番や約定日を見てしまい、誤ったレコードを参照対象にすることがあるため注意が必要です。 -
同一取引番号のレコードを参照する誤り
取消されると同じ取引番号で枝番が付けられた新レコードが追加されるため、同一取引番号の最新かつ有効な枝番付きのレコードだけを使い、その前の取消レコードは参照しません。
試験対策として覚えておくべきポイント・知識
-
売買明細作成は「銘柄コード単位」で管理するが、参照は「同一銘柄コードにおける最新の有効レコード」で行うことを理解する。
-
状態区分の意味を正確に把握すること
状態区分「0」=有効、「1」=取消(取消表示)。 -
取引番号は昇順で割り当てられる唯一の識別子であるため、最新データ判定に利用する。
-
「平均単価」や「残高」の計算は、前回の有効な売買明細レコードを基準に行い、過去の取消レコードは計算に含めないこと。
以上の点により、売買明細作成処理が整合性を保ち、正しい数量残高や損益を算出できるようになることが理解できます。情報処理技術者試験では業務システムの設計思想とデータ整合性の維持方法が問われるため、このような基本的な概念をしっかり押さえましょう。
設問2(1):締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
表中の(a),(b)に入れる適切な字句を,それぞれ35字以内で述べよ。
模範解答
a:当日の取消しの取引ログに対応するレコードの状態区分
b:当日のレコード件数から当日の取消レコード件数を引いた件数
解説
模範解答の核心キーワード・論点整理
-
(a):「当日の取消しの取引ログに対応するレコードの状態区分」
→これは取消取引に紐づく売買明細の状態区分が「取消表示」されていることを確認する項目である。 -
(b):「当日のレコード件数から当日の取消レコード件数を引いた件数」
→取引ログの当日実績から取消分を除外した正味の取引件数を意味し、売買明細数と照合するための集計条件。
模範解答となる理由の説明
(a)に関して
問題文の表「締め処理におけるチェック機能及び照合機能の内容」項番2では、以下の2つのチェックがあります。
(問題文抜粋)
「取消対象の売買明細の状態区分に取消表示が設定され」
つまり、取消し取引に該当する売買明細は「状態区分」に「取消表示」という目印を付ける必要がある。
したがって、(a)部分は「当日の取消しの取引ログに対応するレコードの状態区分」が該当し、状態区分の値が「取消表示」になっていることをチェック対象としている。
(b)に関して
同じく表の項番3「債券フロントシステムからの照合ファイルによる照合」で、以下の記述があります。
ここで、取引ログは取消操作の履歴を取消分と差し引きしつつ保持しているため、取消レコードは2倍カウントされている。
一方、売買明細は取消分が反映されて正しい売買の件数のみが記録されている。
よって、売買明細の件数は、「当日のレコード件数から当日の取消レコード件数を引いた件数」と一致しなければならないとする論理です。
一方、売買明細は取消分が反映されて正しい売買の件数のみが記録されている。
よって、売買明細の件数は、「当日のレコード件数から当日の取消レコード件数を引いた件数」と一致しなければならないとする論理です。
したがって、(b)には、「当日のレコード件数から当日の取消レコード件数を引いた件数」と入れるのが適切です。
受験者が誤りやすいポイント・ひっかけ解説
-
取消に関する状態区分の扱い
取消取引は「取消表示」という状態区分で区別されると理解する必要があります。
ここで「状態区分」と「取引区分(買入・売却)」を混同して「取引区分が取消」という選択肢を選んでしまう例があります。
取引区分は「買入」「売却」など取引の種類を示し、取消の状態を示すのは「状態区分」です。 -
取消レコードのカウント調整
取引ログが取消しに伴い2件(取消レコード+正しい取引レコード)を作成するため、取消レコードが2倍の影響を持つことを正しく認識しないと計算が間違えやすいです。
「取消レコードの2倍を引く」「取消レコードを引く」などの計算誤りに注意してください。 -
照合対象の件数を混在させる誤り
「売買明細」も取消分が反映されているため、必ず取消操作の差し引き後の件数として考え、単純に取引ログの全レコード件数を適用しないようにしましょう。
試験対策として覚えておくべきポイント
-
取消しの処理の仕組みを正確に理解すること
取消しは取消レコードによる履歴管理と、正しい取引の再入力で成り立っていることを押さえる。 -
状態区分と取引区分の区別
状態区分はレコードの状態(有効・取消など)を示し、取引区分は取引内容の種別を示すこと。 -
照合や締め処理での集計方法
取消レコードが2倍カウントされるので、それを考慮して正しい照合件数を算出するロジックを理解。 -
売買明細の更新ロジック
取消表示の設定と新規売買明細作成が適切に行われているか、システムでチェックされること。
まとめ
このように、取消取引に関する状態区分の扱いと、取消レコードが2倍カウントされる点を理解し、適切にチェック・照合を行う設計意図を把握することが合格の鍵となります。
設問2(2):締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
表中の照合以外にも、銘柄コードごとに,当日作成又は更新された最終の売買明細レコードのある属性の値(x)を,前日以前に作成又は更新された最終の売買明細レコードの同じ属性の値(y)と照合ファイルを用いて照合が可能である。その属性は何か、図2中の属性名を用いて答えるとともに,照合の条件を示す等式を,x,y及び照合ファイルの属性を用いて答えよ。
模範解答
属性:数量残高
等式:x=y+買入数量合計-売却数量合計
解説
1. 模範解答の核心となるキーワードや論点の整理
-
属性名:数量残高(図2より)
図2で売買明細テーブルの属性の一つとして示されている「数量残高」は、債券の額面残高を表しており、買入と売却の取引により変動する重要な指標です。 -
xとyの定義
- x:当日に作成または更新された最終の売買明細レコードの数量残高の値
- y:前日以前に作成または更新された最終の売買明細レコードの数量残高の値
-
照合ファイルの属性
- 買入数量合計
- 売却数量合計
-
等式(照合条件)
[ x = y + \text{買入数量合計} - \text{売却数量合計} ]
この等式を用いて、データの整合性を銘柄コードごとに検証できる点が論点です。
2. なぜその解答になるのかの論理的説明
「数量残高」の意味と管理方法
問題文の【図2】の記載によると、
- 「数量残高」とは「額面残高」を示し「同じ銘柄コードの前回取引時点の数量残高に今回の取引の数量を加減算する」ことで更新される。
具体的には、
と定義されています。
照合の仕組み
【問題文の表】から、締め処理で「銘柄コードごとの数量合計」を照合ファイルより受け取り、債券事務システムの売買明細の数量残高と比較します。
- 照合は「当日の最終の数量残高(x)」と「前日以前の最終数量残高(y)」を基点に行い、
- 当日「買入数量合計」と「売却数量合計」の差分で増減を確認します。
よって、
[
x = y + \text{買入数量合計} - \text{売却数量合計}
]
が成り立ちます。この式は、在庫や残高管理、取引更新の原理であり、照合対象として最も適切です。
3. 受験者が誤りやすいポイントやひっかけの理由
"属性"の選択ミス
- 問題文内では「残高」「平均単価」「損益」など複数の属性が登場しますが、照合で使うのは「数量残高」です。
- 「残高」ではなく、「数量残高」を選ぶ点に注意が必要です。
数量残高の更新計算の誤解
- 買入・売却の違いによる加減算のルールを理解していないと間違えます。
- 市場価格変動による単価変動(平均単価の変動)と混同しやすいですが、照合は「数量残高」の数量レベルで行う点が重要です。
計算式の符号ミス
- 買入は加算、売却は減算であるため、この順序や符号を逆にしないように注意してください。
4. 試験対策として覚えておくべきポイント
以上を踏まえ、問題文の記述と計算式を正しく読み取り、「数量残高」を軸にした照合が債券システムの締め処理における重要なチェックポイントであることを理解して合格に繋げましょう。
設問2(3):締め処理におけるチェック機能及び照合機能について(1)~(3)に答えよ。
“チェック又は照合で不整合が発生した場合、取引の内容を分析して対処する。”とあるが,照合ファイルによる照合機能では、取引の内容を分析するには不十分であるという指摘を受けた。不十分である理由を35字以内で述べよ。
模範解答
照合データの値が合計値なので,売買明細の個別の照合ができないから
解説
模範解答の核心となるキーワードや論点
- 照合ファイルの値が合計値であること
- 合計値のみでは個別取引の詳細な照合ができないこと
- 売買明細の個別データとの突合が不可
- 取引内容の詳細分析には情報が不足していること
なぜその解答になるのか(論理的説明)
問題文の(3)項には、以下の記述があります。
債券フロントシステムから当日分の売買が成立した売買取引件数、取消件数、銘柄コードごとの買入数量合計および売却数量合計を属性とする照合ファイルを受け取る。その後、取引ログおよび売買明細の内容と照合ファイルの属性の値とを照合する。
さらに、表「締め処理におけるチェック機能及び照合機能の内容」の項番3を見ると、
これらの主なチェックは「件数」や「数量合計」といった 合計値(集計値) を比較しています。
照合ファイルの情報は次の通り(抜粋):
- 当日の売買取引件数(件数)
- 取消件数(件数)
- 銘柄コードごとの買入数量合計、売却数量合計(数量の合計)
つまり照合は、「数量や件数など集計したデータが合っているか」を確認しています。しかし、個々の 売買明細1件1件の詳細なデータと突合をしているわけではありません。
したがって、
- 照合ファイルは「合計値を集計したレベルの情報」しか持っていないので、
- どこかの明細レコードが誤っているか、どの取引が間違いなのかを特定できず、
- 取引の詳細な内容(個別の単価、数量、取引区分など)の検証や分析には不十分です。
受験者が誤りやすいポイントやひっかけの選択肢
試験対策として覚えておくべきポイントや知識
-
【集計値と明細の違い】
照合ファイルのような集計値だけのデータは、全体の整合性チェックには有効だが、個々の取引内容の精査・原因究明には不十分。 -
【照合・チェックの多層構造】
業務システムでは、「承認チェック」「取消チェック」「数量・件数の照合」など多段階の検証がある。照合ファイルはその一部(集計値中心)であることを理解する。 -
【取消し処理の複雑さ】
取消し取引は「取消表示」の記録と正しい再取引の二重管理となる。これにより残高や損益が再計算されるため、照合も慎重に行われる。 -
【取引番号の一意性管理と枝番の活用】
取消・再入力時に枝番で管理されることに注意し、照合時にはこれらの関係性も確認が必要。
以上の観点を押さえ、問題文を正確に読み取ることが合否を分けます。
まとめ
この点を踏まえ、照合機能と個別内容分析の違いを正しく理解しましょう。
設問3
残高試算表作成処理を短時間に行うために,当該処理の一部の機能を売買明細作成処理に移植することにした。移植すべき機能を20字以内で述べよ。また,移植する際,残高試算表作成処理では処理の対象としなかった取消データに関する追加機能が必要である。どのような機能が必要か。35字以内で述べよ。
模範解答
移植すべき機能:仕訳伝票レコードを作成する機能
取消データに関する追加機能:同じ取引番号によって作成されている仕訳伝票レコードを削除する機能
解説
1. 模範解答の核心キーワードや論点整理
この問題の核心は、「売買明細作成処理に残高試算表作成処理の一部(仕訳伝票作成機能)を移植する」ことの意味と、それに伴う取消データの扱いの追加機能について正しく理解する点にあります。
2. 解答になる理由の論理的説明
移植すべき機能について
問題文の【(4)残高試算表作成処理の機能】の説明を見ると、
①取消し以外の売買明細を読み込み、仕訳伝票テーブルに仕訳伝票レコードを作成する。
②当日勘定の仕訳伝票レコードを集計して、当日の残高試算表を作成する。
このことから、「残高試算表作成処理」は主に「売買明細から仕訳伝票を作成し、その仕訳を集計する処理」で成り立っています。
一方、売買明細作成処理は、取引ログを基に売買明細や資金決済明細を作成しています。ここに「仕訳伝票レコード作成機能」を移植すれば、残高試算表作成処理での仕訳伝票作成が不要になり、処理時間を短縮できます。
したがって、移植すべきは「仕訳伝票レコードを作成する機能」となります。
取消データに関する追加機能について
問題文の【(2)売買取引の取消機能】では、
②事務担当者の受入承認によって、取引ログテーブルには取消し取引と正しい取引ログが新たに作成される。
売買明細テーブルでは取消対象の売買明細に取消表示が付与され、正しい売買明細が枝番付きで作成される。
同様に仕訳伝票も売買明細に基づいて作成されます。取消が発生すると、取消された取引の仕訳伝票は不要となり、正しい取引に対応する仕訳伝票を作り直す必要があります。
したがって、取消処理が入ると「同じ取引番号の仕訳伝票を削除する」などの追加機能が必要です。これは、取消取引による仕訳伝票と入れ替えるための前処理として欠かせません。
3. 受験者が誤りやすいポイントとひっかけ例
-
「仕訳伝票作成機能」ではなく「残高試算表作成」や「売買明細作成」全体を移すと思う誤り:
問題は「残高試算表作成処理の一部機能」であり、すべて移すとは限りません。仕訳伝票作成がポイント。 -
取消に対して「取消データの履歴を保存する」などの別の解答:
今回の移植における取消対応は「削除によって仕訳伝票の重複避けること」が問われているので履歴保存は本質ではない。 -
取消処理の対象データを誤解する:
取消対象は「同じ取引番号の仕訳伝票」であり、「銘柄コードごと」などは対象外。 -
仕訳伝票作成処理を移す意味を理解せずに答える:
仕訳伝票は残高試算表作成の前提データなので、そこを移さなければ意味が薄い。
4. 試験対策として覚えておくべきポイント
-
処理の分割・統合の理解:
システムの性能改善のため、処理をどこに移すのかを検討する際は「処理単位」や「関連データの整合性」に注目する。 -
取消処理に伴う関連データ削除の必要性:
データ修正や訂正時は古いデータの無効化や削除機能が必須。単に新規登録するだけでは帳簿や集計が整わない。 -
仕訳伝票は残高試算表の基礎データ:
会計処理で仕訳伝票が先に作成され、試算表は仕訳伝票を集計して作成されるという業務フローを理解。 -
問題文中のキーワードを正確に読み取ること:
今回は「仕訳伝票レコード作成機能」と「同じ取引番号による仕訳伝票の削除」が直接的なひっかけポイント。
以上を踏まえて、問題文の記述を注意深く読み、処理の流れと取り扱うデータの性質を整理することが重要です。これにより、正確かつ効率的なシステム設計問題の回答が可能になります。