COSMICファンクションポイントとは何で、工数による見積もりとはどう違うのですか?

ブダペストのソフトウェア開発会社であるMesterséges Intelligencia Központ Kft. は、ソフトウェアの規模をCOSMICファンクションポイントで測定しています。そのため規模は推定する人の感覚ではなくソフトウェアの特性となり、検証でき、測り直すことができ、2つのお見積もりの比較にも使えます。

要点: COSMIC(ISO/IEC 19761)は、ソフトウェアの機能規模を測定します。Entry(入力)、Exit(出力)、Read(読み込み)、Write(書き込み)のデータ移動は、1つにつき1 COSMICファンクションポイント(CFP)です。工数の推定が示すのは、推定する人がどれだけの作業を見込んでいるかであり、測定した規模が示すのは、タスクがどれだけ大きいかです。そのため規模は検証でき、測り直すことができ、2つのお見積もりの比較にも使えます。そして工数は、規模と実績に基づく生産性から導き出せます。

機能規模測定とは何ですか?

ソフトウェアの規模は、プログラムの行数、時間、ポイントなど、さまざまな方法で表せます。機能規模測定(英語ではfunctional size measurement、FSM)は、ソフトウェアがどのように実装されるかではなく、ユーザーの視点から見てソフトウェアに何ができる必要があるかを測定します。その基本概念はISO/IEC 14143-1:2007規格で定められています。規格の説明によれば、目的はまさに、測定の焦点を実装の方法からユーザーが求める機能へと移すことにあります。

測定の基礎となるのは、機能ユーザー要件(functional user requirements、FUR)の範囲です。これは、ソフトウェアが実行しなければならないタスクとサービスを記述した、ユーザー要件の一部です。性能、セキュリティ、選択した技術はここには含まれません。これらについては、下の限界の節でご説明します。

標準化された機能規模測定手法は複数あります。最もよく知られているのはCOSMIC(ISO/IEC 19761:2011)とIFPUG法(ISO/IEC 20926:2009)で、ISOはほかの手法も標準化しています(NESMA、FiSMA、Mk II)。いずれも要件をもとにしますが、ルールも単位も異なるため、異なる手法で測定した数値は直接比較できません。

COSMICとは何ですか?

COSMICは、Common Software Measurement International Consortiumの略称で、手法を管理し、測定者の認定を運営する非営利団体です。この手法は90年代末に、それ以前のファンクションポイント手法を発展させる形で生まれ、2003年にISO規格となりました。現在有効な版はISO/IEC 19761:2011です。手法の詳細な説明であるCOSMIC Measurement Manualのバージョン5.0は無料でダウンロードでき、第1部は2021年、第2部は2024年に発行されました。

規格によれば、この手法は、アプリケーションソフトウェア(たとえば業務システム)、リアルタイムソフトウェア、そしてその両方を組み合わせたものの測定に適しています。つまり、ERP、CRM、ECサイトのシステムも、制御ソフトウェアも、この手法で測定できます。

COSMICモデルの概念

COSMICは、ソフトウェアをシンプルなモデルで表します。ソフトウェアは境界を越えて機能ユーザーとデータをやり取りし、境界の内側では永続ストレージからデータを読み込み、永続ストレージにデータを書き込みます。

概念意味例
機能ユーザーソフトウェアにデータを送る、またはソフトウェアからデータを受け取る人や物:人、別のソフトウェア、機器事務担当者、請求書発行システム
境界測定対象のソフトウェアと機能ユーザーとの間にある概念上のインターフェースウェブ画面と、ほかのシステムに向けて公開されたインターフェース
トリガーイベント機能ユーザーがプロセスを開始するきっかけとなるイベント新しい顧客が申し込む
機能プロセス要件の基本的で、単独で実行できる単位。ひとまとまりのデータ移動の連なり「新規顧客の登録」
データグループソフトウェアがデータを扱う必要のある1つの対象について記述した、データ属性のまとまり顧客:氏名、住所、税番号、メールアドレス
データ移動1つのデータグループの移動。4種類がある下記参照

4つのデータ移動:

計数を左右する測定ルールのうち、いくつかを挙げます:

結果は比例尺度で表されるため、規模は足し合わせたり比較したりできます。40 CFPの部分が2つあれば合計で80 CFPになり、小計は機能グループごとにも示せます。

具体例:「新規顧客の登録」

シンプルな要件を例にとります。「事務担当者が新規顧客の情報(氏名、住所、税番号、メールアドレス)を登録します。システムは、その顧客がまだ登録されていないことを確認し、保存して、成功またはエラーを通知します。」測定のステップは次のとおりです:

  1. 機能ユーザーは事務担当者で、トリガーイベントは新しい顧客が申し込むことです。
  2. データグループは「顧客」です。4つのデータ属性は同じ対象について記述しているため、1つのグループになります。
  3. データ移動を要件の文から特定し、それぞれを数えます。
