Software visualization

Software visualization

Software visualization [(Diehl, 2002; Diehl, 2007; Knight, 2002)] is concerned with the static or animated 2-D or 3-D [(Marcus et al., 2003)] visual representation of information about software systems based on their structure [(Staples & Bieman, 1999), size (Lanza, 2004)] , history [(Girba et al, 2005, Lopez et al., 2004; Van Rysselberghe et al., 2004)] , or behavior [(Kuhn et al., 2006, Stasko et al., 1997)] .

Typically, the information used for visualization is software metric data from measurement activities or from reverse engineering. Visualization is inherently not a method for software quality assurance but can be used to manually discover anomalies similar to the process of visual data mining. [(Keim, 2002; Soukup, 2002).]

The objectives of software visualizations are to support the understanding of software systems (i.e., its structure) and algorithms (e.g., by animating the behavior of sorting algorithms) as well as the analysis of software systems and their anomalies (e.g., by showing classes with height coupling).

Types of software visualization

Visualization of a single component

Tool for software visualization might be used to visualize source code and quality defects during software development and maintenance activities. Their target is the automatic discovery and visualization of quality defects in object-oriented software systems and services. Designed as a plugin for an IDE (e.g., Eclipse) they visualized the direct relationship of a class and its methods with other classes in the software system and mark potential quality defects to warn the developer. A further benefit is the support for visual navigation through the software system.

::

Visualization of whole (sub-)systems

Other more powerful tools are used to visualize a whole system or subsystem to explore the architecture or to apply visual data mining or visual analytics techniques for defect discovery. Such tools are, for example:
* CodeCrawler
* X-Ray
* Lattix LDM
* Mondrian
* NDepend
* SeeSoft
* Sotoarc/Sotograph
* Structure101
* Lagrein

See also

Programs:
* EMovie
* Flowchart4j
* MayaVi
* Structure101

Experts:
* Ronald Baecker
* Heinz-Otto Peitgen

References

Further reading

