---
title: "ファンクションポイント法とは？重み付き合計と補正係数の計算方法【基本情報技術者試験】"
description: "ファンクションポイント法を、利用者から見える機能の個数と重み付け係数から開発規模を見積もる手法として整理し、5種類のユーザファンクションタイプ、補正係数の計算手順、他の見積方法との違いをFE試験向けに解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/function-point-method/"
section: "fe"
---

## まず結論

ファンクションポイント法とは、**ソフトウェアの機能の数と複雑さをもとに、開発規模を見積もる方法**です。

基本情報技術者試験では、次の順番で計算します。

```text
1. 各機能の個数 × 重み付け係数
2. すべて合計する
3. 複雑さの補正係数を掛ける
4. ファンクションポイント値を求める
```

プログラムの行数を数える方法ではありません。

| 見積方法 | 何で見積もる？ | 判断の合図 |
|---|---|---|
| ファンクションポイント法 | 機能の数と複雑さ | 外部入力、外部出力、内部論理ファイル |
| プログラムステップ法 | プログラムのステップ数 | ステップ数、行数 |
| 標準タスク法 | WBSの作業と工数 | 作業分解、WBS、各作業の工数 |
| 類推見積法 | 過去の類似例 | 類似システム、過去実績 |

FE試験では、**外部入出力や内部論理ファイルなどの個数や特性から開発規模を見積もる**なら、ファンクションポイント法です。

## 直感的な説明

ファンクションポイント法は、**ソフトウェアの「できること」を数えて、規模を見積もる方法**です。

例えば、家の大きさを見積もるときに、使った釘の本数から考える方法もあります。

しかし、利用者から見ると、重要なのは部屋の数や設備の数です。

ソフトウェアでも同じです。

プログラムの行数ではなく、利用者から見える機能に注目します。

```text
入力画面がある
帳票を出力する
データを保存する
外部システムと連携する
検索・照会する
```

このような機能を数え、それぞれの複雑さを考えて、開発規模を見積もります。

つまり、ファンクションポイント法は **コード量ではなく、利用者から見た機能量で見積もる方法** です。

## 定義・仕組み

ファンクションポイント法は、ソフトウェアが利用者に提供する機能を分類し、それぞれの個数や複雑さに重みを付けて、開発規模を見積もる方法です。

FE試験では、次の5つの要素が出やすいです。

| 要素 | 意味 | 例 |
|---|---|---|
| 外部入力 | 外部からシステムへデータを入力する機能 | 登録画面、更新画面 |
| 外部出力 | システムから外部へデータを出力する機能 | 帳票、集計表、出力ファイル |
| 外部照会 | 入力に対して検索結果などを返す機能 | 検索、照会、一覧表示 |
| 内部論理ファイル | システム内部で管理するデータのまとまり | 顧客マスタ、注文データ |
| 外部インタフェースファイル | 他システムが管理し、自システムが参照するデータ | 他システムのマスタ参照 |

ファンクションポイント法では、これらの個数を数え、複雑さに応じた重み付けを行います。

例えば、外部入力が2個、外部出力が3個、内部論理ファイルが2個のように数えます。

そこに、機能の複雑さや難易度を考慮して、ファンクションポイント数を求めます。

このテーマは、基本情報技術者試験の「プロジェクトマネジメント」や「開発規模の見積り」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、ファンクションポイント法は、見積方法の説明を選ぶ問題として出題されやすいです。

判断するときは、**機能の種類と数に注目しているか** を見ます。

| 問題文の表現 | 選ぶ用語 |
|---|---|
| 外部入力や外部出力の数から見積もる | ファンクションポイント法 |
| 内部論理ファイルや外部照会から見積もる | ファンクションポイント法 |
| 機能数と複雑さから見積もる | ファンクションポイント法 |
| プログラムごとのステップ数を積算する | プログラムステップ法 |
| WBSを作成し各作業の工数を見積もる | 標準タスク法 |
| 過去の類似例から見積もる | 類推見積法 |

例えば、次のような説明はファンクションポイント法です。

```text
外部入力や内部論理ファイル、外部照会、外部インタフェースなどの
個数や特性などから開発規模を見積もる。
```

一方、プログラムごとのステップ数を積算する方法は、プログラムステップ法です。

科目Aでは、**機能で数えるならファンクションポイント、行数で数えるならステップ法** と考えると選択肢を切りやすいです。

### ファンクションポイント値の計算問題

科目Aでは、用語の説明だけでなく、表に示された個数と重み付け係数からファンクションポイント値を計算する問題もあります。

基本の式は、次のように考えます。

```text
ファンクションポイント値
= Σ（個数 × 重み付け係数） × 複雑さの補正係数
```

例えば、次の表で複雑さの補正係数が `0.8` の場合を考えます。

| ファンクションタイプ | 個数 | 重み付け係数 |
|---|---:|---:|
| 外部入力 | 2 | 4 |
| 外部出力 | 1 | 5 |
| 内部論理ファイル | 1 | 10 |
| 外部インタフェースファイル | 1 | 7 |
| 外部照会 | 0 | 4 |

最初に、補正前の合計を求めます。

```text
(2×4) + (1×5) + (1×10) + (1×7) + (0×4)
= 8 + 5 + 10 + 7 + 0
= 30
```

次に、複雑さの補正係数を掛けます。

```text
30 × 0.8 = 24
```

したがって、ファンクションポイント値は **24** です。

