ソフトウェア測定法

ソフトウェア測定法（ソフトウェアそくていほう）またはソフトウェアメトリック（英: "Software metric" ）とは、ソフトウェアやその仕様の属性の尺度である。
定量的手法の威力は他の分野で証明されていたことから、計算機科学の分野でも同様の手法をソフトウェア開発に持ち込もうとする努力が続けられてきた。トム・デマルコは "DeMarco, T. (1982) Controlling Software Projects: Management, Measurement &amp; Estimation, Yourdon Press, New York, USA, p3" の中で「測定できないものは制御できない」と記している。
限界.
詳細設計に先駆けてプログラムの量の事前予測評価をしても、満足できるような結果を得るのは困難である。従って、ソフトウェア測定法の実用性は測定プロセスが安定する狭い領域に制限されている。
そのため、能力成熟度モデル統合や ISO 9000 のようなマネジメント方法論では、開発工程そのものを対象とした測定法（計量）により、開発工程の監視や制御を行えるようにする。
ソフトウェア開発工程に関する測定法の例:
批判.
ソフトウェア測定法には以下のような弱点や批判がある。
賭博型測定法.
開発現場の経験から、測定法の設計によって測定対象となる人々の行動に一種の影響が出てくるとされている。よく言われるのは「測定したものしか得られない」（あるいは「何を望んでいるのかを忘れないように」）である。
よく知られている例はファンクションポイント法をソフトウェア開発工程の改善プロジェクトでの生産性の尺度に使った場合である。ファンクションポイント当たりのコストを低減する最も単純な方法は、ファンクションポイントをより細かくすることである。ファンクションポイントには標準といえる測定法がないため、測定法は一種の博打となる。つまりイカサマが行われる可能性が出てくる。時と共に恣意的にファンクションポイントを小さく分割していけば、測定された数値上は生産性が上がったかのように見せかけられる。
ある研究によれば、測定に際して目標を明確にして周知し、何をするのかを明確化すべきであるとしている。テスト駆動開発はこの考え方の一種の実践であり、開発者はテストを通ることを目的としてコードを書くことを求められる。それでもコードに誤りがある場合、それはテスト自体に誤りがあったということになる。測定法設計では、その賭博性を理解し、チームが正しい目標に向かって進むよう注意しなければならない。
均衡型測定法.
「何を望んでいるのかを忘れないように」するためのひとつの手法は、複数の測定法で均衡をとるようにすることである。ソフトウェア開発プロジェクトでは、次のような観点でそれぞれ測定法を用意することが推奨される。
これらの一部を強調しすぎると、チームの動機付けに不均衡が生じ、プロジェクトが機能障害に陥る可能性がある。
バランスト・スコアカードは、各種観点の複数の測定法を管理するための便利なツールとなる。