応用情報技術者過去問題 平成27年秋期 午後問4

⇄問題文と設問を画面2分割で開く⇱問題PDF⇱解答用紙PDF

問4 システムアーキテクチャ

システム要件定義に関する次の記述を読んで,設問1〜5に答えよ。

 A社は,乳製品を製造・販売する会社であり,主な顧客はスーパーマーケットや小売店である。A社は首都圏近郊に三つの工場(X工場,Y工場,Z工場)をもち,牛乳,ヨーグルト,乳飲料など約30種類の製品を製造している。製品には,全ての工場で共通して生産する標準的な製品に加えて,それぞれの工場だけで生産するその地域限定の製品がある。また,1か月に1回製品価格の改定を行っており,顧客へは受注時点の製品価格で販売している。
 現在は,工場近郊の顧客からの注文を工場内にある営業部が受注し,受注した工場で製品を製造して顧客に出荷している。しかし,近年,工場近郊の顧客数にばらつきが生じ,X工場の製造量は限界に達しているが,Y工場の製造量には余裕がある状態となっている。そこで,各工場内にある営業部を本社へ統合し,顧客からの注文を本社で一括して受注し,製造を各工場に割り当てる業務改革を実施することになった。
 現在の受注システムは,各工場の営業部で受注することを前提に設計されており, 業務改革に合わせて再構築が必要となった。再構築に当たり,システムインテグレータであるB社のC君がシステム要件定義を担当することになった。

〔システム要件定義の進め方の検討〕
 C君は,まずシステム要件定義の進め方を検討し,次の①〜③の流れでシステム要件定義を進めることにした。
  1. 現行システム分析:現行システムの設計書やソースコードを基に,システムの現状をシステム機能一覧,a,概念データモデルなどにまとめる。
  2. 新業務分析:営業部にヒアリングやアンケートを実施し,業務改革後の新業務の概要をb,業務フロー,概念データモデルなどにまとめる。
  3. 課題分析:現行システム分析と新業務分析の結果から,現行の受注システムの課題を分析する。
〔現行システム分析〕
 C君は,現行システムの設計書を基に,現行の受注システムがもつテーブルを調査し,概念データモデルを作成した。現行の受注システムのテーブル構造(抜粋)を表1に,C君が作成した概念データモデル(抜粋)を図1に示す。表1において,下線は主キーを表す。
pm04_1.gif/image-size:502×448
〔新業務分析と課題分析〕
 C君は,営業部にヒアリングやアンケートを実施し,業務改革後の新受注業務及び新出荷業務の業務フローの作成を行った(図2)。また,現行の受注システムの課題を次のように分析した。
課題1:
業務改革後は顧客からの注文を本社で一括して受注するが,現行の受注システムでは,本社で一括して受注した受注データを登録できない。受注データの管理単位を変更する必要がある。
課題2:
1回の受注で受け付けた製品を複数の工場から出荷する場合に,出荷データを登録できない。同一工場から,同一顧客へ,同一出荷日の製品を一つの出荷として扱い,工場ごとに別々の出荷ができるように,出荷データの管理単位を変更する必要がある。
pm04_2.gif/image-size:520×340
〔新システムの概念データモデル〕
 C君は,〔新業務分析と課題分析〕の結果から新システムの概念データモデルを作成した。C君が作成中の新システムの概念データモデルを図3に示す。
pm04_3.gif/image-size:505×221

設問1

本文中のabに入れる適切な字句を解答群の中から選び,記号で答えよ。
a,b に関する解答群
  • 課題問題点一覧
  • 業務一覧
  • システム機能関連図
  • 要求一覧

-解答入力欄-

  • a:
  • b:

-解答例・解答の要点-

  • a:
  • b:

-解説-

本問は工場の受注システム再構築のシナリオを通じ、システム要件定義の知識と技能を問う問題です。

まず選択肢の内容と役割を確認しておきましょう。
ア:課題問題点一覧
業務やシステムの「あるべき姿」と「現在」を比較するギャップ分析によって得られた課題・問題点を整理した資料
イ:業務一覧
社員・担当者が行っている(あるいは将来行う)業務を一覧にまとめた資料
ウ:システム機能関連図
システムの持つ機能がどのように相互関連しているのかを示した図(資料)
エ:要求一覧
利用者などから得た改善希望や機能案などをまとめた資料
aについて〕
システム要件定義の「現行システム分析」フェーズにおいて作成すべき資料です。システムの現況をまとめたものですから、選択肢の中では「ウ」の「システム機能関連図」が相当します。

