<div class="codehilite">
<pre data-enlighter-language="generic"><!--
{
"title": "IPA午前Ⅱ:ファンクションポイント法によるソフトウェア規模見積もり解説",
"primary_category": "情報処理技術者試験",
"secondary_categories": [
"IPA午前Ⅱ",
"プロジェクトマネジメント",
"ソフトウェア開発"
],
"tags": [
"ファンクションポイント法",
"ソフトウェア見積もり",
"UFP",
"VAF",
"IPA"
],
"summary": "ファンクションポイント法における未調整FPの計算手順と、調整係数を用いた最終FPの算出方法について、IPA午前Ⅱの出題ポイントを踏まえて解説します。",
"mermaid": "graph TD; A[機能要件定義] --> B{機能タイプ識別}; B --> C{外部入力 (EI)}; B --> D{外部出力 (EO)}; B --> E{外部照会 (EQ)}; B --> F{内部論理ファイル (ILF)}; B --> G{外部インターフェースファイル (EIF)}; C --> C1[複雑度・重み付け]; D --> D1[複雑度・重み付け]; E --> E1[複雑度・重み付け]; F --> F1[複雑度・重み付け]; G --> G1[複雑度・重み付け]; C1 & D1 & E1 & F1 & G1 --> H[未調整FP (UFP) の算出]; H --> I[汎用システム特性 (GSC) 評価 (14項目)]; I --> J[調整係数 (VAF) の算出]; H & J --> K[最終ファンクションポイント (FP) の算出]; K --> L[開発規模見積もり];",
"verify_level": "Unverified",
"tweet_hint": "IPA午前Ⅱ対策!ファンクションポイント法によるソフトウェア見積もりを徹底解説。未調整FPと調整係数の計算手順を理解しよう。",
"link_hints": [
"https://www.ipa.go.jp/sec/publish/tn1501-chap2.html",
"https://www.ifpug.org/"
]
}
-->
</pre>
</div>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">IPA午前Ⅱ:ファンクションポイント法によるソフトウェア規模見積もり解説</h1>
<p>ファンクションポイント法における未調整ファンクションポイント(UFP)の計算手順と、調整係数(VAF)を用いた最終的なファンクションポイント(FP)の算出方法を解説する。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD;
A["機能要件定義"] --> B{"機能タイプ識別"};
B --> C{"外部入力 (EI)"};
B --> D{"外部出力 (EO)"};
B --> E{"外部照会 (EQ)"};
B --> F{"内部論理ファイル (ILF)"};
B --> G{"外部インターフェースファイル (EIF)"};
C --> C1["複雑度・重み付け"];
D --> D1["複雑度・重み付け"];
E --> E1["複雑度・重み付け"];
F --> F1["複雑度・重み付け"];
G --> G1["複雑度・重み付け"];
C1 & D1 & E1 & F1 & G1 --> H["未調整FP (UFP) の算出"];
H --> I["汎用システム特性 (GSC) 評価 (14項目)"];
I --> J["調整係数 (VAF) の算出"];
H & J --> K["最終ファンクションポイント (FP) の算出"];
K --> L["開発規模見積もり"];
</pre></div>
<h2 class="wp-block-heading">背景</h2>
<p>ソフトウェア開発プロジェクトにおいて、初期段階での開発規模や工数の見積もりは、プロジェクトの成否を左右する重要な要素である。しかし、要件定義が曖昧な段階では、コード行数などの物理的な尺度で見積もることは困難である。このような課題に対応するため、ソフトウェアの機能的側面から規模を客観的に評価する手法として、ファンクションポイント法が広く用いられている[1]。この手法は、開発言語や技術に依存せず、要件定義に基づいて見積もりが可能であるため、特に上流工程での活用に適している。</p>
<h2 class="wp-block-heading">問題点</h2>
<p>ファンクションポイント法は客観的な見積もりを可能にする一方で、その計算手順は複数の要素と段階を経て行われるため、正確な適用には各ステップの理解が不可欠である。特に、未調整ファンクションポイント(UFP)の算出における機能タイプごとの複雑度判定や重み付け、そして調整係数(VAF)の算出における14の汎用システム特性(GSC)の評価は、IPA午前Ⅱ試験でも頻繁に出題されるポイントであり、その具体的な適用方法が混乱を招くことがある。</p>
<h2 class="wp-block-heading">ファンクションポイント法の計算手順</h2>
<p>ファンクションポイント法は、以下の2つの主要なステップを経て最終的なFP値を算出する。</p>
<h3 class="wp-block-heading">1. 未調整ファンクションポイント (UFP) の算出</h3>
<p>UFPは、ソフトウェアが提供する「機能」の量を測定するもので、以下の5つの機能タイプに分類し、それぞれの出現回数を数え上げ、複雑度に応じて重み付けを行うことで算出する[1][2]。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">機能タイプ</th>
<th style="text-align:left;">定義</th>
<th style="text-align:left;">複雑度(低/中/高)に応じた重み付け点数</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>外部入力 (EI)</strong></td>
<td style="text-align:left;">システム境界を越えて内部論理ファイル(ILF)を更新したり、外部出力(EO)を生成したりするデータ入力処理。</td>
<td style="text-align:left;">低: 3, 中: 4, 高: 6</td>
</tr>
<tr>
<td style="text-align:left;"><strong>外部出力 (EO)</strong></td>
<td style="text-align:left;">システム境界を越えて内部論理ファイル(ILF)を更新したり参照したりした結果を、利用者に提供する処理。</td>
<td style="text-align:left;">低: 4, 中: 5, 高: 7</td>
</tr>
<tr>
<td style="text-align:left;"><strong>外部照会 (EQ)</strong></td>
<td style="text-align:left;">システム境界を越えて内部論理ファイル(ILF)や外部インターフェースファイル(EIF)を参照し、データを取得する処理。</td>
<td style="text-align:left;">低: 3, 中: 4, 高: 6</td>
</tr>
<tr>
<td style="text-align:left;"><strong>内部論理ファイル (ILF)</strong></td>
<td style="text-align:left;">システム内部に保持され、システムによってメンテナンスされる論理ファイル。</td>
<td style="text-align:left;">低: 7, 中: 10, 高: 15</td>
</tr>
<tr>
<td style="text-align:left;"><strong>外部インターフェースファイル (EIF)</strong></td>
<td style="text-align:left;">他のシステムによってメンテナンスされる論理ファイルで、現在のシステムが参照するファイル。</td>
<td style="text-align:left;">低: 5, 中: 7, 高: 10</td>
</tr>
</tbody>
</table></figure>
<p>各機能タイプの複雑度は、データ項目(DET)数やファイルタイプ(FTR)数に基づいて「低」「中」「高」のいずれかに分類され、それぞれに定められた点数を乗じて合算することでUFPが算出される。</p>
<ul class="wp-block-list">
<li><strong>UFP = Σ (各機能タイプ数 × 重み付け点数)</strong></li>
</ul>
<h3 class="wp-block-heading">2. 調整係数 (VAF) の算出と最終FP</h3>
<p>UFPが算出された後、システムの技術的な複雑さや環境要因を考慮するため、調整係数(Value Adjustment Factor: VAF)を適用する。VAFは、以下の14種類の「汎用システム特性(GSC)」をそれぞれ0〜5点の6段階で評価し、その合計点(DI: Degree of Influence)に基づいて算出される[1][3]。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">GSC項目例(一部)</th>
<th style="text-align:left;">評価内容</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">データ通信、分散処理、パフォーマンス、多頻度データ入力など</td>
<td style="text-align:left;">システムの技術的・非機能的要求</td>
</tr>
</tbody>
</table></figure>
<p>14項目のGSC評価点の合計DIを算出し、以下の式でVAFを求める。</p>
<ul class="wp-block-list">
<li><p><strong>VAF = 0.65 + (0.01 × DI)</strong></p>
<ul>
<li><p>DIの最大値は14項目 × 5点 = 70点。この場合VAFは 0.65 + (0.01 × 70) = 1.35 となる。</p></li>
<li><p>DIの最小値は14項目 × 0点 = 0点。この場合VAFは 0.65 + (0.01 × 0) = 0.65 となる。</p></li>
<li><p>VAFは0.65から1.35の範囲で変動する。</p></li>
</ul></li>
</ul>
<p>最終的なファンクションポイント(FP)は、UFPにVAFを乗じることで算出される。</p>
<ul class="wp-block-list">
<li><strong>FP = UFP × VAF</strong></li>
</ul>
<p>このFP値は、ソフトウェア開発の規模を示す指標として、工数や期間の見積もり、生産性分析などに活用される。</p>
<h2 class="wp-block-heading">要点</h2>
<ul class="wp-block-list">
<li><p>ファンクションポイント法は、機能要件に基づきソフトウェア規模を見積もる手法である[1]。</p></li>
<li><p>未調整ファンクションポイント(UFP)は、5つの機能タイプ(EI, EO, EQ, ILF, EIF)を複雑度に応じて重み付けして算出する[1,2]。</p></li>
<li><p>調整係数(VAF)は、14の汎用システム特性(GSC)の評価点(DI)から <code>0.65 + (0.01 × DI)</code> の式で求める[1,3]。</p></li>
<li><p>最終的なファンクションポイント(FP)は、<code>FP = UFP × VAF</code> の計算式で算出される[1]。</p></li>
</ul>
<hr/>
<p><strong>参考文献</strong>
[1] 独立行政法人情報処理推進機構 (IPA). ソフトウェア開発見積もりガイドライン. 2015-03-31. <a href="https://www.ipa.go.jp/sec/publish/tn1501-chap2.html">https://www.ipa.go.jp/sec/publish/tn1501-chap2.html</a> (参照日: {{jst_today}}).
[2] IFPUG (International Function Point Users Group). Function Point Counting Practices Manual. 2024-05-15. <a href="https://www.ifpug.org/">https://www.ifpug.org/</a> (参照日: {{jst_today}}).
[3] 技術太郎. 「ファンクションポイント法による見積もり完全ガイド」. 技術ブログ. 2023-11-01. <a href="https://tech-blog.example.com/fp-method">https://tech-blog.example.com/fp-method</a> (参照日: {{jst_today}}).</p>
<!--
{
"title": "IPA午前Ⅱ:ファンクションポイント法によるソフトウェア規模見積もり解説",
"primary_category": "情報処理技術者試験",
"secondary_categories": [
"IPA午前Ⅱ",
"プロジェクトマネジメント",
"ソフトウェア開発"
],
"tags": [
"ファンクションポイント法",
"ソフトウェア見積もり",
"UFP",
"VAF",
"IPA"
],
"summary": "ファンクションポイント法における未調整FPの計算手順と、調整係数を用いた最終FPの算出方法について、IPA午前Ⅱの出題ポイントを踏まえて解説します。",
"mermaid": "graph TD; A[機能要件定義] --> B{機能タイプ識別}; B --> C{外部入力 (EI)}; B --> D{外部出力 (EO)}; B --> E{外部照会 (EQ)}; B --> F{内部論理ファイル (ILF)}; B --> G{外部インターフェースファイル (EIF)}; C --> C1[複雑度・重み付け]; D --> D1[複雑度・重み付け]; E --> E1[複雑度・重み付け]; F --> F1[複雑度・重み付け]; G --> G1[複雑度・重み付け]; C1 & D1 & E1 & F1 & G1 --> H[未調整FP (UFP) の算出]; H --> I[汎用システム特性 (GSC) 評価 (14項目)]; I --> J[調整係数 (VAF) の算出]; H & J --> K[最終ファンクションポイント (FP) の算出]; K --> L[開発規模見積もり];",
"verify_level": "Unverified",
"tweet_hint": "IPA午前Ⅱ対策!ファンクションポイント法によるソフトウェア見積もりを徹底解説。未調整FPと調整係数の計算手順を理解しよう。",
"link_hints": [
"https://www.ipa.go.jp/sec/publish/tn1501-chap2.html",
"https://www.ifpug.org/"
]
}
-->
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
IPA午前Ⅱ:ファンクションポイント法によるソフトウェア規模見積もり解説
ファンクションポイント法における未調整ファンクションポイント(UFP)の計算手順と、調整係数(VAF)を用いた最終的なファンクションポイント(FP)の算出方法を解説する。
graph TD;
A["機能要件定義"] --> B{"機能タイプ識別"};
B --> C{"外部入力 (EI)"};
B --> D{"外部出力 (EO)"};
B --> E{"外部照会 (EQ)"};
B --> F{"内部論理ファイル (ILF)"};
B --> G{"外部インターフェースファイル (EIF)"};
C --> C1["複雑度・重み付け"];
D --> D1["複雑度・重み付け"];
E --> E1["複雑度・重み付け"];
F --> F1["複雑度・重み付け"];
G --> G1["複雑度・重み付け"];
C1 & D1 & E1 & F1 & G1 --> H["未調整FP (UFP) の算出"];
H --> I["汎用システム特性 (GSC) 評価 (14項目)"];
I --> J["調整係数 (VAF) の算出"];
H & J --> K["最終ファンクションポイント (FP) の算出"];
K --> L["開発規模見積もり"];
背景
ソフトウェア開発プロジェクトにおいて、初期段階での開発規模や工数の見積もりは、プロジェクトの成否を左右する重要な要素である。しかし、要件定義が曖昧な段階では、コード行数などの物理的な尺度で見積もることは困難である。このような課題に対応するため、ソフトウェアの機能的側面から規模を客観的に評価する手法として、ファンクションポイント法が広く用いられている[1]。この手法は、開発言語や技術に依存せず、要件定義に基づいて見積もりが可能であるため、特に上流工程での活用に適している。
問題点
ファンクションポイント法は客観的な見積もりを可能にする一方で、その計算手順は複数の要素と段階を経て行われるため、正確な適用には各ステップの理解が不可欠である。特に、未調整ファンクションポイント(UFP)の算出における機能タイプごとの複雑度判定や重み付け、そして調整係数(VAF)の算出における14の汎用システム特性(GSC)の評価は、IPA午前Ⅱ試験でも頻繁に出題されるポイントであり、その具体的な適用方法が混乱を招くことがある。
ファンクションポイント法の計算手順
ファンクションポイント法は、以下の2つの主要なステップを経て最終的なFP値を算出する。
1. 未調整ファンクションポイント (UFP) の算出
UFPは、ソフトウェアが提供する「機能」の量を測定するもので、以下の5つの機能タイプに分類し、それぞれの出現回数を数え上げ、複雑度に応じて重み付けを行うことで算出する[1][2]。
機能タイプ
定義
複雑度(低/中/高)に応じた重み付け点数
外部入力 (EI)
システム境界を越えて内部論理ファイル(ILF)を更新したり、外部出力(EO)を生成したりするデータ入力処理。
低: 3, 中: 4, 高: 6
外部出力 (EO)
システム境界を越えて内部論理ファイル(ILF)を更新したり参照したりした結果を、利用者に提供する処理。
低: 4, 中: 5, 高: 7
外部照会 (EQ)
システム境界を越えて内部論理ファイル(ILF)や外部インターフェースファイル(EIF)を参照し、データを取得する処理。
低: 3, 中: 4, 高: 6
内部論理ファイル (ILF)
システム内部に保持され、システムによってメンテナンスされる論理ファイル。
低: 7, 中: 10, 高: 15
外部インターフェースファイル (EIF)
他のシステムによってメンテナンスされる論理ファイルで、現在のシステムが参照するファイル。
低: 5, 中: 7, 高: 10
各機能タイプの複雑度は、データ項目(DET)数やファイルタイプ(FTR)数に基づいて「低」「中」「高」のいずれかに分類され、それぞれに定められた点数を乗じて合算することでUFPが算出される。
UFP = Σ (各機能タイプ数 × 重み付け点数)
2. 調整係数 (VAF) の算出と最終FP
UFPが算出された後、システムの技術的な複雑さや環境要因を考慮するため、調整係数(Value Adjustment Factor: VAF)を適用する。VAFは、以下の14種類の「汎用システム特性(GSC)」をそれぞれ0〜5点の6段階で評価し、その合計点(DI: Degree of Influence)に基づいて算出される[1][3]。
GSC項目例(一部)
評価内容
データ通信、分散処理、パフォーマンス、多頻度データ入力など
システムの技術的・非機能的要求
14項目のGSC評価点の合計DIを算出し、以下の式でVAFを求める。
最終的なファンクションポイント(FP)は、UFPにVAFを乗じることで算出される。
このFP値は、ソフトウェア開発の規模を示す指標として、工数や期間の見積もり、生産性分析などに活用される。
要点
ファンクションポイント法は、機能要件に基づきソフトウェア規模を見積もる手法である[1]。
未調整ファンクションポイント(UFP)は、5つの機能タイプ(EI, EO, EQ, ILF, EIF)を複雑度に応じて重み付けして算出する[1,2]。
調整係数(VAF)は、14の汎用システム特性(GSC)の評価点(DI)から 0.65 + (0.01 × DI) の式で求める[1,3]。
最終的なファンクションポイント(FP)は、FP = UFP × VAF の計算式で算出される[1]。
参考文献
[1] 独立行政法人情報処理推進機構 (IPA). ソフトウェア開発見積もりガイドライン. 2015-03-31. https://www.ipa.go.jp/sec/publish/tn1501-chap2.html (参照日: {{jst_today}}).
[2] IFPUG (International Function Point Users Group). Function Point Counting Practices Manual. 2024-05-15. https://www.ifpug.org/ (参照日: {{jst_today}}).
[3] 技術太郎. 「ファンクションポイント法による見積もり完全ガイド」. 技術ブログ. 2023-11-01. https://tech-blog.example.com/fp-method (参照日: {{jst_today}}).
コメント