ステップデータ移動データグループ規模
事務担当者がフォームを送信するEntry(入力)顧客1 CFP
システムが、顧客がすでに存在するかを確認するRead(読み込み)顧客1 CFP
システムが新規顧客を保存するWrite(書き込み)顧客1 CFP
成功またはいずれかのエラーの通知Exit(出力)エラーメッセージと確認メッセージ1 CFP
合計4つのデータ移動1つのデータグループ4 CFP

COSMICのウェブサイトで公開されているガイドの「新しい従業員の登録」の例も、同じように構成されています。要件の変更は、規模に次のように表れます:

この例からは、測定を検証できる理由もわかります。各CFPの背後には、名前の付いた要件、データグループ、ルールがあります。誰かが異議を唱えた場合でも、どの行が問題なのかを正確に示せます。

早めに測定し、あとで精緻化する

COSMICの測定は、測定の目的と範囲を定めることから始まります。何を測定するのか、何を含めるのか、結果を何に使うのかです。正確な測定には、機能プロセスとそのデータ移動を特定できるほど詳細な要件が必要です。プロジェクトの初期には、そのような要件がまだないことも少なくありません。その場合に向けて、COSMICは初期の規模推定のために公開されている近似手法を勧めており、要件を詳しく定めたあとで正確な測定を行うことができます。

手法のガイドラインは、当初は非機能的に見える多くの要望(たとえば応答時間や使いやすさ)が、プロジェクトの進行とともにソフトウェアの機能に変わり、そのために規模が見かけ上増えることにも注意を促しています。これは測定の欠陥ではなく、要件がより正確になったことを示しています。そのため実務上は、仕様を項目ごとに書き、変更を同じ手法で測り直し、変更の規模を別に示すことをお勧めします。そうすれば、作業範囲の拡大は気づかないうちに起こるのではなく、数値として見えるようになります。

比較:工数、ストーリーポイント、IFPUG、COSMIC

観点工数の推定ストーリーポイントIFPUGファンクションポイントCOSMICファンクションポイント
何を表すか推定する人が見込む作業チームによる相対的な推定。規模、工数、期間のどれを表すのかが常に明確とは限らない機能規模機能規模
標準化されているかいいえいいえはい、ISO/IEC 20926:2009はい、ISO/IEC 19761:2011
何に左右されるか推定する人の経験、慎重さ、チームそのチーム。チームごとに意味が異なる要件要件
外部から検証できるか推定する人の説明に基づいてのみチームの外からはほとんどできないはい、公開されたルールに基づいてはい、公開され無料で入手できるルールに基づいて
単位時間チーム独自のポイントIFPUGファンクションポイントCFP、1 CFP = 1データ移動
最も適した用途短く、よく理解されたタスクの計画チーム自身のスプリント計画規模の測定、比較規模の測定、比較、お見積もりとスケジュールの基礎

工数の推定は悪い道具ではなく、測っているものが違うだけです。それは見込まれる作業であり、タスクの規模だけでなく、チームの知識、ツール、慎重さにも左右されます。ストーリーポイントはチーム内の計画には役立ちますが、COSMICのウェブサイトで公開されているガイドによれば主観的であり、その意味はチームごとに異なります。IFPUGとCOSMICはどちらも標準化された機能規模ですが、ルールが異なるため、2つの手法の数値を互いに置き換えることはできません。

なぜ測定した規模のほうが信頼できる基礎になるのですか?

タイトルの問いに正確に答えると、COSMICは工数をより正確に推定するのではなく、タスクの大きさを測定し、それによって工数の推定がより信頼できるものになります。理由は次のとおりです:

COSMICのガイドは、CFPで測定した規模が、ストーリーポイントで表した推定よりも実際の工数と密接に連動したという複数の調査を引用しています。同じガイドは、規模から推定した工数が信頼できるのは、開発プロセスに十分な再現性があり、工数が主に規模によって決まる場合であることにも注意を促しています。つまり、測定した規模はより良い出発点ですが、良い推定には生産性も把握しておく必要があります。

COSMICが測定しないものは何ですか?

COSMICの規模は機能を測定するものであり、手法の説明もそのことを明言しています。表さないものは次のとおりです:

そのため良いお見積もりは、測定した規模とあわせて、規模では表せないものを別に示します。連携、非機能要件、独自の画面とグラフィック、複数のプラットフォーム、データ移行、複雑な計算、リアルタイムの動作です。当社のお見積もりでは、これらの項目をこのように記載しています。詳しくは料金の考え方のページでご説明しています。

当社自身の業務ではどのように使っていますか?

