Softwarevisualisierung
Softwarevisualisierung[1][2][3] beschäftigt sich mit der Visualisierung von Informationen über Softwaresysteme. Es kommen vorrangig statische, interaktive und animierte 2-D- und 3-D-Visualisierungsverfahren zum Einsatz.[4]
Aufgaben und Ziele
Softwarevisualisierung bildet im Allgemeinen Informationen wie zum Beispiel die Implementierungsstruktur[5][6], den Entwicklungsverlauf[7] oder das dynamische Systemverhalten[8] ab. Typischerweise werden in der Visualisierung Softwaremetrik-Informationen einbezogen, wie zum Beispiel die Größe oder Komplexität einer Systemkomponente (z. B. abgeleitet aus Quellcode-Analysen).[9]
Softwarevisualisierung stellt grundlegende Konzepte und Werkzeuge für den Softwareentwicklungsprozess bereit, zum Beispiel in Form von Softwarekarten, die innerhalb von entscheidungsunterstützenden Systemen eingesetzt werden.[10] Softwarevisualisierung richtet sich nicht nur an die initiale Phase einer neuen Systementwicklung (z. B. graphisches Programmieren), sondern vor allem an die (zeitlich meist unbefristete) Maintenance-Phase.[11]
Softwarevisualisierung ist von Natur aus keine Methode zur Software-Qualitätssicherung, kann aber dazu verwendet werden manuell Anomalien (z. B. Zyklen) aufzuspüren oder Defekte zu erkennen. Dieser Prozess wird auch "visuelles Data Mining"[12][13] genannt.
Die Ziele der Softwarevisualisierung beinhalten das Verstehen von Softwaresystemen (z. B. Aufbau und Struktur) und Algorithmen (z. B. die Animation von Suchalgorithmen), die Analyse von Softwaresystemen zur Entdeckung von Anomalien (z. B. durch Darstellung von Klassen mit (zu) hoher Kopplung) sowie das Überwachen von Code-Qualität in Verbindung mit Aktivitäten des Entwicklungsteams.[14]
Klassifizierung
Die Softwarevisualisierung bildet einen Themenbereich zwischen der Softwaretechnik und der Informationsvisualisierung. In den meisten Arbeiten, die sich damit beschäftigen, stehen weniger neue Visualisierungsmethoden oder neue Softwareanalyseverfahren im Mittelpunkt, sondern die Anwendung bereits bekannter Darstellungsformen auf bestimmte Eigenschaften einer Software. Das Gegenstück zur Softwarevisualisierung ist das sogenannte visuelle Programmieren, bei dem aus einer Visualisierung erst die Software generiert wird. Dieser Ansatz kommt etwa bei Lernprogrammen für Kinder oder beim Rapid Prototyping zum Tragen.
Arten der Softwarevisualisierung
Visualisierung einzelner Klassen und Komponenten
Werkzeuge für die Softwarevisualisierung können eingesetzt werden um einen Entwickler direkt während der Softwareentwicklung und -wartung zu unterstützen. Ziel dabei ist die automatische Entdeckung und Visualisierung von Qualitätsdefekten in objektorientierten Systemen oder Diensten. Als Plugin in Entwicklungsumgebungen wie Eclipse visualisieren sie die Beziehungen einer Klasse mit anderen Klassen im Softwaresystem und markieren potentielle Probleme. Ein Nebeneffekt stellt die visuelle Navigation durch das Softwaresystem dar.
Werkzeuge
SoftVis-Werkzeuge visualisieren Softwaresysteme oder größere Gruppen von Klassenverbänden, um Architekturen zu analysieren oder die Einhaltung von Architekturvorgaben oder der Codequalität zu überprüfen. Beispiele solcher Werkzeuge sind:
- NDepend
- Lattix LDM
- CodeCrawler
- SeeSoft
- Getaviz
- SonarGraph
Literatur
- Stephan Diehl: Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Springer, 5, 2007, ISBN 978-3-540-46504-1
- Kapitel Softwareanalyse und -visualisierung Ch. Bommer, M. Spindler, V. Barr: Softwarewartung – Grundlagen, Management und Wartungstechniken. dpunkt.verlag, Heidelberg 2008, ISBN 3-89864-482-0 (Online)
- Jonas Trümper, Jürgen Döllner: "Extending Recommendation Systems with Software Maps." Proceedings of the 3rd International ICSE Workshop on Recommendation Systems for Software Engineering (RSSE), IEEE Computer Society, pp. 92-96, 2012.
- Jonas Trümper et al.: "A Visual Analysis Approach to Support Perfective Software Maintenance." Proceedings of the 16th International Conference on Information Visualisation, IEEE Computer Society, pp. 308-315, 2012.
- Daniel Limberger et al.: "Interactive Software Maps for Web-Based Source Code Analysis." Proceedings of the International Web3D Conference, ACM, pp. 8, 2013.
Weblinks
Konferenzen und Workshops
- Softvis: ACM Symposium on Software Visualization, Proceedings erscheinen bei ACM Digital Library
- VISSOFT: IEEE International Workshop on Visualizing Software for Understanding and Analysis, Proceedings erscheinen bei IEEE Digital Library
Einzelnachweise
- S. Diehl: Software Visualization. International Seminar. Revised Papers (LNCS Vol. 2269), Dagstuhl Castle, Germany, 20-25 May 2001 (Dagstuhl Seminar Proceedings) 2002
- C. Knight: System and Software Visualization. In: Handbook of software engineering & knowledge engineering. Vol. 2, Emerging technologies (Vol. 2). World Scientific Publishing Company, 2002.
- J. T. Stasko, M. H. Brown, B. A. Price: Software Visualization. MIT Press, 1997.
- A. Marcus, L. Feng, J. I. Maletic: 3D representations for software visualization. Paper presented at the Proceedings of the 2003 ACM symposium on Software visualization, San Diego CA 2003.
- Johannes Bohnet, Jürgen Döllner: "Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs." 4th International Workshop on Dynamic Analysis, ACM, ACM Press, pp. 41–48, 2006.
- M. L. Staples, J. M. Bieman: 3-D Visualization of Software Structure. In: Advances in computers (Vol. 49, pp. 96-143): Academic Press, London 1999.
- F. L. Lopez, G. Robles, B. J. M. Gonzalez: Applying social network analysis to the information in CVS repositories. International Workshop on Mining Software Repositories (MSR 2004), W17S Workshop 26th International Conference on Software Engineering, Edinburgh, Scotland, UK, 25 May 2004 * Stevenage, UK: IEE, 2004, p 101 5
- Johannes Bohnet: "Visualization of Execution Traces and its Application to Software Maintenance Johannes Bohnet". PhD thesis, Hasso-Plattner-Institut, University of Potsdam, 2011.
- M. Lanza: CodeCrawler - polymetric views in action. Proceedings. 19th International Conference on Automated Software Engineering, Linz, 20 24 Sept. 2004 * Los Alamitos CA, IEEE Comput. Soc, 2004, p 394 5
- Jonas Trümper, Jürgen Döllner: "Extending Recommendation Systems with Software Maps." Proceedings of the 3rd International ICSE Workshop on Recommendation Systems for Software Engineering (RSSE), IEEE Computer Society, pp. 92-96, 2012.
- Jonas Trümper and Martin Beck and Jürgen Döllner: "A Visual Analysis Approach to Support Perfective Software Maintenance." Proceedings of the 16th International Conference on Information Visualisation, IEEE Computer Society, pp. 308-315, 2012.
- D. A. Keim: Information visualization and visual data mining. In: IEEE Transactions on Visualization and Computer Graphics, USA * vol 8 (Jan. March 2002), no 1, p 1 8, 67 refs
- T. Soukup: Visual data mining: techniques and tools for data visualization and mining. Chichester NY 2002.
- J. Bohnet, J. Döllner: Monitoring Code Quality and Development Activity by Software Maps. Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt, pp. 9-16, 2011