ソフトウェアメトリクスに関するメモ

ソフトウェアメトリクスに関するキーワードをメモ。
ソフトウェアメトリクスの研究動向(PDF)より。

ソフトウェアメトリクスの定義

ソフトウェア開発プロセス、資源、成果物の実態がソフトウェアを開発するという点から見て適当であるかどうかを計測し、予測するための手段。

目的

  • 現在開発中のソフトウェアや進行中のプロセスの品質を開発基準と比較
  • 将来の品質の予測(開発基準との比較による)
  • 品質と開発プロセスの改善

メトリクスはさまざまな意味で用いられる

  • 数値:成果物、プロセスから取得できる具体的な数値
  • 尺度:分類基準
    • 比例尺度:数値の差とともに数値の比にも意味がある
    • 順序尺度:数値の差のみに意味がある
    • 名義尺度:観察される変数と数値を対応させる
  • 属性:プロダクト、プロセス、あるいは開発に要する資源を識別できる性質
    • モジュール間結合度、ソフトウェア信頼性 など
  • モデル:資源の間の関係を表す理論的モデル
    • ソフトウェア信頼度成長モデル、COCOMOモデル

計測対象

  • 成果物:開発の結果得られたもの
  • 資源:開発作業の入力となったもの
  • プロセス:成果物を作り出すための作業

成果物メトリクス

  • コードメトリクス
    • 行数(LOC)
    • コード中に含まれる演算子と比演算子の種類
      • 出現回数からプログラミング労力等を算出
    • 複雑さメトリクス
      • データ構造やデータフローの複雑さ(Span:同一識別子が参照される距離)
      • 制御構造の複雑さ(サイクロマチック数)
  • 設計メトリクス
    • モジュール結合度
    • モジュール凝集度
    • ファンクションポイント
    • C&Kメトリクス
  • プロセスメトリクス
    • 時間、コスト工数
    • プロセス実行時に発生するイベント数
  • 資源メトリクス
    • 人的資源
    • 生産性