第 10 章 ファンクション ポイント 私 個 人 の 失 敗 から ファンクション ポイントの 話 は 私 個 人 の 失 敗 談 から 始 めたい 1980 年 頃 当 時 私 が 勤 めていた 日 興 證 券 が 債 券 投 資 情 報 システム と 呼 ぶ 情 報 システムを 開 発 することにした 私 はその 情 報 システムの 規 模 を 100 万 ステップと 見 積 もった その 情 報 システムの 開 発 を 受 託 することになる 某 SI 企 業 の 技 術 者 は その 規 模 を 200 万 ス テップと 見 積 もった 100 万 ステップか 200 万 ステップかで 私 とその 企 業 の 営 業 担 当 者 の 間 でしばらく 激 しい 論 争 をして 最 終 的 に 私 が 勝 って 100 万 ステップでその SI 企 業 と 契 約 し 開 発 作 業 に 入 った 2 年 後 にその 情 報 システムが 完 成 し 結 果 をチェックすると 開 発 したステップ 数 (ステート メント 数 )はおおよそ 200 万 だった つまり SI 企 業 の 技 術 者 の 見 積 もりが 正 しかったことが 証 明 された 別 の 言 い 方 をすれば 私 の 見 積 もりは 大 外 れだった その SI 企 業 はこの 開 発 で 大 赤 字 を 出 した 私 はそれまで 情 報 システムの 規 模 の 見 積 もりにそれなりに 自 信 を 持 ってい た しかしこの 結 果 を 受 けて 私 は 完 全 に 自 信 を 喪 失 し それ 以 降 私 は 情 報 システムの 規 模 の 見 積 もりを 一 切 行 わないことにした 当 時 日 興 證 券 の 子 会 社 の 日 興 システムセンターは 情 報 システムの 開 発 にプログラム 言 語 として PL/1 を 使 っていた したがって 私 の 見 積 もりは PL/1 でその 情 報 システムを 開 発 する 前 提 に 立 っていた 一 方 その SI 企 業 は もっぱら COBOL を 使 用 していた したがって その 企 業 の 技 術 者 の 見 積 もりは COBOL ベースのものだった そして 実 際 の 開 発 も COBOL を 使 ってなされた つまり 規 模 の 数 字 に 違 いは 使 用 するプログラム 言 語 の 表 現 力 の 違 いに 起 因 したものだった 1980 年 頃 には 私 の 耳 にファンクション ポイントの 話 はまだ 届 いていなかった したがっ て 同 じ 情 報 システムの 開 発 で 使 用 するプログラム 言 語 が 変 わることによって 開 発 する 量 が 大 きく 変 わることを 私 は 知 らなかった その 後 ケーパース ジョーンズ(Capers Jones)の 本 1でファンクション ポイントを 知 り 結 果 として 私 の 見 積 もりもそう 外 れていた 訳 ではないこ とを 知 った 私 はそれなりに 自 信 を 取 り 戻 したけれど 時 はすでに 遅 かった 長 い 間 情 報 シス テムの 規 模 の 見 積 もりを 避 け 続 けていたため 自 信 は 取 り 戻 したけれど 以 前 の 能 力 が 戻 った 訳 ではなかった これが 私 の 失 敗 談 である プログラムのステップ 数 今 でもまだ 情 報 システムの 開 発 で 規 模 の 見 積 もりにプログラムのステップ 数 が 使 用 される ことがある しかしソフトウェアの 規 模 の 単 位 にステップ 数 を 使 用 することは 以 下 の 理 由 で 望 ましくない JONES08 使 用 するプログラム 言 語 によって 数 値 に 大 きな 差 が 出 る ステップ 数 の 数 え 方 にいくつかの 方 法 があって 統 一 されたルールがない そのためステップ 数 を 使 って 表 現 されたプロジェクトの 生 産 性 や 品 質 のデータは 同 じ 言 語 を 使 用 したものだけの 間 でも 比 較 が 難 しい 1 参 考 文 献 で 挙 げたケーパース ジョ-ンズの 今 の 本 JONES08 は 第 3 版 だが その 初 版 の 翻 訳 本 は 1993 年 に 発 行 されている 私 は その 直 後 にその 本 を 読 んだ 10-1
最 近 は 複 数 の 言 語 を 使 用 するプロジェクトがあったり Visual Basic のようにプルダ ウンメニュー 方 式 などでプログラミングする 言 語 が 使 われたりで ステップ 数 の 概 念 が 希 薄 になってきている プログラムのステップ 数 は プロジェクトの 中 頃 のプログラム 構 築 の 作 業 が 終 わらな ければ 確 定 できない アセンブラのような 低 水 準 言 語 を 使 用 することで Java などの 高 水 準 言 語 と 比 較 し て 高 い 生 産 性 を 達 成 したような 結 果 を 出 す (この 詳 細 な 話 は 後 述 する ) 利 用 者 や 開 発 を 委 託 した 立 場 の 人 には プログラムのステップ 数 は 意 味 の 無 いもので ある 要 件 定 義 書 や 各 種 設 計 書 利 用 者 用 の 文 書 などはプログラムのステップ 数 とは 直 接 関 係 しない ここで 記 述 したようなことから 生 じる 問 題 を 避 けるため プログラムのステップ 数 に 代 えて ファンクション ポイントを 使 用 することが 好 ましい ファンクション ポイントとは 何 か それでは ファンクション ポイントとは 何 だろうか ISO と IEC IEEE が 合 同 で 作 成 した 用 語 集 には ファンクション ポイントの 説 明 として 以 下 の 2 つが 挙 げられている[ISO10a] 1. アプリケーション 又 はプロジェクトのサイズを 表 す 単 位 2. アプリケーション ソフトウェアの 機 能 的 なサイズを 表 す 量 後 述 するように 今 はファンクション ポイントに 多 くの 種 類 がある しかし 当 初 は 1 つの 種 類 しかなく それはビジネス アプリケーションの 機 能 の 大 きさを 表 すものだった つまりこれまで 述 べてきたステップ 数 による 計 測 の 弊 害 を 避 けるために 1979 年 に 当 時 IBM に 勤 めていた A.J.アルブレヒト(A. J. Albrecht)がファンクション ポイントの 構 想 を 発 表 した 2 アルブレヒトは ビジネス アプリケーションの 機 能 の 大 きさは 次 の 5 つで 表 すことができ るとした 入 力 出 力 照 会 内 部 論 理 ファイル 外 部 インタフェースファイル そしてこのそれぞれが 3 段 階 の 複 雑 さを 持 ち それによって 機 能 の 大 きさが 変 わるとした その 複 雑 さによる 機 能 の 大 きさの 変 化 について 今 の IFPUG 法 の 数 値 を 図 表 12-1 に 示 す つまりあるプログラムに 注 目 すると そのプログラムの 前 記 5 種 類 の 要 素 のそれぞれの 数 と その 複 雑 度 を 決 定 し 図 表 12-1 で 示 す 数 値 を 合 計 することで そのプログラムの 機 能 量 が 求 ま る これを 未 調 整 ファンクション ポイント という 2 アルブレヒトは 1979 年 の 秋 に 開 かれた IBM ユーザー 団 体 である GUIDE と SHARE の 合 同 シンポジウムでファンクション ポイントについて 発 表 した 10-2
未 調 整 という 言 葉 が 付 いていることからも 分 かるように ここで 求 めた 数 値 を 調 整 する 方 法 がある 同 じトランザクションの 処 理 といっても 例 えばオンラインの 処 理 とバッチ 方 式 での 処 理 では 難 しさが 異 なることがある 集 中 処 理 方 式 の 場 合 と 分 散 処 理 の 場 合 でも やはり 難 しさは 異 なるだろう したがって 図 表 10-2 に 示 す 14 項 目 を 調 整 のための 項 目 として それ ぞれについて 今 ファンクション ポイントを 求 めようとしている 情 報 システムについて 0 から 5 までの 6 段 階 で 評 価 し まずその 評 価 点 の 合 計 値 を 出 す そしてその 合 計 値 を 使 って ファ ンクション ポイントの 数 値 を 補 正 するという 段 階 で 調 整 を 行 う 3 図 表 12-1 複 雑 さの 変 動 による 機 能 の 大 きさの 変 化 [UZAWA13] 複 雑 度 低 中 高 入 力 3 4 6 出 力 4 6 7 照 会 3 4 6 論 理 ファイル 7 10 15 外 部 インタフェースファイル 5 7 10 図 表 10-2 調 整 のための 項 目 [UZAWA13] 1 データ 通 信 2 分 散 データ 処 理 3 性 能 4 高 負 荷 構 成 5 トランザクション 率 6 オンラインデータ 入 力 7 利 用 者 効 率 8 オンライン 更 新 9 複 雑 な 処 理 10 再 利 用 可 能 性 11 導 入 容 易 性 12 運 用 性 13 複 数 サイト 14 変 更 容 易 性 この 調 整 係 数 の 合 計 値 (TDI)を 次 式 に 代 入 して 調 整 係 数 (VAF)を 求 める VAF = (TDI * 0.01)+ 0.65 つまりこの 方 式 で 調 整 した 場 合 調 整 後 のファンクション ポイントは 未 調 整 ファンクショ ン ポイントの 65%から 130%の 範 囲 になる 4 3 未 修 正 ファンクション ポイントを 求 める 時 の 複 雑 度 の 判 定 は さほど 難 しくはないだろ う しかし 調 整 項 目 の 評 価 はかなり 難 しいと 思 われる これに 的 確 に 対 応 しようとすると 後 述 する JFPUG から CPM を 入 手 し 併 せて 教 育 を 受 ける などが 必 要 と 思 われる 4 ここで 述 べているファンクション ポイントの 計 測 方 法 は IFPUG が 発 行 している CPM 10-3
なおこの 計 算 方 式 を 用 いると 要 件 定 義 が 明 確 になった 時 点 でファンクション ポイントの 数 値 を 求 めることができる しかし 一 般 に ファンクション ポイントの 計 測 は 容 易 ではない ファンクション ポイントに 関 わる 団 体 アルブレヒトの 発 表 後 すぐに この 計 測 法 を 広 める 団 体 が 活 動 を 始 めた この 団 体 を International Function Point Users Group(IFPUG)と 呼 ぶ この 団 体 は 会 員 制 の 非 営 利 の 組 織 で ファンクション ポイント 法 の 計 測 ルールを 決 めたり その 計 測 のための 訓 練 を 実 施 したり ソフトウェア 計 測 技 術 の 普 及 や 支 援 を 行 っている[JIS10a] 日 本 にはその 日 本 支 部 があり 日 本 ファンクションポイントユーザー 会 (Japan Function Point Users Group:JFPUG) 5 という JFPUG は 米 国 の IFPUG が 決 めた 計 測 のルールを 記 載 したマニュアル(Counting Practice Manual:CPM)を 翻 訳 して 販 売 したり 計 測 方 法 の 講 習 や 訓 練 を 実 施 したりしている ファンクション ポイントとステップ 数 ケーパース ジョ-ンズはその 著 書 の 中 で いくつかのプログラム 言 語 についてファンクシ ョン ポイント 当 たりのステップ 数 を 提 示 している それを 図 表 10-3 に 示 す 図 表 10-3 1 ファンクション ポイント 当 たりのステップ 数 [JONES08] 世 代 1 2 3 言 語 ステップ 数 /FP 低 中 央 値 高 Basic Aemebly 200 320 450 Macro Asembly 150 213 300 C 60 128 170 Basic 70 128 165 Fortran 75 107 160 ALGOL 68 107 165 COBOL 65 107 150 PASCAL 50 91 125 PL/1 65 80 95 Ada83 60 71 80 Lisp 25 64 80 C++ 30 53 125 Ada9x 28 29 110 Visual Basic 20 32 37 APL 10 32 45 SMALLTALK 15 21 40 SQL 7 12 15 Spread Sheet 3 6 9 IFPUG 法 以 外 にいくつかのファンクション ポイントの 計 測 法 がある その 中 に 逆 算 法 と いうものがあり 実 際 に 記 述 したプログラムのステップ 数 から 図 表 10-3 のような 表 を 使 用 し に 基 づいているため IFPUG 法 と 呼 ばれている 5 JFPUG のホームページの URL は http://www.jfpug.gr.jp/ である 10-4
てファンクション ポイントに 変 換 するもので ある 意 味 で 簡 便 にファンクション ポイント の 数 値 を 求 めることができる しかしケーパース ジョ-ンズは この 方 法 は 誤 差 が 大 きいの で 注 意 するようにと 書 いている[JONES08] 確 かに COBOL を 例 にとると 1 ファンクショ ン ポイント 当 たりのステップ 数 は 最 低 で 65 最 高 で 150 と この 間 に 2 倍 以 上 に 開 きがあ る その 他 のファンクション ポイント 計 測 法 IFPUG 法 については 計 測 法 の 概 要 を 示 した この 方 法 は 今 ではそれに 限 定 されている 訳 ではないが ビジネス アプリケーションの 計 測 からスタートしたのでそれに 向 いたものを 計 測 法 のパラメータで 使 用 している しかし 世 の 中 のソフトウェアは 今 やビジネス アプリケーションだけとは 限 らない 組 込 みソフトがあり 制 御 系 のソフトもある 日 本 はゲームソフトの 分 野 で たいへん 健 闘 してい る 開 発 方 法 にも 構 造 化 技 法 やデータ 中 心 アプローチの 他 に オブジェクト 指 向 技 法 もある これらを 受 けて ファンクション ポイントの 計 測 法 も 今 は IFPUG 法 に 加 えて いくつかの ものが 存 在 している その 中 には ISO が 計 測 法 を 国 際 標 準 にしているものもある 図 表 10-4 で IFPUG 法 を 含 めて 主 なファンクション ポイント 計 測 法 をまとめた 図 表 10-4 主 なファンクション ポイント 計 測 法 ([JONES08] [UZAWA13]) 計 測 法 概 要 ISO 規 格 JIS 規 格 IFPUG 法 Alan J. Albrechtの 手 法 を 引 き 継 いでいる 米 ISO/IEC 20926: JIS X 0142: 国 や 日 本 など 広 く 整 怪 獣 に 普 及 している 2009 2010 COSMIC 法 ソフトウェアの 計 測 に 関 する 国 際 的 な 研 究 グ ISO/IEC 19761: JIS X 0143: ループCOSMICが 考 案 した 手 法 2011 2013 Mark-Ⅱ 法 1983 年 に 英 国 のソフトウェア 研 究 家 Charles ISO/IEC 20968: Symonsが 発 表 した 手 法 2002 NESMA 法 オランダのソフトウェア 協 会 NESMAが 考 案 した ISO/IEC 24570: 手 法 2005 SPR 法 1985 年 に 米 国 のSPR 社 が 発 表 した 手 法 ファンクションポ David Consulting GroupのDavid Herronが 開 イントライト 発 したもの フルファンクショ 1997 年 頃 に ケベック 大 学 のAlain Abranが 開 ンポイント 発 した 手 法 ファンクション ポイントの 数 値 が 分 かっている パターン マッチ 既 存 の 情 報 システムなどと 比 較 することで ング 簡 便 に 数 値 を 求 める ストーリー ポイ ント アジャイル 方 式 の 開 発 で ユーザー 要 求 を 展 開 した ストーリー で 機 能 の 規 模 を 表 現 す る オブジェクトポイ FPの 概 念 をオブジェクト 指 向 の 概 念 と 混 合 し ント たもの 未 調 整 ファンク ションポイント IFPUG 法 で 調 整 作 業 を 行 わないもの ユースケースポ IFPUG 法 の 基 本 要 素 をベースに オブジェクト イント 指 向 のいくつかの 要 素 を 付 加 したもの WEBオブジェク トポイント Webベースのアプリケーション 向 けの 機 能 規 模 測 定 法 逆 算 法 ソースプログラムのステップ 数 からファンクショ ン ポイントを 逆 算 する 方 法 10-5
ステップ 数 を 使 用 することで 生 じる 矛 盾 の 例 ケーパース ジョ-ンズの 著 書 に アセンブラのような 低 水 準 言 語 を 用 いると 生 産 性 が 高 く Java のような 高 水 準 言 語 を 用 いると 生 産 性 が 低 く 出 るという 矛 盾 が 発 生 することについての 詳 細 は 説 明 がある[JONES08] ここで それを 紹 介 したい 仮 に ファンクション ポイントによる 全 体 の 規 模 が 35 である 情 報 システムを アセンブラ と Java を 使 って 開 発 するとする アセンブラには 7,500 ステップが 必 要 であり Java は 2,500 ステップですむ この 概 要 を 図 表 10-5 に 示 す 図 表 10-5 ステップ 数 が 不 適 切 な 例 [JONES08] アセンブラ Java 情 報 システムのコード 行 数 7,500 2,500 コーティング 以 外 の 工 数 ( 人 月 ) 3 3 コーディング 工 数 ( 人 月 ) 3 1 総 プロジェクト 工 数 ( 人 月 ) 6 4 人 月 当 たりのコード 行 数 1,250 625 要 件 定 義 や 設 計 テスト ユーザー 用 の 資 料 の 作 成 などは 使 用 する 言 語 に 関 係 なく 一 定 (3 人 月 )である コーディングはアセンブラでは 3 人 月 Java では 1 人 月 とすると 合 計 の 工 数 は アセンブラの 場 合 6 人 月 Java の 場 合 4 人 月 になる これでそれぞれの 場 合 のステップ 数 (ア センブラは 7,500 Java は 2,500)を 割 ると 人 月 当 たりのコード 行 数 はアセンブラの 場 合 1.250 ステップ/ 人 月 Java の 場 合 625 ステップ/ 人 月 となり アセンブラを 使 用 した 方 が 生 産 性 が 高 いような 数 値 が 出 る これを ファンクション ポイントを 使 って 計 算 すると 当 然 Java の 方 の 生 産 性 が 高 くな る( 図 表 10-6 参 照 ) 図 表 10-6 ファンクション ポイントの 場 合 [JONES08] アセンブラ Java 情 報 システムのファンクション ポイント 35 35 コーティング 以 外 の 工 数 ( 人 月 ) 3 3 コーディング 工 数 ( 人 月 ) 3 1 総 プロジェクト 工 数 ( 人 月 ) 6 4 人 月 当 たりのファンクション ポイント 5.83 8.75 固 定 費 の 大 きな 製 造 プロセスでは 生 産 数 量 が 減 少 すると 単 位 当 たりのコストは 上 昇 する これは 産 業 革 命 直 後 から 分 かっていたことである[JONES08] これが 情 報 システム 開 発 で 現 れた 例 である これも ファンクション ポイントを 使 う 方 がステップ 数 を 使 うより 好 ましいことの 1 つの 例 である 人 名 ケーパース ジョーンズ(Capers Jones) A.J.アルブレヒト(A. J. Albrecht) 10-6
キーワード ファンクション ポイント ステップ 数 未 調 整 ファンクション ポイント IFPUG IFPUG 法 JFPUG CPM 逆 算 法 参 考 文 献 とリンク 先 [ISO10a] ISO/IEC/IEEE, System and software engineering Vocabulary-ISO/IEC/IEEE 24765:2010(E), ISO/IEC, 2010-12-15. [JIS10a] 日 本 工 業 標 準 調 査 会 審 議 ソフトウェア 技 術 - 機 能 規 模 測 定 -IFPUG 機 能 規 模 測 定 法 (IFPUG4.1 版 未 調 整 ファンクションポイント) 計 測 マニュアル 日 本 規 格 協 会 平 成 22 年. [JONES08] Capers Jones 著 富 野 壽 小 坂 恭 一 監 訳 ソフトウェア 開 発 の 定 量 化 手 法 生 産 性 と 品 質 の 向 上 を 目 指 して 第 3 版 構 造 計 画 研 究 所 2010 年. この 本 の 原 書 は 以 下 の 通 りである Capers Jones, Applied Software Measurement: Global Analysis of Productivity and Quality Third Edition, McGraw-Hill, 2008. [UZAWA13] 鵜 澤 仁 著 実 践! 実 例 で 学 ぶファンクションポイント 法 ( 財 ) 経 済 調 査 会 平 成 25 年. (2014 年 ( 平 成 26 年 )5 月 2 日 新 規 作 成 ) 10-7
10-8 第 10 章 ファンクション ポイント