ソフトウェア視覚化[ 1 ] [ 2 ]またはソフトウェア視覚化とは、ソフトウェアシステムのソースコードのアーキテクチャまたは実行時の動作のメトリクスなどのソフトウェアシステムに関する情報と開発プロセスを、その構造[ 4 ]実行[ 5 ]動作[ 6 ]および進化の静的、インタラクティブ、またはアニメーション化された2Dまたは3D [ 3 ]視覚表現によって視覚化することを指します。
ソフトウェアシステム情報
ソフトウェアの視覚化では、ソフトウェアシステムに関する様々な情報が使用されます。主な情報カテゴリには以下が含まれます。
- ソースコードなどの実装成果物、
- 測定またはリバースエンジニアリングから得られたソフトウェアメトリックデータ、
- 実行動作を記録するトレース、
- ソフトウェアテストデータ(例:テストカバレッジ)
- 変更を追跡するソフトウェア リポジトリデータ。
目的
ソフトウェア可視化の目的は、ソフトウェアシステム(すなわち、その構造)とアルゴリズム(例えば、ソートアルゴリズムの挙動をアニメーション化するなど)の理解を支援すること、ならびにソフトウェアシステムとその異常(例えば、結合度の高いクラスの表示など)とその発展と進化の分析と探究を支援することである。ソフトウェア可視化の強みの一つは、例えばコードの変更をソフトウェア実行トレースに投影するなど、本質的に関連していないソフトウェアシステムの情報を組み合わせて関連付けることである。[ 7 ]
ソフトウェアの視覚化は、ソフトウェアシステムの情報を探索・分析するためのツールや技術として、例えば、ビジュアルデータマイニングのプロセスに似た異常の発見に使用できます。[ 8 ]例えば、ソフトウェアの視覚化は、コードの品質やチーム活動などの活動を監視するために使用されます。[ 9 ]視覚化は、本質的にソフトウェア品質保証の方法ではありません。ソフトウェアの視覚化は、ソフトウェアシステムの内部コンポーネントの発見と習得を可能にすることで、 ソフトウェアインテリジェンスに貢献します。
種類
ソフトウェア可視化ツールは、ソフトウェア開発・保守作業において、ソースコードや品質欠陥を可視化するために用いられる場合があります。ソースコードを視覚的に表現する方法としては、ソフトウェアマップ[ 10 ]など様々なものがあります。これらのツールの目的は、例えば、オブジェクト指向ソフトウェアシステムやサービスにおける品質欠陥の自動検出と可視化です。一般的に、ソフトウェアマップは、クラスとそのメソッドとソフトウェアシステム内の他のクラスとの直接的な関係を可視化し、潜在的な品質欠陥をマークします。さらに、ソフトウェアシステム全体を視覚的にナビゲートできるという利点もあります。
ソフトウェアの視覚化には、多かれ少なかれ特殊なグラフ描画ソフトウェアが使用されています。リバースエンジニアリングとソフトウェアメンテナンスの分野で活躍する研究者を対象に2003年に行われた小規模な調査では、 GraphVizやGraphEdなどの汎用グラフ描画パッケージ、 Rational RoseやBorland TogetherなどのUMLツール、Visualization of Compiler Graphs (VCG)やRigiなどのより特殊なツールなど、さまざまな視覚化ツールが使用されていることがわかりました。[ 11 ]:99–100 リバースエンジニアリングソースによる視覚化ツールとして機能できるUMLツールの範囲は決して狭いものではありません。2007年の書籍では、前述の2つのツールに加えて、ESS-Model、BlueJ、Fujabaにもこの機能があり、Fujabaはデザインパターンも識別できると述べられています。[ 12 ]
参照
参考文献
- ^ Bohnet, Johannes; Döllner, Jürgen (2006). 「アーキテクチャに埋め込まれたコールグラフの視覚的探索による機能実装の分析」.第4回国際動的解析ワークショップ. ACM Press. pp. 41– 48. doi : 10.1145/1138912.1138922 . ISBN 1595934006. S2CID 17556465 .
- ^ディール 2002 ;ディール 2007 ;ナイト 2002
- ^ (マーカス、フェン、マレティック 2003 ;ウェッテル、ランザ 2007 )
- ^ステープルズ&ビーマン 1999
- ^ 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 .
- ^ ( Kuhn & Greevy 2006、 Stasko et al. 1998 )
- ^ 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 .
- ^ ( Keim 2002 ; Soukup & Davidson 2002 ; Burch, Diehl & Weißgerber 2005 )
- ^ 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 .
- ^ 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 .
- ^ Koschke, Rainer (2003). 「ソフトウェア保守、リバースエンジニアリング、リエンジニアリングにおけるソフトウェア可視化:研究調査」 . Journal of Software Maintenance and Evolution: Research and Practice . 15 (2): 87– 109. doi : 10.1002/smr.270 .
- ^ディール 2007、63ページ
さらに読む
- Roels, R.; Meştereagă, P.; Signer, B. (2016). 「MindXpresプレゼンテーションプラットフォーム向けインタラクティブソースコード可視化プラグイン」.コンピュータ支援教育. コンピュータと情報科学におけるコミュニケーション. 第583巻. Springer. pp. 169– 188. doi : 10.1007/978-3-319-29585-5_10 . ISBN 978-3-319-29584-8。
- Burch, M.; Diehl, S.; Weißgerber, P. (2005). 「ソフトウェアアーカイブにおけるビジュアルデータマイニング」. 2005 ACMソフトウェア可視化シンポジウム (SoftVis '05) の議事録. pp. 37– 46. doi : 10.1145/1056018.1056024 . ISBN 1595930736. S2CID 1577375 .
- Diehl, S. (2002).ソフトウェア可視化. 国際セミナー ダグストゥール城, ドイツ, 2001年5月20日~25日. 改訂論文. コンピュータサイエンス講義ノート. 第2269巻. Springer. doi : 10.1007/3-540-45875-1 . ISBN 978-3-540-43323-1. S2CID 21007575 .
- Diehl, S. (2007).ソフトウェア可視化 — ソフトウェアの構造、動作、進化の可視化. Springer. ISBN 978-3-540-46504-1。
- Eades, P.; Zhang, K. (1996).ソフトウェア可視化. ソフトウェア工学と知識工学シリーズ. 第7巻. World Scientific. ISBN 981-02-2826-0。
- Gîrba, T.; Kuhn, A.; Seeberger, M.; Ducasse, S. (2005). 「開発者がソフトウェア進化を推進する方法」(PDF) .ソフトウェア進化の原理に関する国際ワークショップ (IWPSE 2005) の議事録. IEEE Computer Society Press. pp. 113– 122. doi : 10.1109/IWPSE.2005.21 . ISBN 0-7695-2349-8. S2CID 9260583 .
- Keim, DA (2002年1月~3月). 「情報の視覚化と視覚的データマイニング」. IEEE Transactions on Visualization and Computer Graphics . 8 (1): 1– 8. Bibcode : 2002ITVCG...881847K . doi : 10.1109/2945.981847 .
- Knight, C. (2002). 「システムとソフトウェアの可視化」張世国編著『新興技術におけるソフトウェア工学と知識工学のハンドブック』第2巻、World Scientific、pp. 131– 148. ISBN 978-981-4491-78-5。
- Kuhn, A.; Greevy, O. (2006). 「トレースと信号処理の類似性の活用」(PDF) . Proceedings IEEE International Conference on Software Maintenance (ICSM 2006) . IEEE Computer Society Press. pp. 394– 5. doi : 10.1109/ASE.2004.1342773 . ISBN 0-7695-2131-2。
- Lanza, M. (2004). 「CodeCrawler — ポリメトリックビューの活用」. Proceedings. 第19回国際自動ソフトウェア工学会議、オーストリア、リンツ、2004年9月20日~24日. pp. 394–5 . doi : 10.1109/ASE.2004.1342773 . ISBN 0-7695-2131-2。
- Lopez, FL; Robles, G.; Gonzalez, BJM (2004). 「CVSリポジトリの情報へのソーシャルネットワーク分析の適用」.国際ソフトウェアリポジトリマイニングワークショップ (MSR 2004) W17Sワークショップ 第26回国際ソフトウェア工学会議、エディンバラ、スコットランド、英国、2004年5月25日. IET. pp. 101– 5. doi : 10.1049/ic:20040485 (2025年7月12日現在非公開). ISBN 0-86341-432-X。
{{cite book}}: CS1 maint: DOIは2025年7月時点で非アクティブです(リンク) - Marcus, A.; Feng, L.; Maletic, JI (2003). 「ソフトウェア可視化のための3D表現」. 2003 ACMソフトウェア可視化シンポジウム議事録. pp. 27–ff. doi : 10.1145/774833.774837 . ISBN 1581136420. S2CID 10263993 .
- Soukup, Tom; Davidson, Ian (2002). Visual Data Mining: Techniques and Tools for Data Visualization and Mining . Wiley. ISBN 978-0-471-27138-3。
- ミシガン州ステープルズ。 JM ビーマン (1999)。 「ソフトウェア構造の3次元可視化」。コンピュータの進歩。49 : 96–143。CiteSeerX 10.1.1.13.3090 。 土井:10.1016/S0065-2458(08)60284-3。ISBN 9780120121496。
- スタスコ, ジョン; ブラウン, マーク H.; ドミンゲ, ジョン B.; プライス, ブレイン A. (1998). 『ソフトウェアの視覚化:マルチメディア体験としてのプログラミング』 MIT 出版. ISBN 978-0-262-19395-5。
- Van Rysselberghe, F.; Demeyer, S. (2004). 「変更履歴の可視化によるソフトウェア進化情報の調査」. Proceedings. 第20回国際ソフトウェア保守会議. IEEE Computer Society Press. pp. 328– 337. doi : 10.1109/ICSM.2004.1357818 . ISBN 0-7695-2213-0. S2CID 16571788 .
- Wettel, R.; Lanza, M. (2007). 「ソフトウェアシステムを都市として視覚化する」. VISSOFT 2007 (第4回IEEE国際ワークショップ「ソフトウェアの理解と分析のための視覚化」) 議事録. IEEE Computer Society Press. pp. 92– 99. doi : 10.1109/VISSOF.2007.4290706 . ISBN 978-1-4244-0599-2. S2CID 9974947 .
- Zhang, K. (2003).ソフトウェア可視化 — 理論から実践へ. Kluwer. ISBN 1-4020-7448-4。