実際に出題された基本情報技術者試験のファンクションポイントのテーマに関する過去問と解答、解説をしていきます。
ファンクションポイントに関するテーマからの出題は、大きく下記3パターンです。
- ファンクションポイントの説明を問う問題
- ファンクションポイント値を問う問題
- 開発規模を見積もるときに必要となる情報を問う問題
たった4パターンだけマスターすれば、確実に得点できるようになりますよ!
これから、上記の3つの問題と、その解法やポイントなどをこれから順番に詳しく解説していきます。
1.ファンクションポイントの説明を問う問題
以下、令和元年秋期の基本情報技術者試験の過去問です。
ソフトウェア開発の見積方法の一つであるファンクションポイント法の説明として,適切なものはどれか。
ア.開発規模が分かっていることを前提として,工数と工期を見積もる方法である。ビジネス分野に限らず,全分野に適用可能である。
イ.過去に経験した類似のソフトウェアについてのデータを基にして,ソフトウェアの相違点を調べ,同じ部分については過去のデータを使い,異なった部分は経験に基づいて,規模と工数を見積もる方法である。
ウ.ソフトウェアの機能を入出力データ数やファイル数などによって定量的に計測し,複雑さによる調整を行って,ソフトウェア規模を見積もる方法である。
エ.単位作業項目に適用する作業量の基準値を決めておき,作業項目を単位作業項目まで分解し,基準値を適用して算出した作業量の積算で全体の作業量を見積もる方法である。
出典:基本情報技術者試験 令和元年秋期 問53
答えは、ウ。
解説します。
解説
ファンクションポイント法とは、プログラムの開発規模を見積もるための技法の1つです。
プログラムの内容をいくつかの「ファンクション(=機能)」に分類して、それぞれの処理内容の複雑さなどから難易度(重み係数)を判断します。
「ファンクション(=機能)」とは、以下のユーザにもわかりやすい機能のことです。
- 入力画面
- 出力画面・帳票
- オンライン画面など
その難易度(重み係数)に応じて各ファンクションポイントを算出します。
そして、最終的に各ファンクションポイントを加算して、全体のソフトウェア規模を見積もります。
以上、ファンクションポイント法の説明をしてきました。
この問題のポイントは以下の2つですから、しっかりと覚えておいてくださいね。
- ファンクションポイント法とは、プログラムの開発規模を見積もるための技法
- プログラムの内容を入力・出力画面・データベースなどいくつかの「ファンクション(=機能)」をもとに開発規模を求めるというもの
では次節、実際にファンクションポイント値を求める問題をみてみましょう。
2.ファンクションポイント値を問う問題
以下は、平成30年春期試験の問題です。
あるソフトウェアにおいて,機能の個数と機能の複雑度に対する重み付け係数は表のとおりである。このソフトウェアのファンクションポイント値は幾らか。ここで,ソフトウェアの全体的な複雑さの補正係数は0.75とする。
ユーザファンクションタイプ 個数 重み付け係数 外部入力 1 4 外部出力 2 5 内部論理ファイル 1 10 ア.18
イ.24
ウ.30
エ.32
出典:基本情報技術者試験 平成30年春期 問54
答えはア
解説します。
解説
問題にある「ユーザファンクションタイプ」とは、各ファンクション(機能)のことで以下3つあります。
- 外部入力
- 外部出力
- 内部論理ファイル
その3つのファンクションについて、個数と重み付け係数をそれぞれ掛け合わせて、個々のファンクションポイントを求めます。
各々のファンクションポイント = 個数 × 難易度(重み係数)
各々のファンクションポイントを合算し、さらに「補正係数」を加味しソフトウェアのファンクションポイント値を求めます。
それでは順番にファンクションポイントを計算していきます。
■外部入力
ユーザファンクションタイプ | 個数 | 重み付け係数 |
外部入力 | 1 | 4 |
外部出力 | 2 | 5 |
内部論理ファイル | 1 | 10 |
1×4=4
■外部出力:
ユーザファンクションタイプ | 個数 | 重み付け係数 |
外部入力 | 1 | 4 |
外部出力 | 2 | 5 |
内部論理ファイル | 1 | 10 |
2×5=10
■内部論理ファイル:
ユーザファンクションタイプ | 個数 | 重み付け係数 |
外部入力 | 1 | 4 |
外部出力 | 2 | 5 |
内部論理ファイル | 1 | 10 |
1×10=10
合計のファンクションポイントは、
4+10+10=24
さらに「補正係数(0.75)」を、合計のファンクションポイントに掛け合わせます。
24 × 0.75 = 18
よってこのソフトウェアのファンクションポイント値は、18となります。
この問題でのポイントは、ファンクションポイント値の計算です!
個数 × 難易度(重み係数)
また、個々のファンクションポイントを求めて、それを合計としただけではいけません!
問題文で「補正係数」が提示されていれば、最後に掛け合わせることを忘れずにしてくださいね!!
では、次節、ファンクションポイント法にて開発規模を見積もる際に必要なものについて解説します。
3.開発規模を見積もるときに必要となる情報を問う問題
以下は、平成28年秋期の問題です。
ファンクションポイント法で,システムの開発規模を見積もるときに際に必要となる情報はどれか。
ア.開発者数
イ.画面数
ウ.プログラムステップ数
エ.利用者数
出典:基本情報技術者試験 平成28年秋期 問53
答えはイ。
解説します。
解説
前述したとおり、ファンクションポイント法とは、プログラムの開発規模を見積もるための技法の1つ。
プログラムの内容をいくつかの「ファンクション(=機能)」に分類して、それぞれの処理内容の複雑さなどから難易度(重み係数)を判断します。
その内容というのは以下(一例)となります。
- 入力画面
- 出力帳票や画面
- データベース
- など
ユーザ側に見える外部仕様、すなわち入出力画面や帳票を基準に、ソフトウェアの見積りを行うことができるというメリットがあります。
参考に、ファインクションポイント法を使って、見積もりをする際のメリットを書いておきます。
- システム開発を受注する側にとっては、他社クライアントとの共通の尺度となるため公平な見積もりができます。
- 見積もりを(利用者側に見える画面や帳票などで)可視化できるので、ユーザ側への説明も容易となります。
- 開発言語(java、PHP、Pythonなど)が異なる開発プロジェクトでも、生産性や品質を比較・評価できます。
まとめ
基本情報技術者試験のファンクションポイントにおける3つ問題の紹介と、それぞれ解説をしました。
出題パターンとそのポイントを書いておきます。
1.ファンクションポイントの説明を問う問題
ファンクションポイント法とは、プログラムの開発規模を見積もるための技法
2.ファンクションポイント値を問う問題
ファンクションポイント値の計算方法は「 個数 × 難易度(重み係数)」
3.開発規模を見積もるときに必要となる情報を問う問題
入力・出力画面、出力帳票などといったユーザにもわかりやすい機能を分類し、難易度(重み係数)を付け、その合計がファンクションポイント値となる。
ファンクションポイント法は、ソフトウェアの見積もりを(利用者側に見える画面や帳票などで)可視化できるので、ユーザ側への説明も容易となるというメリットもあります。
この記事で、しっかり理解しておくことで、試験だけでなく実際の現場においても役に立ちますからぜひマスターしておいてくださいね!
人気記事【基本情報技術者試験の過去問(午前)】何年分解けばいい?よく出る問題をランキング形式で紹介し解説!