多くのIBM i (AS/400)ユーザー企業で行われているソース行数、オブジェクト数を用いた見積りでは、例えば、RPGで、ほぼ同じステップ数のプログラムはロジックの複雑さや外部連携オブジェクトの数などに関係なく、メンテナンスのコストや工数が同じ額や数値となってしまいます。
メトリクス分析は、この「複雑さ」や「連携数」を数値化し、測定することにより、ソース行数やオブジェクト数だけでは正確に測れなかった「メンテナンスのしやすさ」を定量化し、コスト及び工数の見積精度向上に繋げるものとなります。

特徴

情報工学に基づいた複雑度計測
X-Analysisは以下の3つの指標を用いて、ソースメンバー毎の複雑度を測っています。(下図の赤枠の箇所)

  • サイクロマティック(循環)複雑度解析
  • ハルステッドボリューム解析
  • 保守容易性(メンテナンスインデクス)解析





  • 3つの指標の計算内容は以下になります。
    サイクロマティック複雑度はフローチャートのすべての経路パターンを測定しているとも言い換えられます。

    3つの指標以外にアクセスファイル数、関係デバイス数、呼び元プログラム数、呼び先プログラム数を取得しており、1本のプログラムとしての複雑性だけでなく、関係性の複雑性も数値化を行っています。






    複雑性の要因分析
    サイクロマティック複雑度の要因としては、下記の定性テーマに基づいた分析リストも出力されます。

    条件文や繰り返し文の多重化や、GOTO文の使用などプログラムのフロー上の経路が増加する要因を中心に解析を行っています。
    各解析テーマに該当する個別プログラムの一覧も記載されるため、該当プログラムの余分な条件や繰り返しのロジックを削ったスリム化や部品化、ロジック共通化による単純化を行うことにより、サイクロマティック複雑度の値は改善されます。
    また、連動して保守容易性の値も改善されることとなります。