ソフトウェアメトリクス

読み:そふとうぇあめとりくす / 英語表記:software metrics

ソフトウェアの規模、複雑さ、品質などを、定量的に測るための指標。ソースコードの行数やバグの数などから算出し、品質の管理や見積もりに使う。

イマシルちゃんの解説

ソフトウェアメトリクスは、プログラムの規模や品質などを数値で確かめるための指標だよ。
例えば、見つかったバグの件数をソースコードの規模で割ったバグ密度があるんだ。
単にバグの件数を比べるより、プログラムの大きさの違いを考慮して調べられるよ。
同じ測り方で過去の結果やほかの部分と比べると、重点的に確認したい箇所を探す手掛かりになるんだ。
ただ、見つかったバグが少ないだけでは、テストが足りない可能性もあるの。
数値だけで良し悪しを決めず、調べた条件も合わせて改善を考えるために使うんだよ。

より深い解説

定義

ソフトウェアメトリクスは、ソフトウェアやその開発の過程の特性を、数値として測定するための尺度である。測定した値をもとに、品質の評価、問題のある箇所の特定、工数の見積もり、プロジェクトの進捗の管理などを行う。

主なメトリクス

メトリクス内容
ソースコードの行数(LOC、KLOC)規模を表す。KLOCは1,000行
ファンクションポイント外部への入出力やファイルなどの機能の量から、規模を見積もる
サイクロマティック複雑度プログラムの制御の流れの複雑さ(分岐の多さ)を表す
バグ密度規模あたりのバグの数(例:1KLOCあたりのバグの件数)
テスト密度規模あたりのテスト項目の数
コードカバレッジテストで実行された命令や分岐の割合

サイクロマティック複雑度

サイクロマティック複雑度(マッケーブの複雑度)は、プログラムの制御フローグラフから、次の式で求める。

複雑度 = 辺の数 − ノードの数 + 2

簡単には「分岐(if、ループの条件など)の数 + 1」で求められる。値が大きいほど、テストすべき経路が多く、誤りが入りやすい。一般に、10を超えるような関数は、分割を検討する目安とされる。

バグ密度の使い方

状況考えられること
バグ密度が基準より高い品質が悪い可能性。設計やコーディングを見直す
バグ密度が基準より極端に低い品質がよいとは限らない。テストが不十分でバグを見つけられていない可能性がある

バグ密度やテスト密度は、過去のプロジェクトの実績などから基準値を決め、その範囲に収まっているかを確認するのに使う。

メトリクスを使うときの注意

開発を支援するツールとの関係

バグの数とソースコードの規模などから、品質管理のためのメトリクスを算出するのは、メトリクスの計測ツール(コード解析ツールなど)の役割である。見つかったバグそのものの記録と、修正の計画や履歴を管理するのは、バグトラッキングシステムの役割である。

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