応用情報技術者 2013年 秋期 午後 問07
ソフトウェアの機能規模の見積りに関する次の記述を読んで、設問1~3に答えよ。
K社は、電化製品を製造販売する会社である。今回、入庫管理システムを開発することになり、情報システム部に所属するL君が開発リーダに任命された。K社では、開発に複数のプログラム言語を用いている。開発するソフトウェアの要件が定義された時点で、ファンクションポイント法を用いてソフトウェアの機能規模の見積りを行う。
〔入庫管理システムの開発〕
入庫管理システムのうち、生産管理システムからの入庫指示に関連する機能は、図1に示す入庫管理システムのDFDのとおりである。

表1は、入庫管理システムの処理一覧である。表2は、入庫管理システムが使用するデータストアのデータ項目一覧である。倉庫は、三つあるものの中から担当者が一つを指定する。


ファンクションポイント法においては、データファンクション、トランザクションファンクションを抽出し、それぞれの複雑さを、データ項目数などに基づいて計測して、低・中・高の3段階で評価する。データファンクション、トランザクションファンクションは、表3に示すファンクションタイプに分けられる。
L君は、データストアのデータ項目一覧から表4のデータファンクションを計測した。ここで、レコード種類数は、一つのデータファンクションの中に、異なる意味をもつデータのまとまりが存在した場合のそれらの個数であり、入庫管理システムが使用するデータストアのレコード種類数はいずれも1であった。複雑さの評価基準は省略する。


また、画面と、画面遷移の概要に基づいて、表5のトランザクションファンクションを計測した。図2は、その際に利用したメニューから入庫処理までの画面と、画面遷移の概要である。入庫処理は、指示番号を指定して対象製品の入庫指示を検索する入庫指示検索と、検索された指示番号に対応する入庫実績を登録して在庫を更新する入庫登録の二つのトランザクションファンクションとして計測した。実績集計、数量照会及び金額照会の関連ファイル数、データ項目数の算出根拠は省略する。
ここで、トランザクションファンクションのデータ項目数は、見出しや定数項目などの固定値項目を除く、アプリケーションに出入りする可変なデータ項目の個数である。画面上で同じデータ項目が複数回繰り返し表示される場合は最初の1回だけを数え、データ項目数は1とする。データストアの一つの項目が、画面設計の都合によって複数の表示項目に分割される場合も、データ項目数は1とする。また、ボタンなどの処理のトリガは、トランザクションファンクションごとにまとめて一つのデータ項目とみなす。各種メッセージについても、同様である。トランザクションファンクションの関連ファイル数とは、アプリケーションが読み書きするデータストアの個数である。
それぞれのトランザクションファンクションについて、関連ファイル数、データ項目数に基づいて複雑さを評価した。複雑さの評価基準は省略する。


L君は、表4、表5のデータファンクション一覧、トランザクションファンクション一覧を基に、表6の入庫管理システムのファンクションポイント算出表を作成した。ファンクションポイント算出表では、ファンクションタイプごとに、低・中・高それぞれの複雑さで計測されたファンクションタイプの個数と、複雑さの重み付け係数を掛けて足し合わせ、ファンクションタイプごとの合計値を求める。こうして求めた合計値の総和は、性能や頼性といったシステムの特性を考慮していないことから未調整ファンクションポイントと呼ばれる。システムの特性を調整係数として未調ファンクションポイントに掛け算し、ファンクションポイントを求めた。調整係数は、0.8とする。