当社は、開発の機能規模をCOSMICファンクションポイントで測定しています。測定のために、人工知能の支援を受けた独自のワークフローを構築し、その結果は見直しのラウンドで人が確認します。ステップは次のとおりです:

  1. 項目別の仕様: 開発を機能グループに分け、それぞれを同じテンプレートで記述します。目的、アクター、データ、機能、AI機能、そして対象外のものです(仕事の進め方をご覧ください)。
  2. 互いに独立した複数回の計数: 各機能グループを、複数の言語モデルがそれぞれ複数回数えます。計数のばらつきが不確かさを示します。
  3. 照合のラウンド: 各機能プロセスが、複数の記述に登場する場合でも、ちょうど1回だけ数えられるようにします。
  4. 見直し: 測定を確認し、不確かな点を明らかにし、必要に応じて自動的な統合を手作業で修正します。
  5. 確定: 完成した測定は変更できないバージョンとして確定でき、それが契約の基礎になります。

既存システムの追加開発では、既存の部分を別に記述するため、規模には新しい部分だけが含まれます。測定は、機能規模では表せないものも示します。

規模からどのようにお見積もりとスケジュールを作成するのですか?

お見積もりの料金は、測定した規模から算出し、規模では表せない項目を加えます。規模は機能グループごとにも把握できるため、スケジュールもそれに基づいて組み立てます。各段階の順序、デモの内容、期日です。途中で新しい要望が生まれた場合も同じように測定するため、作業範囲がどれだけ変わり、それが料金とスケジュールにとって何を意味するのかがわかります。そのため具体的な料金と期日は、最初の会話をもとにではなく、測定のあとでお伝えします。

規模による2つの見積もりの比較

複数の開発会社に見積もりを依頼する場合、規模は、それらが同じタスクに対するものかどうかを判断する助けになります。次のように進めることをお勧めします:

  1. 同じ仕様: 見積もりを提出するすべての会社に、同じ項目別の記述を渡します。
  2. 規模とプロセスの一覧: どの規模と、どの機能プロセスに対して料金を出したのかを確認してください。
  3. 違いの理由: 2つの見積もりが異なる場合、規模、規模では表せない項目、規模あたりの単価のどこが異なるのかを確認してください。
  4. 別項目: 何が別の行に記載されているか(連携、データ移行、運用)、何が料金に含まれていないかを尋ねてください。
  5. 変更の扱い: 途中での変更をどのように測定し、料金に反映するのかを尋ねてください。

見積もりを提出する会社が機能規模を測定していない場合でも、同じ項目別のプロセス一覧に対して料金を出していれば、その見積もりは比較できます。開発会社選びのほかの観点についてはソフトウェア開発会社はどのように選べばよいですか?の記事でご説明しています。また、そもそもオーダーメイド開発が必要かどうかは、オーダーメイドのソフトウェアか、既製のソリューションか?の記事が判断の助けになります。

よくあるご質問

COSMICファンクションポイントとは何ですか?

COSMICファンクションポイント(CFP)は、ISO/IEC 19761規格に基づく、ソフトウェアの機能規模の単位です。1 CFPは1つのデータ移動、つまり機能プロセスにおける1つのデータグループの入力、出力、読み込み、書き込みのいずれかです。ソフトウェアの規模は、そのプロセスのデータ移動の合計です。

工数の推定とはどう違いますか?

工数の推定は見込まれる作業を示すもので、推定する人とチームによって変わります。COSMICは、公開されたルールを使って要件からタスクの規模を測定するため、同じ仕様からであれば、ほかの人も同じ結果にたどり着けます。工数は、そのあとで規模と実績に基づく生産性から導き出せます。

COSMICが測定しないものは何ですか?

規格によれば、COSMICは複雑な数学的アルゴリズムや連続信号(音声、画像)の処理の測定を想定して作られておらず、性能や技術に関する制約といった本来の非機能要件もCFPでは表しません。良いお見積もりは、これらを別の項目として示します。

誰が測定し、その測定は検証できますか?

測定は、手法を理解している測定者が行います。当社では、AIの支援を受けたワークフローが計数し、その結果を人が見直します。ルールは公開されており、測定はプロセスごとに文書化されているため、手法を理解している別の専門家が同じ仕様から検証できます。

規模からどのようにお見積もりを作成するのですか?

料金は測定した規模から算出し、規模では表せないもの(連携、非機能要件、独自のグラフィック、複数のプラットフォーム、データ移行)を加えます。スケジュールは機能グループごとの規模に基づいて組み立て、変更も同じように測定します。詳しくは料金の考え方のページをご覧ください。

当社がお手伝いできること

オーダーメイドのソフトウェアをご検討中でしたら、項目別の仕様を一緒に書き、その規模をCOSMICファンクションポイントで測定し、そこからお見積もりとスケジュールを作成します。ご要望に応じて秘密保持契約(NDA)を締結します。引き渡し後の運用・保守もお引き受けします。ソースコードと利用権の扱いは、契約で定めます。初回のご相談は無料です。お問い合わせのページに記載の連絡先までご連絡ください。

出典