* Diehl, S. (2002). "Software Visualization". International Seminar. Revised Papers (LNCS Vol. 2269), Dagstuhl Castle, Germany, 20-25 May 2001 (Dagstuhl Seminar Proceedings).
* Diehl, S. (2007). "Software Visualization - Visualizing the Structure, Behavoiur, and Evolution of Software". Springer, 2007, ISBN 978-3-540-46504-1
* Gîrba, T., Kuhn, A., Seeberger, M., and Ducasse, S., “How Developers Drive Software Evolution,” Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2005), IEEE Computer Society Press, 2005, pp. 113—122. [http://www.iam.unibe.ch/~scg/Archive/Papers/Girb05cOwnershipMap.pdf PDF]
* Keim, D. A. (2002). "Information visualization and visual data mining". IEEE Transactions on Visualization and Computer Graphics, USA * vol 8 (Jan. March 2002), no 1, p 1 8, 67 refs.
* Knight, C. (2002). "System and Software Visualization". In "Handbook of software engineering & knowledge engineering". Vol. 2, Emerging technologies (Vol. 2): World Scientific Publishing Company.
* Kuhn, A., and Greevy, O., “Exploiting the Analogy Between Traces and Signal Processing,” Proceedings IEEE International Conference on Software Maintenance (ICSM 2006), IEEE Computer Society Press, Los Alamitos CA, September 2006. [http://www.iam.unibe.ch/~scg/Archive/Papers/Kuhn06cTraceSignalICSM2006.pdf PDF]
* Lanza, M. (2004). "CodeCrawler - polymetric views in action". Proceedings. 19th International Conference on Automated Software Engineering, Linz, Austria, 20 24 Sept. 2004 * Los Alamitos, CA, USA: IEEE Comput. Soc, 2004, p 394 5.
* Lopez, F. L., Robles, G., & Gonzalez, B. J. M. (2004). "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.
* Marcus, A., Feng, L., & Maletic, J. I. (2003). "3D representations for software visualization". Paper presented at the Proceedings of the 2003 ACM symposium on Software visualization, San Diego, California.
* Soukup, T. (2002). "Visual data mining : techniques and tools for data visualization and mining". New York: Chichester.
* Staples, M. L., & Bieman, J. M. (1999). "3-D Visualization of Software Structure". In "Advances in Computers" (Vol. 49, pp. 96-143): Academic Press, London.
* Stasko, J. T., Brown, M. H., & Price, B. A. (1997). "Software Visualization": MIT Press.
* Van Rysselberghe, F. (2004). "Studying Software Evolution Information By Visualizing the Change History". Proceedings. 20th International Conference On Software Maintenance. pp 328-337, IEEE Computer Society Press, 2004

External links

Tools

* CodeCrawler ( [http://www.iam.unibe.ch/~scg/Archive/Papers/Lanz03eVisSoft.pdf "CodeCrawler - A Lightweight Software Visualization Tool"] )
* X-Ray ( [http://atelier.inf.unisi.ch/~malnatij/xray.html"X-Ray - A Software Visualization Plug-in for Eclipse"] )
* Lattix LDM ( [http://www.lattix.com/products/products.php "Software Visualization using Dependency Structure Matrix"] )
* Lagrein ( [http://www.prom.case.unibz.it/images/data/papers/LagreinVisualizingUserRequirementsandDevelopmentEffort.jermakovics-scotto-sillitti-succi_ICPC07.pdf "Lagrein: Visualizing users requirements and development effort"] )
*Mondrian ( [http://moose.unibe.ch/tools/mondrian "Mondrian: An Agile Visualization Framework"] )
* NDepend ( [http://www.NDepend.com"Understand and Control the Architecture of your Application"] )
* SemmleCode ( [http://www.semmle.com"Navigate, Find, Understand, Visualize your Code"] )
* SeeSoft ( [http://www.niss.org/technicalreports/tr113.pdf "Visualizing Software Changes"] )
* Sotoarc ( [http://www.software-tomography.com/html/sotoarc.html "Visualize the Structure of a Software System and Check its Architecture Conformance"] )
* Structure101 ( [http://www.headwaysoftware.com/products/structure101/index.php "Software Visualization for Understanding And Analyzing the Complexity of Your Software Architecture"] )
* Two-Tier Programming Toolkit ( [http://ttp.essex.ac.uk/index.php?page=navigation "Visualization of Java 1.5 Programs as LePUS3 charts"] )

Conferences and Workshops

* [http://www.softvis.org SoftVis] is the second meeting in a planned series of biennial conferences.
* [http://www.algoanim.net/pvw2006/ The Program Visualization Workshops] aim to bring together researchers who design and construct program, algorithm, or data structure visualizations or animations as well as educators who use or evaluate visualization or animations in their teaching.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Visualization — The term visualization may refer to:* Creative Visualization * Educational visualization * Flow visualization * Geovisualization * Illustration * Information graphics, visual representations of information, data, or knowledge * Interactive… …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Software prototyping — Software prototyping, a possible activity during software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.A prototype typically simulates only a few aspects of the features of the… …   Wikipedia

  • Software art — refers to works of art where the creation of software, or concepts from software, play an important role; for example software applications which were created by artists and which were intended as artworks. Although video games are also software… …   Wikipedia

  • Visualization (computer graphics) — See also Visualization and Information graphics Visualization is any technique for creating images, diagrams, or animations to communicate a message. Visualization through visual imagery has been an effective way to communicate both abstract and… …   Wikipedia

  • Software tools for molecular microscopy — There are a large number of software tools or software applications that have been specifically developed for the field sometimes referred to as molecular microscopy or cryo electron microscopy or cryoEM. Several special issues of the Journal of… …   Wikipedia

  • Software design pattern — In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a… …   Wikipedia

  • Visualization Library — infobox software name = Visualization Library genre = 3D graphics latest release version = Alpha 1 operating system = Cross platform license = GNU GPL 3 website = http://www.visualizationlibrary.com [http://www.visualizationlibrary.com… …   Wikipedia

  • Software rendering — In the context of rendering (computer graphics), software rendering refers to a rendering process that is unaided by any specialized hardware, such as a graphics card. The rendering takes place entirely in the CPU.IntroductionRendering everything …   Wikipedia

  • Scientific visualization — A scientific visualization of an extremely large simulation of a Rayleigh–Taylor instability caused by two mixing fluids.[1] Scientific visualization (also spelled scientific visualisation) is an interdisciplinary branch of science according to… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”