Top / メトリクスプラグイン

メトリクスプラグイン

プラグイン

 拙著に書いたメトリクスプラグインの抜粋です。リファクタリングといっしょに利用すると有効だと思います。--mizkaz

Eclipse Metrics Plugin

リファクタリングを適用する基準として、よく「長すぎるメソッドや巨大なクラスはリファクタリングした方がよい」と言われます。では、いったいどれぐらいの長さのものが長すぎるのでしょうか? きっと、人によって判断基準はバラバラだと思います。

メトリクスを用いれば、これらの判断基準を数値化できます。 メトリクスとは、ソフトウェアの品質や測定の基準のことです。 Eclipseプラグインに、メトリクスを測定できる Metrics プラグイン http://www.stateofflow.com/projects/16/eclipsemetricsがあります。このプラグインは次のメトリクスを測定できます。

上記のほかには、Eclipse Metrics プラグインというものもあります。

マッケーブの循環的複雑度 (McCabe?'s cyclomatic complexity)
プログラムの複雑さを測る指標のひとつで、値が大きいほどテストや保守が難しいことを意味します。「」という書籍の中では、5 以下のプログラムは単純、10 以下でもそれほど難しくは無い、20 以上は複雑さが高い、50 以上になるとテスト不可能と指摘しています。
Efferent Couplings
外部パッケージへの依存度
LCOM(Lack of Cohesion in Methods)
クラス中のメソッドどうしの関連の度合いを示す指標。共有している変数が多いほど値が大きくなります。これはメソッドどうしが強く関連しており、望ましいカプセル化が行われていることを表します。逆に、値が小さいものは、メソッドどうしがあまり関連しておらず、さらにクラス分割できることを示唆します。
LOC(Lines of Code in Method)
メソッド中のコードの行数
フィールド数
メソッド中の入れ子の深さ
メソッドのパラメータ数
メソッドのステートメント数
LOC は空白行やコメントなども計測するのでコーディングスタイルの影響がありますが、この値はステートメント数だけをカウントするのであまり影響がありません。
WMC(Weighted Methods Per Class)
あるクラス中のメソッドの複雑さの総和

これらの値を開発チームで予め決めておくことで、リファクタリングを適用する判断基準やソフトウェアの品質を数字で判断することができます。

以下が、メトリクスプラグインで測定したメトリクスの例です。青い部分が基準値以内の値、赤い部分が基準値を越えていることを表しています。また、表は各測定項目でソートすることもできます。ソートすれば、どのメソッド、どのクラスが最も問題であるのかが直ぐに分かります。

MetricsResult1.png

インストール

http://www.stateofflow.com/UpdateSite/アップデートサイトに登録してインストールします。

基準値の設定

メトリクスの基準値の設定は、メニューバーから [ウィンドウ]-[設定]-[Metrics] を選び、下図の画面から行います。ここで設定した基準値を越えると、グラフや表で赤く表示されます。

MetricsPref.png

メトリクスの実行

メトリクス情報を収集するには、プロジェクトのエクスポートから行います。

パッケージエクスプローラーからプロジェクトを選択し、コンテキストメニュー(右クリック)から[エクスポート]を選ぶと、下の画面が表示されます。この画面で Metrics を選択して下さい。

MetricsExport1.png

「次へ」をクリックすると、次の画面が表示されます。この画面では、「Export Directory」にメトリクスの測定結果を出力するディレクトリを指定して下さい。「Export HTML」にチェックをいれるとHTMLファイルとして出力されます。また「Export CSV」にチェックをいれると、CSV 形式で出力されます。

MetricsExport2.png

最新の20件を表示しています。 コメントページを参照

  • これってEclipse3.0に標準でついているMetricsとは違うんですね -- 2004-09-06 (月) 18:13:31
    • Eclipse3.0にMetricsが標準でついてるんですか? -- 2004-12-21 (火) 16:04:52
      • 標準でついていないと思われます。 -- 2004-12-24 (金) 16:57:31
      • なるほど、ありがとうございます。 -- 2004-12-24 (金) 22:42:30
  • Eclipse3.1用のVer3.1.0がリリースされていました -- Sekitan? 2006-04-06 17:06:54 (木)
    • Eclipse3.1用のVer3.1.0がリリース -- 2007-09-13 (木) 09:25:19
  • リンクが切れていたので変更しました。 -- TrinityT? 2006-09-12 (火) 10:15:02
  • Eclipse3.3以上であれば、http://www.stateofflow.com/UpdateSite/を更新サイトに登録すればインストール出来るようです。 -- Sue? 2007-05-29 (火) 14:37:40
お名前:

添付ファイル: fileMetricsResult1.png 4669件 [詳細] fileMetricsPref.png 1447件 [詳細] fileMetricsExport2.png 1158件 [詳細] fileMetricsExport1.png 1220件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-08-17 (金) 02:05:45 (1079d)