ソフトウェアの計量化
ソフトウェアを開発するには,開発に先だって必要な要員,期間,費用,コンピュータ資源などを見積もり,できるだけ正確な開発計画を立てる必要がある.
また,開発過程においては,品質管理や工程管理を効果的に行い,品質の良いソフトウェアを効率的に開発していくことが重要である.
このようなソフトウェア開発の各過程において,効率的かつ正確な開発管理を行うには対象とするソフトウェアの特徴や開発プロセスを目的に応じて種々の観点から定量的に把握することが重要になる. ソフトウェアの定量的な把握すなわちソフトウェア計量化の目的は,ソフトウェア開発の計画や遂行において役に立つデータを提供し,ソフトウェア開発プロジェクトの特性を予測,管理,制御できるようにすることである.
計量尺度の分類
特性による分類
ソフトウェアの計量の対象は次の3つに分類できる.
- プロセス
ソフトウェアの生産に関連して行われる任意の一連の活動
- 生産物
プロセスの結果として生み出されるソースプログラムやドキュメントのような具体的な物
- 資源
プロセスの入力となる物
このような計量対象に対してソフトウェアの計量尺度をその値の持つ特性から分類すると次の3つに分けられる.
- 絶対尺度
プロセス,生産物あるいは資源それ自身の持つ値として測定できる尺度である. 主観や外部的環境に左右されることなく本質的に高い精度で計測できるデータである.
絶対尺度には次のようなものがある.
- 開発工数
- プログラム規模
- 使用資源量
- 設計ドキュメントの量
- マニュアルの量
- 検査項目数
- 発生バグ数
- プログラムの複雑度
- 相対尺度
プロセス,生産物あるいは資源がその外部環境における他の要因との関連においてのみ測定できる尺度である.例えば,プログラムの信頼性はプログラムそれ自身のみでなく,コンパイラやマシンあるいは使用者などに依存している.また,プログラムの生産性は人的資源やプログラムの生産過程(プロセス)などと密接に関連している.
これらの尺度は,多分に人間の主観的評価により求められるデータであり,絶対的な正確さで計測することはできない.しかし,プログラムの生産性や品質などの変動要因を説明する重要なデータである.プログラマの経験や技術力,使用ツールの効果,開発環境の充足度などが重要な要因となる.
- 正規化尺度
プログラムの生産性や品質などの特性を比較評価するための尺度であり,絶対尺度や相対尺度を基に評価対象や目的に応じてこれらの尺度を合成して定義される尺度である.
目的による分類
ソフトウェアの開発段階に応じて必要なソフトウェアの計量尺度は異なる.このような尺度の利用目的に応じた分類を行なうと,計量尺度は次の4つに分けられる.
- 開発見積り評価
ソフトウェアを開発するに際しては,開発規模や開発工数の見積りを行い,効率的な開発管理計画を立てなければならない.そのためには,開発規模や開発工数の評価尺度とそれを見積もるモデルが必要となる.
- 設計評価
プログラムの設計段階における評価尺度である.モジュール化によるプログラムの階層化設計,モジュール間の独立性や結合の度合いなど主としてプログラムの構造を評価する尺度が計量対象となる.
- プログラミング評価
プログラムのコーディング段階,すなわちソースプログラムを対象とした評価尺度である.プログラムの複雑さが主な計量対象になる.
- 製品評価
開発されたプログラム製品の評価尺度である.主に品質が計量対象になる.また,プログラムの生産性や移植性もプログラムの開発管理の上からは重要な評価尺度である.