ステップ数の差分を測定するツールを作ってみました

個人的にはいかがなものかと思いますが、世の中のシステム開発ではなにかとステップ数が基準になることが多いです。んで、新規の開発の場合は単純にステップカウンタでステップ数を測定すれば規模が出せるのですが、改修案件の場合は既存のコードに手を入れる部分も出てくるため、実際に修正したステップ数を測定するのが結構面倒だったりします。
というわけで、そんなときのために変更前のソースツリーと変更後のソースツリーを指定すると差分を測ってくれるツールを作ってみました。

SwingでGUIツールをくっつけていますが、コマンドラインから実行してテキストやHTMLなどの形式で出力することも可能になっています。
どのように差分を測定しているかというと、ソースからコメントや空行を削除したうえで以下のような処理を行っています。

  • 変更後のソースツリーにあって変更前のソースツリーに存在しないファイルは新規追加されたものなので、全ての行数をカウントします。
  • 変更後のソースツリーになくて変更前のソースツリーに存在するファイルは削除されたものなので、行数はカウントしません(さるSI企業の品質管理部門の方の話によると削除行は改修時のステップ数に含めないらしいので無視しています)。
  • 変更後のソースツリーにも変更前のソースツリーにも存在するファイルはDiffエンジンを使って追加行数をカウントします。

このような単純な処理しか行っていないので、ファイルをリネームしたりソースツリーのディレクトリの構造が変わっていたりすると当然のことながら正しい差分を取得することはできませんが、そういうケースを除けば便利なんじゃないかなーと思います。
実際に現在進行中のプロジェクトで使いながらブラッシュアップしていこうと思います。