システムアーキテクト 2015年 午後1 問03
業務委託管理システムの導入に関する次の記述を読んで、設問1~3に答えよ。
D社は中堅のソフトウェアベンダであり、ソフトウェア開発業務の一部を、協力会社に委託している。D社では、社内で管理システムを使用して、見積り、発注及び検収を行っている。現在、協力会社への業務委託で直面している問題を解決するために、管理システムを拡充し、協力会社と情報を共有するために双方で利用する業務委託管理システム(以下、新システムという)を構築することにした。
〔現在の業務委託管理に関する業務の概要〕
D社では、業務委託に関する社内規程に基づき、まず、継続的に取引可能と判断した協力会社(以下、委託先という)と基本契約を締結する。次に、業務委託を行う個別案件ごとに個別契約を締結する。個別契約は、D社が注文書を発行し、委託先から注文請書を受領することによって成立することが、基本契約書に記載されている。
また、個別案件ごとに、案件に責任をもつ部署の部長(以下、管理責任者という)と、案件の委託に責任をもつ社員(以下、委託責任者という)が定められる。
D社では、業務委託管理に関する業務を次のように実施している。
(1) 見積依頼:委託責任者は、案件番号、案件名、委託期間、委託内容、納品物、納品場所、納期、発注部署、委託責任者名及び管理責任者名を管理システムに登録し、見積依頼書を出力して委託先に提示する。委託先は、見積依頼書の内容を確認し、見積書を作成して提出する。
(2) 見積受領:委託責任者は、委託先から受領した見積書の内容を確認し、見積内容及び確認結果を管理システムに登録する。見積内容を承認しない場合は差し戻し、再度見積書の提出を求める。見積書を差し戻した場合でも見積内容及び確認結果の履歴は残す。
なお、見積依頼及び見積受領の過程で、案件が中止になることもある。
(3) 注文:委託責任者は、見積内容を承認すると、見積書に基づいて注文書を作成する。注文書には、見積依頼書及び見積書に記載された内容に、委託金額、検収予定日及び支払予定日が追記され、この内容は管理システムに登録される。その後、管理責任者が、見積り及び注文の内容を審査し、承認又は否認を行う。否認した場合は、委託責任者に見積内容を再度確認させる。承認した場合は、注文書を発行し、委託先に注文する。委託先は注文書の内容を確認し、注文請書を発行して開発に着手する。委託責任者は、注文請書を受け取ると、委託先が開発に着手したとして、納品を待つ。
(4) 納品受領:委託先は、開発作業が完了すると納品する。委託責任者は、納品物を受領し、確認を行う。注文書に記載された納品物と一致していれば、承認して納品年月日を管理システムに登録し、一致していなければ差し戻す。納品物を差し戻した場合でも納品の履歴は残す。納品物の内容、品質などの確認は、次工程の検査以降で行う。
なお、D社では個別契約は納期ごとに締結し、納期が異なる場合は別の個別契約を締結する。
(5) 検査、検収、請求及び支払についての記述は省略する。
(6) 各書類には、作成者が日付を記入し、署名する。承認が必要な書類には、承認者も日付を記入し、署名する。
〔新システムの業務要件〕
D社では、業務委託管理に関する業務を改善するために、情報システム部のE課長に、現在の業務の課題を整理した上で、新システムの業務要件をまとめるように指示した。
そこで、E課長は関係部署にヒアリングを行い、その結果を基に、新システムで新たに実現すべき業務要件を次のようにまとめた。
(1) 委託先とは郵送で書類をやり取りしており、最速でも1日掛かる。そのため、書類の再提出などがあると、案件の開始が遅れることがあるので、書類のやり取りに掛かる時間を短縮する。
(2) 見積書から注文書への転記作業、注文書から注文請書への転記作業でミスが発生しているので、転記作業を削減する。
(3) 案件の開始から完了までの経緯について追跡調査を行いたい場合、全ての書類の日付及び署名を確認しなければならないので、新システムで追跡できるようにする。
(4) 新システムでは委託先と情報を共有することになるが、社内の手続の状況は委託先に開示されないようにする。
E課長は、これらの業務要件を満たすよう、新システムの設計に着手した。
〔新システムの設計〕
E課長は、新システムを、D社と委託先とをネットワークで接続したオンラインシステムとし、委託先に表示するトップ画面(以下、委託先トップ画面という)を最初に設計した。設計した委託先トップ画面のイメージを、図1に示す。 委託先トップ画面には、委託先が遅滞なく手続を進められるように、次の一覧を表示する領域を設けた。
E課長は、新システムを、D社と委託先とをネットワークで接続したオンラインシステムとし、委託先に表示するトップ画面(以下、委託先トップ画面という)を最初に設計した。設計した委託先トップ画面のイメージを、図1に示す。 委託先トップ画面には、委託先が遅滞なく手続を進められるように、次の一覧を表示する領域を設けた。
(1) 通知案件一覧:ある案件に対して、D社が処理を完了したことによって委託先が対応すべき作業が発生した場合、そのことを委託先に知らせるために、委託先に電子メール(以下、メールという)を送信し、当該案件を通知案件一覧に表示する。例えば、D社が見積依頼入力を完了すると、委託先にメールを送信し、同時に通知案件一覧の欄に当該案件を表示する。
(2) 未済案件一覧:委託先が作業を行うべき状態になっている案件で、通知案件一覧に表示されていない案件を、未済案件一覧に表示する。

