第 2 章 問題点の分析
2.3.2 LOC と FP それぞれの特徴
段階的見積の導入によりリスクは徐々に低減可能となるが,ソフトウェア開発の最終成 果物はソフトウェアであり,最終的には規模を表現するにあたりFPかLOC,あるいは双 方を選択することになる.
図2-10で2つの指標を比較する.
FPはソフトウェアの設計段階から利用可能で客観性のある指標であるのに対し,LOC はソースコードから直接計測可能で計測コストが安い.また古くから使われているため,
パートナーシップの確立しているユーザ,ベンダ間は共通認識があり,特に日本では基軸 通貨的位置づけにある.
FPはエンタプライズ系アプリケーションの計測向けにISO/IEC 20926としてIFPAG 法が規格化されており,計測の専門家を養成することで客観的にソフトウェア規模を計測 できる.
IFPUG 法はシステムの外部仕様を利用してソフトウェアの規模を算出する.LOC が
ソースコードから自動計測が可能なことに比すると,人手が多くかかり,計測にコストを 要す.もちろんFPを自動計測可能なように外部仕様を形式的に記述するという仕掛けは 実現可能だろうが,外部仕様書としての実用性も必要とされ,加えて外部仕様を実現する 手段は近年,従来のHTML中心のWeb画面やPCクライアントに加え,RIA,スマート フォン,Webインタフェースなど多様性があり,広く活用される形式を提案するのは,そ れ自体が大きなチャレンジになるのではないかと思われる.
26
図2-10 2つの方法の比較(FPとLOC)
Figure 2-10 Comparison of two methods.
LOCが客観性に欠け,またユーザに対して提供する機能量を示すメジャーとして不適切 なのは以下のような要因があるからである[20].
(a) プログラム作成者の能力差,嗜好により行数に差がでる.
(b) 同じ機能を実装する場合においてもプログラミング言語ごとに要する行数が異なる.
言語間で比較すると同等機能を実装して行数の少ない言語のほうが,一般に生産性は高い というパラドックスを抱えている.
(c) (b)の派生要因となるが,ビジュアル言語など直接LOCでは計測困難な部位を持つ言 語が存在する.
(d) 同じく(b)の派生要因であるが,ライブラリやフレームワークを利用することで大きく 行数は変わる.
FP (Function Point) LOC (Lines of code) FP
(ISO/IEC 20926 IFPUG)
27
図2-11 ソフトウェア開発における各工程の工数比
Figure 2-11 Phase-based actual effort ratio (Software Development).
以上のような問題があるものの,現在でもLOCが用いられる大きな理由は,ソフトウェ ア開発において非常に大きな工数を要する実装プロセス(Implementation Process,およ そ全体開発工数の27%~46%を占める[21])及び以降のテストプロセスにおいて,計測が誰 にでも容易で,プログラムの開発進捗と品質を管理する基本単位として有用だからである.
2.3.3 2つの指標を利用したプロジェクトマネジメント手法
ここまで述べた通り,FPとLOCは一長一短がある.仮に2つの指標を使い分け可能と 考えればどうだろうか.FP は設計の初期段階から使え,客観性が高いため,ユーザ,ベ ンダ間の合意を得るのに向いている.一方LOC はソースコードとして成果物が見えてく ると効果を発揮する.プロジェクトの前半をFPで,後半をLOC中心でプロジェクトを マネジメント出来れば,プロジェクトの進捗の見通しは非常に良いものとなる.
FP
LOC
(9 20%
16%$
(11 22%
17%$
(27 46%
38%$
(10 $
16%$
21%
13%$
(6 18%
28
図2-12 LOC適用のタイミング Figure 2-12 Timing of LOC turning on.
FPは計測に人手によるコストがかかるので,プロジェクト後半でLOCに乗り換え可能 なことは管理コスト面でもメリットがある.
LOCは,実装プロセスの最初ではまだ計測不能(Can’t measure LOC)であり,実装プロ セス終盤にならないと計測できない.しかし,実装プロセスは最大の工数を要すプロセス であり,ソースコードを生産する工程であることから,LOCの見積値をもってプロジェク トの進捗と品質を管理するのが理想である.
FP
LOC
FP FP
(IFPUG)
Source Code LOC
?
LOC
(9 20%
16%$
(11 22%
17%$
(27 46%
38%$
(10 $
16%$
21%
13%$
(6 18%
29
図2-13 FPからLOCへの変換 Figure 2-13 Conversion from FP to LOC.
そこで,図2-13に示すように,基本設計(外部設計:External design)で計測されたFP を利用し,詳細設計(内部設計:Internal design)を参考に補足を加え(Reference to design
documents),LOCが算出出来れば良い.