メインコンテンツへ
ソフトウェア

ソフトウェアメトリクスに関する次の記述のうち、正しいものはどれか。

ア.LOC(コード行数)は言語・スタイルに依存しないため、異なる言語間の生産性比較に最適なメトリクスである。
イ.ファンクションポイント法は、プログラムのバグ数を直接カウントして規模を算出する手法である。
ウ.McCabeの循環複雑度(CC)はプログラムの制御フローグラフの辺数・節点数から求め、値が大きいほどテストが難しいとされる。正解
エ.ファンクションポイント法は開発が完了した後でないと計測できないため、見積もりには使えない。

解説

ソフトウェアメトリクスは「ソフトウェアの健康診断」。LOCは体重計、FPは機能の棚卸し、CCは迷路の複雑さを測るメジャー——どれも一面だけを映す鏡。

なぜ ウ が正解か

ウが正解。McCabeの循環複雑度 CC = E - N + 2P(E=辺数、N=節点数、P=連結成分数、通常P=1)。CC=1が最もシンプル(分岐なし)、10を超えると高リスクとされる。値が大きいほど独立したパスが多く、テストケース数も増加する。

なぜ ア は間違いか

LOCは言語・コーディングスタイルに強く依存し、Pythonの1行とJavaの10行が同等機能という場面もある。異言語比較には不向き。

なぜ イ は間違いか

FP法はバグ数ではなく「外部入出力・外部照会・内部論理ファイル・外部インタフェース」等の機能の重み付き合計で規模を算出する。

なぜ エ は間違いか

FP法は要件定義段階の機能仕様から計測できるため、初期見積もりに広く使われる。開発後のみという制約はない。

出典: AI生成問題(学習用)