a=ウ:システム機能関連図

bについて〕
「新業務分析」フェーズにおいて作成すべき資料です。ヒアリングやアンケートの実施結果を基に新業務の概要をまとめたものですから、選択肢の中では「イ」の「業務一覧」が相当します。

b=イ:業務一覧

なお「ア」の課題問題点一覧は課題分析フェーズの成果物、「エ」の要求一覧はシステム要件定義全体が完了したときの成果物です。

設問2

図1及び図3について,cに入れる適切なリレーションシップを解答群の中から選び,記号で答えよ。
c に関する解答群

-解答入力欄-

  • c:

-解答例・解答の要点-

  • c:

-解説-

cについて〕
この概念データモデルはE-R図の記法を用いて書かれています。[c]は2つのエンティティ(工場と製品)の間にある関係性を表しており、単なる直線(─)であれば1対1の関係性、片方向の矢印(→)であれば矢印のない方・ある方で1対多の関係、両矢印(⟷)であれば多対多の関係を表します。

1つの工場は複数の製品を作るので、工場と製品の関係は「1対多」です。同時に1つの製品は複数の工場で作られるので工場と製品の関係は「多対1」でもあります。両者を組み合わせれば関係は「多対多」となるため、両矢印の「エ」が正解となります。

c=エ:↕

なお、テーブル構造で多対多の関連を表現しようとすると非正規系になってしまうため、連関エンティティである「製造製品」を用意して1対多の関連に分解しています。
pm04_4.gif/image-size:404×287

設問3

図1中の属性"製品単価"と"受注単価"の両方が必要な理由を20字以内で述べよ。

-解答入力欄-


-解答例・解答の要点-

  • 受注時点の製品価格で販売するから (16文字)

-解説-

前提条件を整理しましょう。"製品単価"は製品エンティティの中に定義されており、製品コードごとに割り当てられた情報です。一方、"受注単価"は受注明細エンティティの中に定義されていて、受注伝票番号と製品コードごとに割り当てられています。また本文中に「1か月に1回製品価格の改定を行っており,顧客へは受注時点の製品価格で販売している。」という記述があることから、価格は日常的に改定されながらシステムが運用されていく前提で設計されていることがわかります。

もしも"受注単価"のみを残して"製品単価"を消すと、製品ごとの価格を管理することができません。逆に"製品単価"のみを残して"受注単価"を消し、受注明細が随時"製品単価"を参照する仕様だと、受注後の価格改定により受注時と参照時で価格が異なるときには、過去の受注情報まで全て新単価基準で計算した金額になってしまいます。実際には受注情報が確定した時点で価格(受注単価)も決定されますから、受注情報に"受注単価"を紐付けておかなければなりません。

つまり、"製品単価"と"受注単価"の両方が必要なのは、A社が「受注時点の製品価格で販売している」からと言えます。

∴受注時点の製品価格で販売するから

設問4

〔新業務分析と課題分析〕の課題1は,図1の概念データモデルにおいて,どのエンティティのどの属性が原因であるか。エンティティ名と属性名を答えよ。

-解答入力欄-

  • エンティティ名:
  • 属性名:

-解答例・解答の要点-

  • エンティティ名:受注
  • 属性名:工場コード

-解説-

業務改革後は各工場内の営業部を本社に統合し、顧客からの注文を本社で一括して受注するようになります。図1の中で、受注情報を管理している受注エンティティを見ると、担当工場を表す"工場コード"が属性に含まれています。しかし、新業務手順で注文を受け付ける本社は工場ではない上に、1つの注文を複数の工場へ割り当てる(図2や図3ではこれを「引当て」「引当」と表現しています。)可能性もあるため、受注単位で特定の工場を紐付けてしまうのは新業務手順の実態に即していません。したがって、エンティティ名「受注」、属性名「工場コード」は不要となります。