計算問題では、次の順番を崩さないことが大切です。

1. 各ファンクションタイプの個数を確認する
2. 個数 × 重み付け係数を計算する
3. すべて足し合わせる
4. 最後に複雑さの補正係数を掛ける

| ひっかけ | 注意点 |
|---|---|
| 個数が0の行 | 0を掛けるので結果は0 |
| 補正係数 | 合計を出したあとに最後に掛ける |
| 重み付け係数 | 個数に掛ける。足すだけではない |
| 選択肢 | 補正前の値が選択肢にあることがある |

補正係数が1未満なら、補正後の値は補正前より小さくなります。

```text
補正係数 0.75
→ 掛けた後は小さくなる
→ 割って大きくするのは不自然
```

## どんな場面で使う？


プロジェクト計画や見積りの文章を読むときに、ファンクションポイント法の考え方は役立ちます。

例えば、次のようなシステムを考えます。

```text
顧客登録画面がある
注文登録画面がある
売上集計帳票を出力する
顧客マスタを管理する
商品マスタを参照する
注文検索を行う
```

この場合、単に「何行のプログラムになるか」を数えるのではなく、機能の種類ごとに整理します。

| 機能 | ファンクションポイント法での見方 |
|---|---|
| 顧客登録画面 | 外部入力 |
| 注文登録画面 | 外部入力 |
| 売上集計帳票 | 外部出力 |
| 顧客マスタ | 内部論理ファイル |
| 商品マスタ参照 | 外部インタフェースファイル |
| 注文検索 | 外部照会 |

問題文で読むときは、次の順で整理すると分かりやすいです。

1. 見積り対象がプログラム行数か、機能かを見る
2. 外部入力・外部出力・外部照会が出ているかを見る
3. 内部で管理するデータか、外部システムのデータかを見る
4. 個数や複雑さで規模を見積もっているかを見る

ファンクションポイント法は、開発言語が決まる前でも、機能の仕様から見積もりやすい点が特徴です。

## よくある誤解・混同

ファンクションポイント法で混同しやすいのは、プログラムステップ法、標準タスク法、類推見積法です。

| 用語 | 意味 | 判断の合図 |
|---|---|---|
| ファンクションポイント法 | 機能数と複雑さから見積もる | 外部入力、外部出力、内部論理ファイル |
| プログラムステップ法 | プログラムの行数やステップ数から見積もる | ステップ数、行数、LOC |
| 標準タスク法 | WBSで作業を分解し、作業ごとの工数を見積もる | WBS、作業、標準工数 |
| 類推見積法 | 過去の類似プロジェクトを参考に見積もる | 過去実績、類似例、差異分析 |

特に、ファンクションポイント法とプログラムステップ法は混同しやすいです。

- ファンクションポイント法：利用者から見た機能で見積もる
- プログラムステップ法：プログラムの行数で見積もる

また、標準タスク法と類推見積法も出やすいです。

- 標準タスク法：作業を分解して積み上げる
- 類推見積法：過去の似た事例から見積もる

試験では、**何を数えているか** を見ると判断しやすくなります。

計算問題では、ファンクションタイプ名だけでなく、**個数、重み付け係数、補正係数を使う順番** もひっかけになります。

### さらに注意したいひっかけ

| ひっかけ表現 | なぜ注意する？ |
|---|---|
| プログラムごとのステップ数を積算する | プログラムステップ法の説明 |
| WBSを作成して各作業の工数を見積もる | 標準タスク法の説明 |
| 過去の類似例から見積もる | 類推見積法の説明 |
| 開発者の経験だけで見積もる | ファンクションポイント法の中心ではない |
| 画面数だけで正確に見積もる | 複雑さやファイル、照会なども見る |
| ソースコード完成後にしか使えない | 機能仕様から見積もれるのが特徴 |

ファンクションポイント法は、開発言語に依存しにくい見積方法として扱われます。

同じ機能をJavaで作るかPythonで作るかによって行数は変わりますが、利用者から見た機能量は大きく変わらないためです。

## 確認問題（基本情報技術者試験対策）

あるシステムについて、外部入力が3個で重み4、外部出力が2個で重み5、内部論理ファイルが1個で重み10であった。その他の機能はない。複雑さの補正係数を0.8とすると、補正後のファンクションポイント値はいくらか。

- ア. 25.6
- イ. 32
- ウ. 40
- エ. 50

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ア**

まず、重み付き合計を求めます。

```text
(3×4) + (2×5) + (1×10)
= 12 + 10 + 10
= 32
```

次に、補正係数を掛けます。

```text
32 × 0.8 = 25.6
```

したがって、補正後のファンクションポイント値は25.6です。

- 32は補正前の値です。
- 40は32を0.8で割った値です。
- 補正係数が1未満なので、補正後の値が32より大きくなる選択肢は切れます。

</details>

## まとめ（試験直前用）

- ファンクションポイント法は、機能の数と複雑さで開発規模を見積もる方法
- 外部入力、外部出力、外部照会、内部論理ファイル、外部インタフェースファイルが合図
- 個数 × 重み付け係数を計算し、すべて合計する
- 複雑さの補正係数は、合計を出したあとに最後に掛ける
- 補正係数が1未満なら、補正後の値は小さくなる
- ステップ数や行数で見積もるのはプログラムステップ法
- WBSで作業工数を積み上げるのは標準タスク法
- 過去の類似例から見積もるのは類推見積法
