Software visualization
Software visualization deals with the visualization of information about software systems. Primarily static, interactive and animated 2-D and 3-D visualization processes are used.
tasks and goals
Software visualization generally depicts information such as the implementation structure, the development process or the dynamic system behavior . Software metrics information is typically included in the visualization , such as the size or complexity of a system component (e.g. derived from source code analyzes).
Software visualization provides basic concepts and tools for the software development process, for example in the form of software cards that are used within decision support systems. Software visualization is not only aimed at the initial phase of a new system development (e.g. graphic programming), but above all at the (mostly unlimited) maintenance phase.
By its very nature, software visualization is not a method for software quality assurance , but it can be used to manually detect anomalies (e.g. cycles) or to identify defects. This process is also known as "visual data mining".
The goals of software visualization include the understanding of software systems (e.g. structure and structure) and algorithms (e.g. the animation of search algorithms), the analysis of software systems to discover anomalies (e.g. by representing classes with ( to) high coupling ) as well as monitoring code quality in connection with activities of the development team.
Classification
Software visualization forms a subject area between software technology and information visualization . In most of the work that deals with this, the focus is less on new visualization methods or new software analysis methods, but rather on the application of already known forms of representation to certain properties of software. The counterpart to software visualization is what is known as visual programming , in which the software is first generated from a visualization. This approach is used, for example, in learning programs for children or in rapid prototyping .
Types of software visualization
Visualization of individual classes and components
Software visualization tools can be used to support a developer directly during software development and maintenance. The aim is the automatic detection and visualization of quality defects in object-oriented systems or services. As a plug-in in development environments such as Eclipse , they visualize the relationships between a class and other classes in the software system and mark potential problems. A side effect is the visual navigation through the software system.
Tools
SoftVis tools visualize software systems or larger groups of class groups in order to analyze architectures or to check compliance with architectural specifications or code quality. Examples of such tools are:
- NDepend
- Lattix LDM
- CodeCrawler
- SeeSoft
- Getaviz
- SonarGraph
literature
- Stephan Diehl: Software Visualization: Visualizing the Structure, Behavior, and Evolution of Software. Springer, 5, 2007, ISBN 978-3-540-46504-1
- Chapter software analysis and visualization Ch. Bommer, M. Spindler, V. Barr: Software maintenance - basics, management and maintenance techniques . 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 Visualization, 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.
Web links
Conferences and workshops
- Softvis: ACM Symposium on Software Visualization , Proceedings appear at ACM Digital Library
- VISSOFT: IEEE International Workshop on Visualizing Software for Understanding and Analysis, Proceedings are published by IEEE Digital Library
Research groups
- SoftVis at the Hasso Plattner Institute for IT Systems Engineering
- SoftVis University of Groningen
- SoftVis at Georgia Tec University (GVU)
- SoftVis at Helsinki University of Technology
- Visual Software Analytics (ViSA) at the University of Leipzig
Individual evidence
- ^ 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.
- ↑ JT Stasko, MH Brown, BA Price: Software Visualization . MIT Press, 1997.
- ^ A. Marcus, L. Feng, JI 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.
- ↑ ML Staples, JM Bieman: 3-D Visualization of Software Structure . In: Advances in computers (Vol. 49, pp. 96-143): Academic Press, London 1999.
- ↑ FL Lopez, G. Robles, BJM 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 Institute, University of Potsdam, 2011.
- ↑ M. Lanza: Code Crawler - 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 Visualization, IEEE Computer Society, pp. 308-315, 2012.
- ↑ DA 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