ソフトウェアの視覚化

ソフトウェア視覚化[ 1 ] [ 2 ]またはソフトウェア視覚化とは、ソフトウェアシステムのソースコードのアーキテクチャまたは実行時の動作のメトリクスなどのソフトウェアシステムに関する情報と開発プロセスを、その構造[ 4 ]実行[ 5 ]動作[ 6 ]および進化の静的、インタラクティブ、またはアニメーション化された2Dまたは3D [ 3 ]視覚表現によって視覚化することを指します。

ソフトウェアシステム情報

ソフトウェアの視覚化では、ソフトウェアシステムに関する様々な情報が使用されます。主な情報カテゴリには以下が含まれます。

目的

ソフトウェア可視化の目的は、ソフトウェアシステム(すなわち、その構造)とアルゴリズム(例えば、ソートアルゴリズムの挙動をアニメーション化するなど)の理解を支援すること、ならびにソフトウェアシステムとその異常(例えば、結合度の高いクラスの表示などとその発展と進化の分析と探究を支援することである。ソフトウェア可視化の強みの一つは、例えばコードの変更をソフトウェア実行トレースに投影するなど、本質的に関連していないソフトウェアシステムの情報を組み合わせて関連付けることである。[ 7 ]

ソフトウェアの視覚化は、ソフトウェアシステムの情報を探索・分析するためのツールや技術として、例えば、ビジュアルデータマイニングのプロセスに似た異常の発見に使用できます。[ 8 ]例えば、ソフトウェアの視覚化は、コードの品質やチーム活動などの活動を監視するために使用されます。[ 9 ]視覚化は、本質的にソフトウェア品質保証の方法ではありません。ソフトウェアの視覚化は、ソフトウェアシステムの内部コンポーネントの発見と習得を可能にすることで、 ソフトウェアインテリジェンスに貢献します。

種類

ソフトウェア可視化ツールは、ソフトウェア開発・保守作業において、ソースコードや品質欠陥を可視化するために用いられる場合があります。ソースコードを視覚的に表現する方法としては、ソフトウェアマップ[ 10 ]など様々なものがあります。これらのツールの目的は、例えば、オブジェクト指向ソフトウェアシステムやサービスにおける品質欠陥の自動検出と可視化です。一般的に、ソフトウェアマップは、クラスとそのメソッドとソフトウェアシステム内の他のクラスとの直接的な関係を可視化し、潜在的な品質欠陥をマークします。さらに、ソフトウェアシステム全体を視覚的にナビゲートできるという利点もあります。

ソフトウェアの視覚化には、多かれ少なかれ特殊なグラフ描画ソフトウェアが使用されています。リバースエンジニアリングソフトウェアメンテナンスの分野で活躍する研究者を対象に2003年に行われた小規模な調査では、 GraphVizやGraphEdなどの汎用グラフ描画パッケージ、 Rational RoseBorland TogetherなどのUMLツール、Visualization of Compiler Graphs (VCG)やRigiなどのより特殊なツールなど、さまざまな視覚化ツールが使用されていることがわかりました。[ 11 ]:99–100 リバースエンジニアリングソースによる視覚化ツールとして機能できるUMLツールの範囲は決して狭いものではありません。2007年の書籍では、前述の2つのツールに加えて、ESS-Model、BlueJ、Fujabaにもこの機能があり、Fujabaはデザインパターンも識別できると述べられています。[ 12 ]

参照

参考文献

  1. ^ Bohnet, Johannes; Döllner, Jürgen (2006). 「アーキテクチャに埋め込まれたコールグラフの視覚的探索による機能実装の分析」.第4回国際動的解析ワークショップ. ACM Press. pp.  41– 48. doi : 10.1145/1138912.1138922 . ISBN 1595934006. S2CID  17556465 .
  2. ^ディール 2002 ;ディール 2007 ;ナイト 2002
  3. ^ (マーカス、フェン、マレティック 2003 ;ウェッテル、ランザ 2007 )
  4. ^ステープルズ&ビーマン 1999
  5. ^ Trümper, J.; Döllner, J.; Telea, A. (2013). 「実行トレースのマルチスケール視覚比較」.国際プログラム理解会議論文集(PDF) . IEEE Computer Society. pp.  53– 62. doi : 10.1109/ICPC.2013.6613833 . ISBN 978-1-4673-3092-3. S2CID  206839054 .
  6. ^ ( Kuhn & Greevy 2006 Stasko et al. 1998 )
  7. ^ Bohnet, J.; Voigt, S.; Döllner, J. (2009). 「コード変更を実行トレースに投影して、最近発生したバグの特定を支援する」. 2009 ACM Symposium on Applied Computing Proceedings . pp.  438– 442. doi : 10.1145/1529282.1529378 . ISBN 9781605581668. S2CID  8349297 .
  8. ^ ( Keim 2002 ; Soukup & Davidson 2002 ; Burch, Diehl & Weißgerber 2005 )
  9. ^ Bohnet, J.; Döllner, J. (2011). 「ソフトウェアマップによるコード品質と開発活動の監視」. IEEE ACM ICSE 技術的負債管理ワークショップ議事録. Association for Computing Machinery. pp.  9– 16. doi : 10.1145/1985362.1985365 . ISBN 9781450305860. S2CID  17258620 .
  10. ^ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). 「Webベースのソースコード解析のためのインタラクティブなソフトウェアマップ」.第18回国際3D Web技術会議議事録. pp.  91– 98. doi : 10.1145/2466533.2466550 . ISBN 9781450321334. S2CID  3040005 .
  11. ^ Koschke, Rainer (2003). 「ソフトウェア保守、リバースエンジニアリング、リエンジニアリングにおけるソフトウェア可視化:研究調査」 . Journal of Software Maintenance and Evolution: Research and Practice . 15 (2): 87– 109. doi : 10.1002/smr.270 .
  12. ^ディール 2007、63ページ

さらに読む

  • SoftVis ACMソフトウェア可視化シンポジウム
  • VISSOFT第2回 IEEE ソフトウェア可視化ワーキングカンファレンス
  • EPDV Eclipse プロジェクト依存関係ビューア