ソフトウェア可視化 - 百科事典
ソフトウェア可視化またはソフトウェア視覚化とは、ソフトウェアシステムに関連する情報(ソースコードのアーキテクチャやランタイム動作のメトリクスなど)とその開発プロセスを、静的、インタラクティブ、またはアニメーション的な2次元または3次元視覚表現によって可視化することを指します。
ソフトウェアシステム情報
ソフトウェア可視化は、ソフトウェアシステムに関する様々な情報を使用します。主要な情報カテゴリには以下が含まれます:
- 実装アーティファクト(例:ソースコード)
- 説明やリバースエンジニアリングからのソフトウェアメトリクスデータ
- 実行行動を記録するトレース
- ソフトウェアテストデータ(例:テストカバレッジ)
- 変更を追跡するソフトウェアリポジトリデータ
目標
ソフトウェア可視化の目標は、以下の通りです:
- ソフトウェアシステム(その構造)とアルゴリズム(例:ソートアルゴリズムの動作をアニメーションで可視化することで)の理解をサポートする
- ソフトウェアシステムとそのアノマリー(例:高いコ耦合を持つクラスを表示することで)の分析と探索をサポートする
- ソフトウェアシステムの開発と進化をサポートする
ソフトウェア可視化の強みの一つは、本質的にリンクされていないソフトウェアシステムの情報を組み合わせたり関連付けたりすることです。例えば、コードの変更をソフトウェアの実行トレースにプロジェクトすることで。
ソフトウェア可視化は、ソフトウェアシステム情報を探索・分析するツールおよび技術として使用できます。例えば、ビジュアルデータマイニングのプロセスに似たアノマリーの発見に使用されます。例えば、コード品質やチーム活動の監視などに使用されます。ビジュアル化は、本質的にソフトウェア品質保証の方法ではありません。ソフトウェア可視化は、ソフトウェアの内部コンポーネントを把握し、利用するためのソフトウェア知能に参加します。
タイプ
ソフトウェア可視化のためのツールは、ソフトウェア開発とメンテナンス活動中にソースコードや品質欠陥を可視化するために使用されます。ソースコードを視覚表現にマッピングするための異なるアプローチがあります。例えば、ソフトウェアマップを使用して、オブジェクト指向ソフトウェアシステムとサービスの品質欠陥を自動的に発見および可視化します。一般的には、クラスとそのメソッドがソフトウェアシステム内の他のクラスとの直接関係を視覚化し、潜在的な品質欠陥をマークします。さらに、ソフトウェアシステム内を視覚的にナビゲートするサポートが提供されます。
比較的専門的なグラフ描画ソフトウェアがソフトウェア可視化に使用されます。2003年の小規模な調査では、GraphVizやGraphEdなどの汎用グラフ描画パッケージ、Rational RoseやBorland TogetherなどのUMLツール、Visualization of Compiler Graphs (VCG)やRigiなどの専門ツールなど、さまざまなビジュアライゼーションツールが使用されていました。リバースエンジニアリングやソフトウェアメンテナンスの分野で活動している研究者の2007年の小規模な調査では、ESS-Model、BlueJ、Fujabaなどのツールも視覚化機能を持ち、Fujabaはさらにデザインパターンを識別できると報告されました。
参考資料
(以下の参考資料は原文のまま掲載します)
参考図書
(以下の参考図書は原文のまま掲載します)
外部リンク
SoftVis(ACMソフトウェア視覚化シンポジウム)
VISSOFT(2nd IEEEソフトウェア視覚化ワークショップ)
EPDV(Eclipseプロジェクト依存関係ビューア)