Software visualization

from Wikipedia, the free encyclopedia

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.

Screenshot

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

Web links

Conferences and workshops

Research groups

Individual evidence

  1. ^ S. Diehl: Software Visualization . International seminar. Revised Papers (LNCS Vol. 2269), Dagstuhl Castle, Germany, 20-25 May 2001 (Dagstuhl Seminar Proceedings) 2002
  2. ^ C. Knight: System and Software Visualization . In: Handbook of software engineering & knowledge engineering . Vol. 2, Emerging Technologies (Vol. 2). World Scientific Publishing Company, 2002.
  3. JT Stasko, MH Brown, BA Price: Software Visualization . MIT Press, 1997.
  4. ^ 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.
  5. ^ 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.
  6. ML Staples, JM Bieman: 3-D Visualization of Software Structure . In: Advances in computers (Vol. 49, pp. 96-143): Academic Press, London 1999.
  7. 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
  8. ^ Johannes Bohnet: "Visualization of Execution Traces and its Application to Software Maintenance Johannes Bohnet". PhD thesis, Hasso Plattner Institute, University of Potsdam, 2011.
  9. 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
  10. ^ 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.
  11. ^ 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.
  12. 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
  13. T. Soukup: Visual data mining: techniques and tools for data visualization and mining . Chichester NY 2002.
  14. ^ 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