新システムでは、案件の開始から完了までの作業の進捗状況をステータスで管理し、案件ごとにD社と委託先にそれぞれステータスを設ける(以下、それぞれをD社ステータス、委託先ステータスという)。それぞれの作業の進捗状況は別々に管理され、委託先トップ画面に表示するステータスは、委託先ステータスである。
D社ステータス及び委託先ステータスの遷移とそれぞれの遷移の契機となるイベントを、状態の遷移として図2に、新システムの主要ファイルの主な属性を表1に示す。ここで、図2では案件中止、納品差戻し及び検査以降の遷移は省略している。
また、図中の状態番号は、D社ステータスと委託先ステータスの組合せによる一意の状態に対して、1から昇順に付与した番号である。
設問1:委託先トップ画面の設計について、(1)~(4)に答えよ。
問題文を見る(1)新システムでは業務上のある目的から、委託先トップ画面では、ステータスについては委託先ステータスしか表示しないように設計している。その目的を30字以内で述べよ。
模範解答
社内の手続の状況が委託先に開示されないようにするため
解説
解答の論理構成
- 業務要件の確認
- 【問題文】「(4) 新システムでは委託先と情報を共有することになるが、社内の手続の状況は委託先に開示されないようにする。」
- 画面設計の仕様
- 【問題文】「委託先トップ画面に表示するステータスは、委託先ステータスである。」
- 整合性の検証
- 社内進捗を表す「D社ステータス」を非表示にし、委託先側の行動だけを示す「委託先ステータス」を表示することで要件(4)を充足。
- したがって目的は「社内の手続の状況が委託先に開示されないようにするため」となる。
誤りやすいポイント
- 「書類のやり取りを速くするため」と誤解し、要件(1)と混同する。
- 「転記ミスの削減」と答えて要件(2)に引きずられる。
- ステータスの二重管理の意味を読み落とし、D社ステータスも見せる前提で考えてしまう。
FAQ
Q: 「D社ステータス」を非表示にするだけで本当に情報漏えい防止になりますか?
A: ステータスには承認担当者や否認理由など内部情報が含まれるため、非表示にすることで少なくとも画面経由の漏えいは防げます。
A: ステータスには承認担当者や否認理由など内部情報が含まれるため、非表示にすることで少なくとも画面経由の漏えいは防げます。
Q: 両ステータスを同時に表示してアクセス権で制御する案はダメですか?
A: 管理負荷と誤表示リスクが増えるため、業務要件(4)では最初から物理的に見せない設計が選択されています。
A: 管理負荷と誤表示リスクが増えるため、業務要件(4)では最初から物理的に見せない設計が選択されています。
関連キーワード: ステータス管理、情報隠蔽、アクセス制御、権限制御
設問1:委託先トップ画面の設計について、(1)~(4)に答えよ。
問題文を見る(2)委託先トップ画面の通知案件一覧には、ある状態番号に該当する案件を表示する。図2中の状態番号のうち、該当する二つのうちの一つは、〔新システムの設計〕の(1)で例示している状態番号2の案件である。該当するもう一つの状態番号を答えよ。
模範解答
10
解説
解答の論理構成
- 通知案件一覧の定義を確認
引用:
“通知案件一覧:ある案件に対して、D社が処理を完了したことによって委託先が対応すべき作業が発生した場合、そのことを委託先に知らせるために…当該案件を通知案件一覧に表示する。” - 例示されている状態番号2を把握
見積依頼入力完了(D社完了)→委託先が見積確認を行うため通知案件一覧に表示。 - 同じ条件に当てはまる他の工程を探す
注文工程について引用:
“承認した場合は、注文書を発行し、委託先に注文する。委託先は注文書の内容を確認し、注文請書を発行…”
ここでも「D社の処理完了(注文書発行)」直後に「委託先が確認」を行う必要がある。 - 図2で該当する状態を特定
D社:注文請待ち
委託先:注文確認待ち状態
→ 状態番号 10。 - 以上より、通知案件一覧に表示されるもう一つの状態番号は 10 となる。
誤りやすいポイント
- 「委託先が作業中」の状態(例:見積入力中、委託開発中)を通知案件一覧と誤認する。
- 状態番号9(注文承認待ち)を選んでしまう。9はまだD社内部で承認処理中であり“処理完了”条件を満たさない。
- 図2の状態遷移を確認せず、文章説明だけで番号を推測する。
FAQ
Q: 通知案件一覧と未済案件一覧はどう使い分けるのですか?
A: 通知案件一覧は「D社側の作業完了により委託先へ新たなタスクが発生した直後」を示し、メール連携で即時通知されます。未済案件一覧は通知済み案件を委託先が確認後、なお作業が未完了のものを管理します。
A: 通知案件一覧は「D社側の作業完了により委託先へ新たなタスクが発生した直後」を示し、メール連携で即時通知されます。未済案件一覧は通知済み案件を委託先が確認後、なお作業が未完了のものを管理します。
Q: 状態番号10を素早く見つけるコツは?
A: 「D社処理完了→委託先タスク発生」というキーワードで図2をスキャンし、D社ステータスが完了系(承認済・請待ちなど)かつ委託先ステータスが“確認待ち”で始まる番号を探すと効率的です。
A: 「D社処理完了→委託先タスク発生」というキーワードで図2をスキャンし、D社ステータスが完了系(承認済・請待ちなど)かつ委託先ステータスが“確認待ち”で始まる番号を探すと効率的です。
関連キーワード: 状態遷移、ステータス管理、ワークフロー、承認プロセス、通知機能
設問1:委託先トップ画面の設計について、(1)~(4)に答えよ。
問題文を見る(3)委託先が対応すべき作業が発生した場合、通知案件一覧にも表示するように設計したのは、どのようなケースを想定したからか。その内容を40字以内で述べよ。
模範解答
委託先がメールを見落として、対応すべき作業の発生に気付かないケース
解説
解答の論理構成
- 問題文の事実確認
- 「D社が処理を完了したことによって委託先が対応すべき作業が発生した場合、そのことを委託先に知らせるために、委託先にメールを送信し、当該案件を通知案件一覧に表示する」
- 前提となる課題
- 業務要件(1)に「書類の再提出などがあると、案件の開始が遅れる」とある→早期着手が重要。
- 想定リスクの抽出
- 連絡手段が「メール」に依存すると、未読・見落としで対応が遅延する可能性。
- 解決策の導出
- 同じ案件を「通知案件一覧」にも掲示し、メール未読でも画面を開けば気付けるようにする。
- 以上から、模範解答
- 「委託先がメールを見落として、対応すべき作業の発生に気付かないケース」
誤りやすいポイント
- 「通知案件一覧」はメール通知の代替ではなく“補完”である点を読み落とす。
- リスクを「メールの未達」と誤解しがちだが、設問は「見落とし=未読」に焦点。
- 「案件開始が遅れる」原因を“郵送”や“承認フロー”と錯覚し、メール見落としとの因果を示せなくなる。
FAQ
Q: 「未済案件一覧」との違いは何ですか?
A: 「通知案件一覧」は“メール送信をトリガに表示”し、緊急性を伴う新規アクションを促す領域です。「未済案件一覧」は通知済み以外の作業待ち案件を包括的に示します。
A: 「通知案件一覧」は“メール送信をトリガに表示”し、緊急性を伴う新規アクションを促す領域です。「未済案件一覧」は通知済み以外の作業待ち案件を包括的に示します。
Q: メールが届かなかった場合も含むのですか?
A: 主目的は“見落とし防止”ですが、結果としてメール未達でも画面確認で気付けるため、届かなかった場合のバックアップにもなります。
A: 主目的は“見落とし防止”ですが、結果としてメール未達でも画面確認で気付けるため、届かなかった場合のバックアップにもなります。
Q: 画面を開かなかったら同じでは?
A: 委託先は日常作業で本システムを利用する前提のため、ログイン時に即表示される「通知案件一覧」とすることで確認率を高めています。
A: 委託先は日常作業で本システムを利用する前提のため、ログイン時に即表示される「通知案件一覧」とすることで確認率を高めています。
関連キーワード: ワークフロー、通知設計、ユーザビリティ、リスク管理、業務効率化
設問1:委託先トップ画面の設計について、(1)~(4)に答えよ。
問題文を見る(4)委託先トップ画面の未済案件一覧には、図2中のどの状態番号に該当する案件を表示すべきか。該当する六つの状態番号を全て答えよ。
模範解答
3、4、11、12、13、14
解説
解答の導き方
結論:3、4、11、12、13、14です。
手順立てて確認します。
-
未済案件一覧の定義を確認する。問題文には「未済案件一覧:委託先が作業を行うべき状態になっている案件で、通知案件一覧に表示されていない案件を、未済案件一覧に表示する。」とあります。したがって(A)委託先に作業が発生している状態で、かつ(B)通知案件一覧に載っていない状態、の両方を満たす状態番号を選びます。
-
図2で「委託先が作業を行うべき状態」を抽出する。委託先ステータスが、委託先の確認・入力・開発を待っている状態を選びます。
- 2:「見積待ち/見積依頼確認待ち」(委託先が見積依頼を確認する)
- 3:「見積待ち/見積入力待ち」
- 4:直前のイベントが【見積入力】で、委託先が見積を入力している状態(空欄 a・b の状態)
- 10:「注文請待ち/注文確認待ち」(委託先が注文を確認する)
- 11:「注文請待ち/注文請入力待ち」
- 12:「(空欄 e)/委託開発中」
- 13:「納品待ち/委託開発中」
- 14:「納品待ち/納品入力中」
状態15「納品物確認中/納品物確認待ち」は、D社が納品物を確認している状態で、委託先は確認結果を待っているだけです。委託先の作業は発生していないので、対象外です。同じく状態5〜9の「見積送信済」も、委託先は見積を送った後でD社の処理を待っているだけなので対象外です。
-
次に、(B)「通知案件一覧に表示されていない」ことを確認して除外する状態を決めます。通知案件一覧は「D社が処理を完了したことによって委託先が対応すべき作業が発生した場合、そのことを委託先に知らせるために、委託先に電子メールを送信し、当該案件を通知案件一覧に表示する。」という設計です。通知案件一覧に表示する状態は、設問1(2) のとおり二つで、状態2(【見積依頼入力完了】で委託先に見積依頼の確認が発生)と状態10(D社の注文承認で委託先に注文の確認が発生)です。
-
手順2の「委託先が作業を行うべき状態」(2、3、4、10、11、12、13、14)から、手順3の通知対象(2、10)を除くと、残る状態番号は3、4、11、12、13、14の六つです。よって未済案件一覧に表示すべき状態番号は3、4、11、12、13、14です。
誤りやすいポイント
- 通知と未済を混同する:通知案件一覧に表示されたものは未済案件一覧に表示しないという定義を見落とし、状態2や10を未済に含めてしまう誤りが多いです。
- 状態15を委託先の作業と誤認する:状態15はD社が納品物を確認中で、委託先は待っているだけです。
- 注文関連の契機を読み違える:通知を発生させるのは「注文入力完了」ではなく「注文承認」による遷移(状態9→状態10)である点を取り違えやすいです。
- 「見積送信済」を未済と誤認する:状態5〜9の「見積送信済」は委託先が見積を送付済みで、D社側の処理待ちの状態なので未済一覧の対象ではありません。
- 図中の (a)/(b)/(e) のような省略表記を見て意味を勝手に埋める:状態の意味は周辺のイベント(直前・直後の遷移)で判断するのが確実です。
FAQ
Q: 状態番号2が「見積依頼確認待ち」で委託先に作業があるように見えますが、なぜ未済に入らないのですか?
A: 問題文の定義どおり未済案件一覧には「通知案件一覧に表示されていない案件」を表示します。図1の例にあるように「D社が見積依頼入力を完了すると…委託先にメールを送信し…通知案件一覧に表示する」とあるため、状態2は通知案件一覧に入るため未済からは除外します。
A: 問題文の定義どおり未済案件一覧には「通知案件一覧に表示されていない案件」を表示します。図1の例にあるように「D社が見積依頼入力を完了すると…委託先にメールを送信し…通知案件一覧に表示する」とあるため、状態2は通知案件一覧に入るため未済からは除外します。
Q: 状態12と13はどちらも「委託開発中」ですが、両方とも未済に含めるのですか?
A: はい。どちらも委託先が作業を行っている状態であり、図2上の通知対象(状態2、10)には含まれないため、両方とも未済案件一覧に表示されます。
A: はい。どちらも委託先が作業を行っている状態であり、図2上の通知対象(状態2、10)には含まれないため、両方とも未済案件一覧に表示されます。
Q: 見積関連ではどの状態を未済に表示すべきですか?
A: 見積については「見積入力待ち(状態3)」や「見積入力の作業中に相当する状態(状態4)」が未済の対象です。見積をすでに送信した後の「見積送信済」相当(状態5以降)はD社側の確認待ちなので未済対象ではありません。
A: 見積については「見積入力待ち(状態3)」や「見積入力の作業中に相当する状態(状態4)」が未済の対象です。見積をすでに送信した後の「見積送信済」相当(状態5以降)はD社側の確認待ちなので未済対象ではありません。
関連キーワード: ステータス管理、ワークフロー、イベント駆動、画面設計、トレーサビリティ
(1)<span class=""choice-box"">a〜<span class=""choice-box"">eに入れる、適切なステータス又はイベント名を答えよ。
模範解答
a:見積待ち
b:見積入力中
c:注文承認
d:注文否認
e:注文請確認待ち
解説
解答の論理構成
-
状態4のD社ステータス (a)
- 直前の状態3はD社 “見積待ち”/委託先 “見積入力待ち”。
- イベント【見積入力】後も、D社側は提出を“待っている”だけで何も処理していない。
- よって (a) は「見積待ち」。
- 根拠:【問題文】「委託先は、見積書を作成して提出する。委託責任者は…確認し…」
-
状態4の 委託先ステータス (b)
- イベント【見積入力】を受けて入力作業に着手した状態。
- “入力待ち”から“入力中”へ移るので (b) は「見積入力中」。
-
状態9 → 状態10を引き起こすイベント (c)(d)
- 【問題文】「管理責任者が…承認又は否認を行う」
- 承認時に進むルートが (c)=「注文承認」、否認で戻るルートが (d)=「注文否認」。
-
状態12のD社ステータス (e)
- 委託先が“注文請書”を入力し終えた直後。
- D社は内容確認待ちになるので (e) は「注文請確認待ち」。
- 根拠:【問題文】「委託責任者は、注文請書を受け取ると…納品を待つ。」(確認プロセスが残っている)
誤りやすいポイント
- 「入力中」と「入力待ち」を混同し、(b) を誤って「見積入力待ち」とする。
- 承認/否認のイベント名を状態名で書いてしまう(例:「注文承認待ち」)。イベントとステータスは別概念。
- (e) を「納品待ち」と早合点し、D社がまだ注文請書を確認していない段階で次工程に飛ばしてしまう。
FAQ
Q: 承認・否認は“状態”ではなく“イベント”なのに、図2で (c)(d) に入るのはなぜ?
A: 図2では“→”上にイベント名を記載するルールです。(c)(d) は遷移を起こすイベントなので「注文承認」「注文否認」と書きます。
A: 図2では“→”上にイベント名を記載するルールです。(c)(d) は遷移を起こすイベントなので「注文承認」「注文否認」と書きます。
Q: D社ステータスと委託先ステータスが同時に変わらないのは普通?
A: はい。新システムは「双方の作業進捗を別々に管理する」要件を満たすため、【問題文】「案件ごとにD社と委託先にそれぞれステータスを設ける」とされています。
A: はい。新システムは「双方の作業進捗を別々に管理する」要件を満たすため、【問題文】「案件ごとにD社と委託先にそれぞれステータスを設ける」とされています。
Q: “注文請確認待ち”と似た言葉が定義されていないが勝手に付けても良い?
A: 図2に記載された正式名称を用いる必要があります。今回は状態12のD社ステータス欄に明示的に示されているため、その文字列をそのまま解答してください。
A: 図2に記載された正式名称を用いる必要があります。今回は状態12のD社ステータス欄に明示的に示されているため、その文字列をそのまま解答してください。
関連キーワード: ワークフロー、ステータス管理、承認プロセス、業務委託
(2)図2では、納品差戻しによるイベントとそれに伴う状態の遷移の矢印を省略している。矢印の始点と終点に当たる状態番号を答えよ。
模範解答
始点:15
終点:13
解説
解答の論理構成
- 図2の文言を確認
- 状態15:D社ステータス:納品物確認中 / 委託先ステータス:納品物確認待ち
- 状態13:D社ステータス:納品待ち / 委託先ステータス:委託開発中
- 問題文の指示
- 「図2では、納品差戻しによるイベントとそれに伴う状態の遷移の矢印を省略している。」
- 納品差戻しが起きるタイミング
- 納品物を受領した後、内容不一致なら「差し戻す」と【問題文】“(4) 納品受領”で記述。
- 差戻し後でも履歴を残し、委託先は再修正して再納品する流れになる。
- したがって
- 差戻しイベントの“発生源”は納品物を確認している状態15。
- “戻り先”は再度納品を待つ状態13。
- 以上より、始点15、終点13となる。
誤りやすいポイント
- 「一つ前」の14(納品入力中)へ戻ると誤解する
- 差戻しは入力中ではなく“再開発”へ戻すため13。
- “委託先ステータス”だけを見て判断する
- 両社ステータスが整合する状態同士で遷移を引く必要がある。
- 納品差戻し=案件中止と混同する
- 差戻しは再納品が前提。案件中止なら開始状態へは戻らない。
FAQ
Q: なぜ14ではなく13に戻るのですか?
A: 14は「納品入力中」でまだ入力画面で編集している段階です。差戻し時点では入力は完了しており、委託先は改めて開発に取り組む必要があるため“納品待ち”状態13に戻ります。
A: 14は「納品入力中」でまだ入力画面で編集している段階です。差戻し時点では入力は完了しており、委託先は改めて開発に取り組む必要があるため“納品待ち”状態13に戻ります。
Q: 差戻し後に再納品した場合、状態番号は再び14→15→…と進むのですか?
A: はい。履歴を残したまま同じルートを再度たどる設計です(表1「納品履歴番号」がその証拠)。
A: はい。履歴を残したまま同じルートを再度たどる設計です(表1「納品履歴番号」がその証拠)。
関連キーワード: 状態遷移図、ステータスマシン、イベント駆動、トレーサビリティ、ワークフロー
(1)<span class=""choice-box"">f、<span class=""choice-box"">gに入れる適切な属性名を答えよ。
模範解答
f:見積番号
g:注文番号
解説
解答の論理構成
-
注文ファイルと見積ファイルの関係を確認
- 【問題文】「委託責任者は、見積内容を承認すると、見積書に基づいて注文書を作成する。」
- したがって「注文」は必ず一つの「見積」に従属する。
- 注文ファイルの主キー「注文番号」の直後に外部キーを置くことで一意性を保ちつつ上流工程を参照する設計が一般的。
- よって (f)=「見積番号」。
-
納品ファイルと注文ファイルの関係を確認
- 【問題文】「委託先は注文書の内容を確認し、注文請書を発行して開発に着手する。」
- 【問題文】「委託先は、開発作業が完了すると納品する。」
- 納品は注文の履行結果であり、どの注文に対する納品かを識別する必要がある。
- 表1の納品ファイルでは主キー「納品番号」の直後に欠落があり、この位置は注文を示す外部キーと考えるのが自然。
- よって (g)=「注文番号」。
-
外部キーであることの整合性
- 状態遷移図でも「見積承認」後に「注文入力」へ、「注文請確認」後に「納品入力」へ進むため、参照整合性を保つ属性が必要。
- 「見積番号」「注文番号」を設定することで、データベース上でもフローと一致した階層構造となる。
誤りやすいポイント
- 注文ファイルの (f) を「案件番号」と誤認
- 案件番号は既に案件管理ファイルで管理されており、注文と見積の1対1対応を表せない。
- 納品ファイルの (g) を「案件番号」や「見積番号」と混同
- 納品は「注文」の結果であり、見積を直接参照しない点に注意。
- 主キー候補と外部キーの区別
- 主キーはファイルのレコードを一意に識別、外部キーは上流レコードとの関連付けを行うという役割の違いを意識すること。
FAQ
Q: 見積と注文が1対多の場合でも (f) は「見積番号」のままで良いですか?
A: はい。1件の見積に対して複数の注文が発行される場合でも、注文ファイルに「見積番号」を持たせることでリレーションを張れます。逆方向の多重度はテーブル構造で吸収できます。
A: はい。1件の見積に対して複数の注文が発行される場合でも、注文ファイルに「見積番号」を持たせることでリレーションを張れます。逆方向の多重度はテーブル構造で吸収できます。
Q: 案件管理ファイルに「案件番号」があるのに、注文や納品に案件番号を持たせなくても追跡できますか?
A: 注文→見積→案件、納品→注文→見積→案件と外部キーをたどれば案件番号に到達できます。冗長な属性を追加しない設計の方が整合性管理が容易です。
A: 注文→見積→案件、納品→注文→見積→案件と外部キーをたどれば案件番号に到達できます。冗長な属性を追加しない設計の方が整合性管理が容易です。
Q: 状態遷移図の番号とファイル設計の関係はありますか?
A: 状態番号は業務フローの進捗を示すもので、直接テーブルの主キーにはなりません。ただしファイルに保存する「D社ステータス」「委託先ステータス」は状態遷移と対応しており、レコード単位で進捗が把握できます。
A: 状態番号は業務フローの進捗を示すもので、直接テーブルの主キーにはなりません。ただしファイルに保存する「D社ステータス」「委託先ステータス」は状態遷移と対応しており、レコード単位で進捗が把握できます。
関連キーワード: 外部キー、リレーションシップ、データ整合性、状態遷移、業務フロー
(2)見積ファイルの属性に見積履歴番号を設定し、同一見積依頼番号に対する見積履歴を把握できるように設計している。これは、業務上発生するどのようなケースを想定したものか。その内容を25字以内で述べよ。
模範解答
見積りの差戻しによって再提出が発生するケース
解説
解答の論理構成
- 【問題文】引用
- 「見積受領…見積内容を承認しない場合は差し戻し、再度見積書の提出を求める。見積書を差し戻した場合でも見積内容及び確認結果の履歴は残す。」
- 差し戻されるたびに同一「見積依頼番号」で新たな見積書が発生する。
- そこで「見積」ファイルに「見積履歴番号」を追加し、同一「見積依頼番号」に対して複数レコードを保持できる設計としている。
- よって想定ケースは“差し戻しによる見積書の再提出”である。
- 解答例(25字以内)
- 「見積り差戻しによる再提出の場合」
誤りやすいポイント
- 複数社からの比較見積りと誤解し、発注先別管理と答えてしまう。
- 「見積依頼取消」に伴う履歴と勘違いしてしまう。
- 「見積番号」だけで一意管理できると考え、「見積履歴番号」の必要性を見落とす。
FAQ
Q: 「見積番号」と「見積履歴番号」の違いは?
A: 「見積番号」は見積書そのものを識別し主キーの一部になる。「見積履歴番号」は同一「見積依頼番号」内での版管理(何回目の提出か)を示す通番です。
A: 「見積番号」は見積書そのものを識別し主キーの一部になる。「見積履歴番号」は同一「見積依頼番号」内での版管理(何回目の提出か)を示す通番です。
Q: 差し戻し時にレコードを上書きしない理由は?
A: 問題文に「履歴は残す」とあるように、承認プロセスのトレーサビリティ確保が求められるからです。
A: 問題文に「履歴は残す」とあるように、承認プロセスのトレーサビリティ確保が求められるからです。
Q: 履歴管理はどこで参照される?
A: 状態遷移図の「○A」戻りが示すように、差し戻し→再提出の回数や日付を追跡調査するときに参照します。
A: 状態遷移図の「○A」戻りが示すように、差し戻し→再提出の回数や日付を追跡調査するときに参照します。
関連キーワード: トレーサビリティ、履歴管理、状態遷移、主キー、バージョン管理
(3)見積依頼から納品までのファイルに、作成者コードと作成日を属性として設定した目的を40字以内で述べよ。また、その他にも同様の目的で設定した属性が二つある。その属性名を答えよ。
模範解答
目的:案件の開始から完了に至るまでの経緯についてシステムで追跡調査を行うため
属性名:
①:承認者コード
②:承認日
解説
解答の導き方
結論(解答)
- 目的:案件の開始から完了に至るまでの経緯についてシステムで追跡調査を行うため
- 属性名:承認者コード、承認日
導き方(段階的説明)
- 新システムの業務要件に「案件の開始から完了までの経緯について追跡調査を行いたい場合、全ての書類の日付及び署名を確認しなければならないので、新システムで追跡できるようにする。」とあることから、各書類の「いつ」「誰が」作成・承認したかをシステム上で記録できることが求められています。
- 表1を見ると、見積依頼、見積、注文、注文詳、納品の各ファイルに「作成者コード」と「作成日」が属性として含まれており、これにより各文書の作成者と作成日時を特定できます(表の項目名は作成者コード、作成日)。
- 「いつ」「誰が」を満たすために作成者情報を記録するのが目的であること、したがって短くまとめると「案件の開始から完了に至るまでの経緯についてシステムで追跡調査を行うため」が妥当です。
- 同様に、承認に関する「誰が」「いつ」を記録する属性として、表1の見積・注文・納品に「承認者コード」「承認日」が設定されているため、これら二つが「同様の目的で設定した属性」に該当します。
誤りやすいポイント
- 見積依頼ファイルに承認者属性があると誤認する。表1の見積依頼には「作成者コード、作成日、状態区分」しかなく、承認者関連属性は記載されていない点に注意する。
- 目的を「単に監査用」「単語一語」で書いてしまう。設問の趣旨は「開始から完了までの経緯を追跡できること」であるため、それを含めた表現が必要。
- 属性名を省略・短縮して書く(例:承認者、作成日 → 正確には 承認者コード、作成日)。表記を問題文のまま正確に答えること。
- 「状態区分」や「更新日」と混同する。状態区分は状態を示すが、誰がいつ作成/承認したかを特定するためには作成者コード/作成日、承認者コード/承認日が必要。
FAQ
Q: 状態区分(例:入力中、承認など)だけでは追跡できないのですか?
A: 状態区分は処理の状態を示すだけで、「誰が」「いつ」その文書を作成・承認したかは分かりません。追跡調査では担当者と日時の記録(作成者コード・作成日、承認者コード・承認日)が必要です。
A: 状態区分は処理の状態を示すだけで、「誰が」「いつ」その文書を作成・承認したかは分かりません。追跡調査では担当者と日時の記録(作成者コード・作成日、承認者コード・承認日)が必要です。
Q: 「作成者コード」と「承認者コード」の違いは何ですか?
A: 作成者コードは文書を作成した人を特定する属性、承認者コードは承認操作を行った人を特定する属性です。どちらも「誰が」を明らかにする点で追跡に用いますが、役割(作成vs承認)が異なります。
A: 作成者コードは文書を作成した人を特定する属性、承認者コードは承認操作を行った人を特定する属性です。どちらも「誰が」を明らかにする点で追跡に用いますが、役割(作成vs承認)が異なります。
Q: 案件全体の最終更新日時は「更新日」で足りませんか?
A: 案件全体の「更新日」は最終更新時点を示すのみで、各書類ごとの作成・承認の履歴を示すには作成日・承認日とそれぞれの担当者を記録する必要があります。
A: 案件全体の「更新日」は最終更新時点を示すのみで、各書類ごとの作成・承認の履歴を示すには作成日・承認日とそれぞれの担当者を記録する必要があります。
関連キーワード: 監査証跡、作成履歴、承認管理、状態遷移、ログ記録





