InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

アーキテクチャ分析ツールであるSonarJ 6.0が構造的負債指数と品質モデルをサポート

作者 Srini Penchikala , 翻訳者 編集部N 投稿日 2010年9月5日

セクション
デベロップメント,
エンタープライズ・アーキテクチャ
トピック
Artifacts & Tools ,
Java ,
ガバナンス ,
Architecture
タグ
Announcements

原文(投稿日:2010/08/16)へのリンク

ソフトウエア アーキテクチャの分析と品質管理ツールである SonarJの最新バージョンは、構造的負債指数メトリクスとアーキテクチャ品質モデルをサポートしている。この製品を出しているのは、hello2morrowで、先月、このツールのバージョン6のリリースを アナウンスした

この新メトリクス「構造的負債指数」によって、アプリケーションの全体的な構造的負債を測定できる。経験則を使って、プロジェクトの構造的な低下を測定し、アプリケーションの構造的負債を除くのに必要な工数を示してくれる。もしプロジェクトに循環するパッケージ 依存関係、アーキテクチャ設計上の違反、しきい値オーバーの警告、あるいは、残っているタスクがあると、Structural Debt(構造的負債) ダッシュボックスが表示される。

SonarJの無料版では、このメトリクスの内、循環するパッケージ 依存関係を示す。商用ライセンス版には、その他の統計、すなわちアーキテクチャ設計上の違反、しきい値オーバーの警告、あるいは、残っているタスクが加わる。他のメトリクス、例えば、「カットすべき型の依存関係」と「除くべき参照の数」は、すべてのパッケージ循環を断ち切るために、除くべき型の依存関係がいくつあり、その各変更によって、影響を受けるコードが何行かを示す。またコード分析ツール Sonarプラグイン のアップデート版があり、 Sonarダッシュボード webページに新しい 構造的負債指数の統計データを表示する。

SonarJ 6.0では、またソフトウエア アーキテクトは、アプリケーション アーキテクチャの品質モデルを定義することができる。品質モデルは、特定の品質ガイドラインに従うことを強制するのに使うことができる、メトリクスのしきい値のセットである。新しいリリースには、“Essential”モデルと“Extended”モデルと呼ばれる2つのすぐ使える品質モデルがいっしょに出荷される。 Essentialモデルでは、継続的な結合のために、簡単な入門として使える。またExtended モデルは、もっとしきい値が定義でき、知らないコード中の問題を見つけるのに役に立つ。

最新バージョンに含まれる他の新しいフィーチャには,以下のものがある:

  • 新しいダッシュボードは、1ページに最も重要なメトリクスを集め、交通信号灯の色で、潜在的な問題を強調する。
  • 新しいシステム生成ウィザードに従って、ユーザが、必要な全ステップを済ませれば、Eclipse IDEやMaven アプリケーション ビルド ツールからソフトウエア システムをインポートできる。また新たに加わったビルド ユニットは、Maven あるいは EclipseのプロジェクトとSonarJ プロジェクトのマッピングに役立つ。ビルド ユニットには,ソースのセットやクラスファイルのルート ディレクトリが含まれていて、通常は、Maven あるいは Eclipseのプロジェクトに直接マップされる。SonarJ プロジェクトは、ビルド ユニットをいくつでも含むことができる。
  • Javaの型をアーキテクチャの要素(レーヤー,スライス、あるいはサブシステム)に割り当てるパターンは、今回のリリースでは、強い階層パターンと弱い階層パターンを持っている。強い階層パターンは、ある型を親要素から課せられた制約にかかわらず、特定のアーキテクチャ要素に強制的に割り当てるのに使用できる。そして弱い階層パターンは、他の(より強いパターン)によってマッチされなかったタイプに、マッチするのに使うことができる。
  • サンドボックシング: 新しいサンドボックシングモードによって、ユーザは、アーキテクチャ上のアイデアやリファクタリングのアイデアを色々試すのに、元のシステムファイルを変更すること無く、システムファイルの変形版を試すことができる。
  • レポート生成: SonarJ は、またRTFのテンプレートをベースにしたレポートを生成できるようになった。生成されたレポートは、RTFファイルを扱えるエディタ プログラム(例えば、Microsoft Word )を使ってカスタマイズできる。
  • アーキテクチャ ビューには、"highlight restrictions(制限のハイライト)"と呼ばれる新しいオプションが加わった。このモードで、あるアーキテクチャ要素を選択すると、他のすべての要素は,グリーンかレッドに色付けされる。グリーンの要素は、この選択した要素からアクセスできるもので、レッドの要素は、アクセスできないものである。

SonarJ には、製品が3種類ある。 SonarJ-Architectは、アーキテクチャ ルールを作成したり,修正したりできる。SonarJ-Developer モジュールは、開発者がEclipse 上で、ルール違反を検知したり、仮想のリファクタリングを実行することができる。 SonarJ-Reportは、Ant タスクと Mavenプラグインからできていて、レポートの作成や CruiseControlのような、継続的結合をサポートする。またSonarJ のワーク アイテムを JIRACodebeamerのようなタスク トラッキングやアプリケーション ライフサイクル 管理(ALM)ツールと同期をとるのに使うこともできる。このツールは、無料版があり、バイトコードで5万命令 (コードで約2万行)まで使うことができる。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。