実際に〔新システムの概念データモデル〕である図3では、受注エンティティから"工場コード"が取り除かれています。

∴エンティティ名:受注
 属性名:工場コード

設問5

〔新システムの概念データモデル〕について,(1),(2)に答えよ。属性が主キーの一部となる場合は,実線の下線を付けること。
  • 図3中のdに入れる適切な属性名を答えよ。
  • 〔新業務分析と課題分析〕の課題2を解決するためには,"出荷"エンティティの属性を変更し,"出荷明細"エンティティを追加する必要がある。図3中のefに入れる適切な属性名を答えよ。さらに,"出荷明細"エンティティに追加すべき必要最小限の属性の属性名を,図1中の字句を用いて答えよ。
(※正誤判定の都合上、主キー属性は{属性名}と入力してください)

-解答入力欄-

    • d:
    • e:
    • f:
    • 属性名:

-解答例・解答の要点-

    • d:工場コード
    • e:顧客コード
    • f:工場コード
    • 属性名:出荷伝票番号受注伝票番号製品コード

-解説-

  • dについて〕
    設問4で解説したように、「引当」は、受注した製品の製造及び在庫からの出荷を工場に割り当てることを意味していて、引当製品エンティティは、受注明細に登録された各製品の引当状況を管理しています。引当では「製品をX・Y・Zのどの工場に割り当てるか」という情報を管理する必要があるため、属性として"工場コード"が含まれていなければなりません。また、1つの受注に含まれる1つの製品を複数の工場に割り当てる可能性もあるので、引当製品エンティティのレコードを一意に特定するために"工場コード"は主キーである必要があります。したがって[d]には「工場コード」が入ります。

    d工場コード

  • efについて〕
    〔新業務分析と課題分析〕の課題2には「同一工場から,同一顧客へ,同一出荷日の製品を一つの出荷として扱い,工場ごとに別々の出荷ができるように,出荷データの管理単位を変更する必要がある。」と書かれています。つまり1つの出荷は、顧客、出荷日、工場の三要素によって特定されるということです。このうち、出荷日はすでに図3の出荷エンティティの中に含まれているので、[e][f]には残った2つ、すなわち顧客を表す「顧客コード」と工場を表す「工場コード」が必要です。

    出荷エンティティでは、連番でレコードを一意に特定する出荷伝票番号(代用キー)を用意し主キーとしているので、空欄の2つの属性は外部キーではありますが主キーではありません。よって、下線は不要です。

    ef=顧客コード、工場コード(順不同)

    出荷明細エンティティの属性については次のように考えます。
    出荷明細エンティティは、出荷エンティティと引当製品エンティティの情報を結びつけています。
    出荷明細エンティティ
    いつ、どの工場から、どの顧客へ発送するか
    引当製品エンティティ
    どの受注が、どの製品を、どの工場にいくつ引当てたか
    pm04_5.gif/image-size:191×199
    まず、出荷明細エンティティと出荷エンティティが関係性を持つためには、出荷エンティティの主キーである"出荷伝票番号"が出荷明細エンティティの属性に入っている必要があります。これが1つ目の属性です。

    次に、出荷明細エンティティと引当製品エンティティが1対1の関係を結んでいることに着目すると、出荷明細エンティティは引当製品エンティティの主キーにあたる情報を持っている必要があります。引当製品エンティティの主キーは"受注伝票番号"、"製品コード"、"工場コード"の3つです。

    これと前述の"出荷伝票番号"を合わせた4つでも機能はしますが、設問に「必要最小限の」という条件があるので、さらに踏み込んで考える必要があります。2つのエンティティの属性を見ると、"工場コード"が重複しています。"工場コード"は出荷エンティティの"出荷伝票番号"から一意に特定できるので、「必要最小限の」という条件を考慮すると"工場コード"を属性に含めるべきではありません。

    したがって、出荷明細エンティティの属性には、出荷エンティティと関連付ける「出荷伝票番号」と、引当製品エンティティと関連付ける「受注伝票番号」と「製品コード」が少なくとも含まれている必要があります(すべて主キーです)。

    出荷伝票番号受注伝票番号製品コード
問4成績

平成27年秋期 午後問題一覧

問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11 採点講評
© 2010-2021 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop