アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > Java開発プロジェクトの健康診断をサポート
 
@IT Special

 

PR

Java開発プロジェクトの
健康診断をサポート

あなたが属する開発プロジェクトでは、構築中のコードがいまどんな状態になっているのか、きちんと把握できているだろうか? プロジェクトの早い段階でコードの不具合が解消されれば、修正に費やすコストを低く抑えることができる。そのためには、まず、コードの現状を確認する必要があるだろう。
 
   
 メタボコードを改善するコードレビュー、回帰テストを効率的に実施

 Javaプログラムの開発プロジェクトにおいて、今大きな課題となっているのが、コードの複雑化、デグレードによるソフトウェア品質の低下である。ソフトウェアの代謝異常の原因といえる、複雑なソースコード、“メタボコード”を改善し、ソフトウェア品質を維持するために有効となるのがコードレビューと回帰テスト。しかし、プロジェクトの多くは、実状さえ把握できておらず、継続的にテストが行われる環境も整っていないのが現状だ。

 こうした市場背景の中、アジター ソフトウェア ジャパンでは、JUnitコードを自動生成し、コード品質の維持、改善を迅速かつ簡単に行えるツール「AgitarOne」を提供している。このツールには、デグレードの検出、予防可能な不具合の回避、コード変更の場合の品質保持などをサポートするための強力な自動化機能が備わっており、新規開発アプリケーションだけ でなく、従来では難しかった既存のアプリケーションに対応したJUnitコードも自動生成することが可能となっている。

 これまで、単体テストによってソフトウェア品質を高めるには、実際のプログラムコード以上のJUnitコードを手書きする必要があり、開発者にとっては大きな負担となっていたが、「AgitarOne」を活用することで、新規、既存にかかわらず、あらゆるフェーズのJavaプログラム開発プロジェクトにおいて効率的なコード品質の改善が行えるようになる。

   
 「Management Dashboard」でコードメトリクスを詳細レポート

 今回「AgitarOne」の大きな特徴の1つとしてピックアップするのは、Javaプロジェクト全体のコードメトリクスをレポートする 「Management Dashboard」機能である。「Management Dashboard」では、クラス単体レベルの品質やJavaプロジェクトのステータスなどに関する客観的データが表示され、プロジェクトの健全性や開発チーム作業の進捗など、包括的な概要が提供される。これにより開発者やチームリーダーは、プロジェクト全体の状況を把握し、コード品質劣化の危険性を詳細にチェックすることが可能となる。ユーザーの使い勝手を高めるため、「AgitarOne」の最新バージョン「5.0」からは、インターフェイスの日本語化対応を実現している。

Javaプロジェクト全体のコードメトリクスをレポートする「Management Dashboard」機能 (クリックすると拡大)

 具体的な機能としては、「Management Dashboard」のサマリー情報として、これまでに行われた単体テストおよび回帰テストの結果や進捗、プロジェクトコードメトリクスなどが提供される。とくに、テストの進捗では、高リスククラスがどれくらいあるのか、単体テストのカバレッジは何%なのかをチェックすることができ、設定した目標値と比べて現 状のレベルを確認することができる。また、プロジェクトコードメトリクスでは、クラス数、メソッド数、テスト数といったJavaプロジェクトの中核データ を把握することが可能となる。

   
 クラスおよびメソッドの複雑度とリスクを分析

 さらに、「Management Dashboard」では、全体的な概況を把握できるサマリー情報に加え、クラスおよびメソッドレベルのより詳細なメトリクスレポートを提供する分析ペー ジを用意。ここでは、クラスおよびメソッドの複雑度とリスクに関する情報を一覧することができる。

 「複雑度」とは、 McCabe氏が考案したサイクロマティック複雑度を利用して算出した数値で、「Management Dashboard」では、開発プロジェクトの各メソッドに対してこの計算が行われ、数値の大きい順から複雑度の高いメソッドとしてピックアップされる。同時に、クラス内のすべてのメソッド複雑度を足し合わせたクラス複雑度も表示される。同社では、この「複雑度」を品質評価指標として有効活用する方法の研究を、品質向上活動に積極的に取り組んでいる株式会社富士通ソーシアルサイエンスラボラトリと協力して行なっている。(詳しくは、ホワイトペーパーを参照されたい)

 そして、この複雑度をベースに同社が独自に考案した、コード改善の指標が「リスク」である。リスクとは、プロジェクトコードをメンテナンスすることがどれ ぐらい困難であるかを見積もった数値で、メソッド、クラス、開発者、パッケージ、プロジェクトごとに異なった形でレポートされる。とくに、各リスクを算出 するためのベースとなるのがメソッドリスクで、複雑度と自動テストによるカバレッジをもとに算出される。つまり、複雑度が高いうえに、十分なテストが行わ れていないメソッドほど、リスクが高いと判断されることになる。分析ページでは、リスクおよび複雑度の高いクラスおよびメソッドの詳細情報がレポートされるほか、クラスとメソッドのリスク、クラスとメソッドの複雑度分布、クラスカバレッジ分布がグラフ表示され、一目でプロジェクトの現状を把握することがで きる。なお、分析ページのリスク計算についても、最新バージョンの「5.0」からの採用となっている。

 「Management Dashboard」は、まさにJava開発プロジェクトの“健康診断”を行うための機能であり、メタボコードを改善するための第一歩として 有効に活用することができる。現在、同社サイトでは、「AgitarOne」の10日間フリートライアル版を提供しており、まずは「Management Dashboard」によってJava開発プロジェクト全体の現状を把握してもらい、「AgitarOne」を利用した本格的な単体テストおよび回帰テストの実施へとつなげていきたい考えだ。


提供:アジター ソフトウェア ジャパン株式会社
企画:アイティメディア 営業局
制作:@IT 編集部
掲載内容有効期限:2007年12月14日
 
アジター ソフトウェア ジャパン 関連リンク
AgitarOne 10日間フリートライアル!

AgitarOne両製品完全版へのフリートライアル。
トライアルに際しては、評価用ハードウェアを用意することなく、AgitarOne両製品のホスト バージョンにSSLベースで無制限に10日間アクセスいただけます

AgitarOne

複雑度に関するホワイトペーパー(PDF)


アジター ソフトウェア ジャパン 関連記事

単体テストを見直せば開発コストは低減する、アジター (@ITNews)
XPと宮本武蔵の勝利への執念、ケント・ベック (@ITNews)

印刷プリンタ用ページ表示
kee<p>oint保存kee<p>ointで保存

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