ファンクションポイント法 アプリケーションの境界の考え方
皆さん、こんにちは。技術開発グループのn-ozawanです。
今年最後の投稿になります。去年の今頃はKeycloakでのOIDC認証について投稿していました。1年があっという間に感じられますね。
本題です。
ファンクションポイント法で規模を計測する際に、最も重要なのはアプリケーション境界の決定です。このアプリケーション境界を誤ると、計測されたFP値に影響を及ぼします。今回はそんなアプリケーション境界を決定する際にどう考えればいいのかを自分なりにまとめてみました。
目次
アプリケーション境界
アプリケーション境界とは
ファンクションポイント法でシステムの規模を測定する際、まず初めにすることはアプリケーション境界を決定することです。アプリケーションとは、そのシステムを構成するサブシステムのようなものです。というのも、ファンクションポイント法におけるアプリケーションとはこれのことだ、と明確に定まっていないようで、正直なところ説明が難しいです。しかし、システム全体を1つのアプリケーションとして捉えると計測したFP値に大きな誤差が生まれるため、システムをある程度の大きさで分割することは、ファンクションポイント法で重要なことではあります。
具体的な例を以下のような販売管理システムで説明します。

一般ユーザーは「販売管理システム」にアクセスして商品の取引を行います。取引内容は売上情報に書き込まれます。一方で、その売上情報を受けて、注文があった商品を発送する、などと言った業務を行う人がいます。その業務担当者向けに「バックオフィス」というシステムを用意してあげます。他にも、販売管理システムやバックオフィスで不具合が発生していないか監視する「監視システム」や、マスタデータを管理維持する「管理ツール」などがあります。
このように、システム全体を効率的に運用するために、一般ユーザーが使うシステム以外にも多くの仕組みが構築されています。今回は販売管理システムを例にお話しします。
システムを1つのアプリケーションとした場合
もし、先ほどのシステムを1つのアプリケーションとした場合、何が不都合なのでしょうか?

1つ目は、バックオフィスから販売管理システムへ、監視システムから管理ツールへなど、各ツール間で行われる処理が全てトランザクションファンクションとしてカウントされなくなります。トランザクションファンクションは、そのアプリケーション外からのデータファンクションへの入出力処理をカウントします。しかし、システムを1つのアプリケーションとした場合、これらの処理はアプリケーション内で完結してしまうため、トランザクションファンクションとしてカウントされないのです。結果として、FP値は想定よりも少なく計測されることになります。
2つ目は、そのシステムが持つファイルもしくはエンティティは全てILFになります。EIFになるデータは、別のアプリケーションが管理維持するデータです。アプリケーションは1つなのでEIFが存在しません。ILFはEIFよりも大きくFP値を計測します。これにより、想定よりも高いFP値を計測するかもしれません。
アプリケーション境界を見極める要素
では、アプリケーション境界はどうやって決定すればよいでしょうか?アプリケーション境界は利用者から見て理解できる業務の単位にもとづいて決定します。技術的な要因(画面、処理、帳票などの機能)で決定してはいけません。基本的にサブシステムごとにアプリケーションを決定すればよいでしょう。もう少し具体的に言うと以下となります。
- 業務(そのシステムで何を達成したいのか)によって決定する
- データ(そのシステムで扱うデータの傾向や特性など)によって決定する
- 人(そのシステムを誰が使っているのか、主な利用者など)によって決定する
システムを慎重に観察していればいくつかのアプリケーションに分けられると思います。先ほどの例をとると以下のようになるかと思います。

「販売管理」「バックオフィス」「監視ツール」「管理ツール」をそれぞれアプリケーションとしました。これにより各ツール間のやり取りをトランザクションファンクションとしてカウントできました。また、データにおいて正しくILFとEIFで分類できるようになりました。
なお、アプリケーションを細かく分類しすぎると、FP値が想定以上に大きくなりますのでご注意ください。何事もほどほどで止めておきましょう。
おわりに
よく何事にも「最初が肝心」と言われますが、ファンクションポイント法においても、最初のアプリケーション境界が非常に大事です。ここを誤ると期待したFP値が得られなくなります。私も初めてファンクションポイント法で見積もろうとしたとき、アプリケーション境界を画面などの技術要素で決定してしまい、なんかうまくいかないな?と悩んだものです。
皆様、よいお年を。