設問1:
ソフトウェアの機能規模の見積りにファンクションポイント法を利用するK社にとってのメリットは何か。40字以内で述べよ。
模範解答
開発に用いるプログラム言語に依存しない見積りが行えること
解説
解答の論理構成
- 問題文はまず、K社の開発現場について
「K社では、開発に複数のプログラム言語を用いている。」
と明示しています。 - さらに、機能規模を見積もる方法として
「ファンクションポイント法を用いてソフトウェアの機能規模の見積りを行う。」
と述べています。 - ファンクションポイント法は“機能(≒ユーザに提供するサービス量)”を単位に規模を測るため、COBOL でも Java でも規模値は変わりません。
- よって「複数のプログラム言語」を採用する K社にとって、言語差による工数ブレを避けられる点が最大のメリットになります。
- 以上から模範解答
「開発に用いるプログラム言語に依存しない見積りが行えること」
が導かれます。
誤りやすいポイント
- 「早期に見積れる」や「機能追加に強い」といった利点を書き、言語非依存性を外してしまう。
- 「工数」や「コスト」といった成果物ではなく、“機能規模”を見積もる手法であることを忘れてしまう。
- K社が「複数のプログラム言語」を使っている事実を答案に反映せず、一般論だけを書く。
FAQ
Q: ファンクションポイント法が言語非依存なのはなぜですか?
A: プログラムステップ数ではなく「入力・出力・ファイル数」など機能単位を重み付けして規模を算出するため、ソースコードの文法や行数に左右されません。
A: プログラムステップ数ではなく「入力・出力・ファイル数」など機能単位を重み付けして規模を算出するため、ソースコードの文法や行数に左右されません。
Q: 言語ごとの生産性差はどう扱うのですか?
A: 機能規模をファンクションポイントで算出した後、言語別の平均生産性(工数/FP)を掛けることで調整します。見積り段階を二層に分けることで精度を保ちます。
A: 機能規模をファンクションポイントで算出した後、言語別の平均生産性(工数/FP)を掛けることで調整します。見積り段階を二層に分けることで精度を保ちます。
Q: 他にファンクションポイント法の代表的なメリットは?
A: 要件定義時点(設計前)でも見積れる、機能追加・削減時の差分見積りが容易などがありますが、本設問の焦点は言語非依存性です。
A: 要件定義時点(設計前)でも見積れる、機能追加・削減時の差分見積りが容易などがありますが、本設問の焦点は言語非依存性です。
関連キーワード: ファンクションポイント法、機能規模、言語非依存、見積り手法
設問2:入庫管理システムのデータファンクション及びトランザクションファンクションの一覧について、(1)、(2)に答えよ。
(1)表4中のa、bに入れる適切な字句を答えよ。
模範解答
a:EIF
b:ILF
解説
解答の論理構成
- ファンクションタイプの定義確認
表3には、- 「EIF :他アプリケーションによって作成されたデータのまとまりで、該当するアプリケーションは参照だけを行うもの」
- 「ILF :該当するアプリケーションによって作成、更新、参照、削除を行うデータのまとまり」
とあります。
- 「入庫指示」の性質
問題文冒頭に「生産管理システムからの入庫指示」と明記されています。入庫管理システムはこれを“参照”するだけで、自ら生成・更新しません。よって表4のaは他アプリケーション由来データ=「EIF」と判断します。 - 「在庫」の性質
表1「入庫処理」の概要には「在庫数量、金額を更新する」とあります。つまり入庫管理システム自身が“作成・更新”を行う内部ファイルです。したがってbは内部論理ファイル=「ILF」と判断します。
誤りやすいポイント
- 「外部エンティティから受け取るデータ=すべてEIF」と短絡し、システム内で後に更新する可能性を見落とすケース。
- 「在庫」をマスタ系と誤解し「他システムが維持している」と思い込むミス。処理一覧で更新有無を必ず確認しましょう。
- 表記ゆれ(ILF/EIF)を逆に記入してしまうケアレスミス。定義と実際の操作(参照のみか、更新を伴うか)を照合する習慣が必要です。
FAQ
Q: データが複数システムで共有されていても、常にEIFになりますか?
A: いいえ。「該当するアプリケーションが更新を行うかどうか」で判定します。共有でも自システムが更新するならILFです。
A: いいえ。「該当するアプリケーションが更新を行うかどうか」で判定します。共有でも自システムが更新するならILFです。
Q: 画面や帳票にしか現れない一時テーブルはILFですか?
A: 一時的に生成し更新も行うならILF、単なる読み取り専用であればEIFです。用途ではなく操作内容で判断します。
A: 一時的に生成し更新も行うならILF、単なる読み取り専用であればEIFです。用途ではなく操作内容で判断します。
Q: DFDに現れないデータストアはファンクションポイント計測の対象外ですか?
A: DFDに描かれていなくても要件で使用が明示され、操作内容が特定できるデータストアは計測対象に含めます。
A: DFDに描かれていなくても要件で使用が明示され、操作内容が特定できるデータストアは計測対象に含めます。
関連キーワード: ファンクションポイント法、内部論理ファイル、外部インタフェースファイル、データフロー図、ソフトウェア見積り
設問2:入庫管理システムのデータファンクション及びトランザクションファンクションの一覧について、(1)、(2)に答えよ。
(2)表5中のc、dに入れる適切な数値を答えよ。
模範解答
c:8
d:EO
解説
解答の論理構成
-
入庫登録のデータ項目数
- トランザクションファンクションのデータ項目数は「アプリケーションに出入りする可変なデータ項目の個数」であり、「ボタンなどの処理のトリガは…一つのデータ項目…各種メッセージについても、同様」と定義されています(【問題文】引用)。
- 入庫登録では可変項目として
「指示番号」「製品コード」「倉庫」「日付」「数量」「金額」
の6項目が存在します。 - さらにトリガであるボタン群を1、メッセージ群を1と数えるので、 項目となります。
- よって表5の c には 8 が入ります。
-
実績集計のファンクションタイプ
- ファンクションタイプの定義より
「EO:計算などの処理ロジックを通したデータを…出力する処理」
「EQ:計算などの処理ロジックを通さないデータを…出力する処理」
とあります(【問題文】引用)。 - 実績集計は「期間内の入庫の数量、金額をそれぞれ集計し、在庫数量と共に出力」する処理であり、数量・金額を“集計”=計算してから出力します。
- よって計算ロジックを伴うため、該当するファンクションタイプは EO です。
- ファンクションタイプの定義より
誤りやすいポイント
- ボタンとメッセージを「画面部品だから固定値」と誤解しカウントし忘れる。
- 「日付」を3つ(年・月・日)で3項目と数えるが、同一データ項目は分割しない規則に反する。
- 実績集計を「照会」と見なして EQ にしてしまい、計算有無の判断基準を見落とす。
FAQ
Q: ボタンが複数あっても 1 項目なのですか?
A: はい。「ボタンなどの処理のトリガは、トランザクションファンクションごとにまとめて一つのデータ項目とみなす」と明示されています。
A: はい。「ボタンなどの処理のトリガは、トランザクションファンクションごとにまとめて一つのデータ項目とみなす」と明示されています。
Q: 計算処理が軽微でも EO になりますか?
A: “集計・合計・平均” など何らかの算術処理が入れば EO です。計算の複雑さは問われません。
A: “集計・合計・平均” など何らかの算術処理が入れば EO です。計算の複雑さは問われません。
Q: データ項目数のカウントで固定値とは具体的に?
A: プルダウンに登録された「倉庫1~3」のような定数は固定値であり、データ項目数には含めません。
A: プルダウンに登録された「倉庫1~3」のような定数は固定値であり、データ項目数には含めません。
関連キーワード: ファンクションポイント法、データ項目数、外部出力、外部入力、複雑さ評価
設問3:
表6中のe〜jに入れる適切な数値、又は字句を答えよ。ここで、i、jは、表中の____部分に数値を補完して算出すること。
模範解答
e:0
f:1
g:5
h:1
i:58
j:46.4
解説
解答の論理構成
-
EO の個数
- 表5に列挙されたトランザクションファンクションは
「入庫指示検索 EQ」「入庫登録 EI」「実績集計 d」「数量照会 EQ」「金額照会 EQ」。 - EO は“表3”の定義で「計算などの処理ロジックを通したデータを…出力する処理」とされ、該当するのは「実績集計」のみです。
- 「実績集計」の複雑さ欄は「中」なので
e:低=0 f:中=1
- 表5に列挙されたトランザクションファンクションは
-
ILF/EIF の判定
- “表3”より
「ILF:該当するアプリケーションによって作成、更新、参照、削除を行うデータ」
「EIF:他アプリケーションによって作成されたデータで、参照だけを行うもの」 - 表4の二つの未確定欄を確認します。
・「入庫指示」は“生産管理システムから受領するだけ”で入庫管理側では更新しないため EIF 相当。
・「在庫」は入庫登録で数量・金額を更新するので ILF 相当。 - よって
a:EIF b:ILF - これで ILF は5件(入庫実績/在庫/入庫実績集計/在庫数量/在庫金額)、EIF は1件(入庫指示)。
g:5 h:1
- “表3”より
-
未調整ファンクションポイントの合計
各ファンクションタイプのポイントは重み付け係数(括弧内)×個数。- EI:中1件 → 1×4=4
- EO:中1件 → 1×5=5
- EQ:低3件 → 3×3=9
- ILF:低5件 → 5×7=35
- EIF:低1件 → 1×5=5
合計
i:58
-
調整後ファンクションポイント
- 調整係数は問題文で「調整係数は、0.8とする」。
j:46.4
誤りやすいポイント
- 「入庫指示」を ILF と誤って数える
→ “生産管理システムからの入庫指示に関連”という記述を見落とすと更新対象と勘違いしやすいです。 - EO/EQ の区別
→ 計算や集計を伴う「実績集計」は EO、単なる照会は EQ という“表3”の定義を必ず確認しましょう。 - 複雑さのレベルをそのまま個数に転記
→ 表6では「低・中・高」別に個数を入れる必要があります。低0件の EO に 1 を誤記しがちです。
FAQ
Q: EQ でも集計ボタンを押すが計算しない場合は EO になりますか?
A: いいえ。計算・編集ロジックを通さずデータをそのまま出力するなら EQ です。ボタンの有無は関係ありません。
A: いいえ。計算・編集ロジックを通さずデータをそのまま出力するなら EQ です。ボタンの有無は関係ありません。
Q: ILF と EIF が同じデータ項目数でも重みが違うのはなぜですか?
A: ILF はアプリケーションが保守責任を負う分、開発・テスト工数が大きくなるため重み付け係数が高く設定されています。
A: ILF はアプリケーションが保守責任を負う分、開発・テスト工数が大きくなるため重み付け係数が高く設定されています。
Q: 調整係数 0.8 の根拠は何ですか?
A: 性能・保守性など14項目を評価した結果です。本問では数値が与えられているので計算にそのまま使用します。
A: 性能・保守性など14項目を評価した結果です。本問では数値が与えられているので計算にそのまま使用します。
関連キーワード: ファンクションポイント法、外部出力、外部照会、内部論理ファイル、外部インタフェースファイル


