Software visualization: Difference between revisions

Content deleted Content added
Undid revision 674270222 by Museagle (talk) not worth listing here
Citation bot (talk | contribs)
Added bibcode. | Use this bot. Report bugs. | Suggested by Abductive | Category:Infographics | #UCB_Category 53/121
 
(41 intermediate revisions by 32 users not shown)
Line 1:
{{confused|Visualization (computer graphics)}}
'''Software visualization'''<ref>{{cite book |first1=Johannes |last1=Bohnet, |first2=Jürgen |last2=Döllner: ''|chapter=Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs''. |title=4th International Workshop on Dynamic Analysis, ACM, |publisher=ACM Press, pp.|year=2006 |pages=41–48, 2006|doi=10.1145/1138912.1138922 |isbn=1595934006 |s2cid=17556465 }}</ref><ref>{{harvnb|Diehl, |2002}}; {{harvnb|Diehl, |2007}}; {{harvnb|Knight, |2002)}}</ref> or '''software visualisation''' refers to the visualization of information of and related to software systems -eithersystems—either the [[software architecture|architecture]] of its [[source code]] or metrics of their [[Run time (program lifecycle phase)|runtime behavior]]- and—and their development process by means of static, interactive or animated 2-D or 3-D<ref>({{harvnb|Marcus et al., |Feng|Maletic|2003}}; {{harvnb|Wettel et al., |Lanza|2007}})</ref> visual representations of their structure,<ref>({{harvnb|Staples & |Bieman, |1999)}}</ref> execution,<ref>{{cite book |first1=J. |last1=Trümper et|first2=J. al|last2=Döllner |first3=A.: ''|last3=Telea |chapter=Multiscale Visual Comparison of Execution Traces'' |doi=10.1109/ICPC.2013.6613833 |title=Proceedings of the International Conference on Program Comprehension, |publisher=IEEE Computer Society, pp.|year=2013 53|isbn=978-62,1-4673-3092-3 2013|pages=53–62 |s2cid=206839054 |url=https://pure.rug.nl/ws/files/14423309/2013ProcICPCTrumper.pdf }}</ref> behavior,<ref>({{harvnb|Kuhn et al., |Greevy|2006}}, {{harvnb|Stasko et al., 1997|Brown|Domingue|Price|1998}})</ref> and evolution.
{{mergefrom|Software map|date=August 2014}}
 
== Software Systemsystem Informationinformation ==
'''Software visualization'''<ref>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.</ref><ref>Diehl, 2002; Diehl, 2007; Knight, 2002)</ref> or '''software visualisation''' refers to the visualization of information of and related to software systems -either the [[software architecture|architecture]] of its [[source code]] or metrics of their [[Run time (program lifecycle phase)|runtime behavior]]- and their development process by means of static, interactive or animated 2-D or 3-D<ref>(Marcus et al., 2003; Wettel et al., 2007)</ref> visual representations of their structure,<ref>(Staples & Bieman, 1999)</ref> execution,<ref>J. Trümper et al.: ''Multiscale Visual Comparison of Execution Traces''. Proceedings of the International Conference on Program Comprehension, IEEE Computer Society, pp. 53-62, 2013.</ref> behavior,<ref>(Kuhn et al., 2006, Stasko et al., 1997)</ref> and evolution.
 
== Software System Information ==
Software visualization uses a variety of information available about software systems. Key information categories include:
* [[implementation]] artifacts such as [[source code]]s,
Line 13 ⟶ 11:
 
== Objectives ==
The objectives of software visualization are to support the [[program comprehension|understanding of software systems]] (i.e., its structure) and algorithms (e.g., by animating the behavior of sorting algorithms) as well as the analysis and exploration of software systems and their anomalies (e.g., by showing classes with high [[coupling (computer science)|coupling]]) and their development and evolution. One of the strengths of software visualization is to combine and relate information of software systems that are not inherently linked, for example by projecting code changes onto software execution traces.<ref>{{cite book |first1=J. |last1=Bohnet et|first2=S. al|last2=Voigt |first3=J.: ''|last3=Döllner |chapter=Projecting Codecode Changeschanges onto Executionexecution Tracestraces to Supportsupport Localizationlocalization of Recentlyrecently Introducedintroduced Bugs''.bugs 24th|title=Proceedings of the 2009 ACM Symposiumsymposium on Applied Computing, ACM, pp.|date=2009 |pages=438–442, 2009|isbn=9781605581668 |doi=10.1145/1529282.1529378 |s2cid=8349297 }}</ref>
 
Software visualization can be used as tool and technique to explore and analyze software system information, e.g., to discover anomalies similar to the process of [[Data mining|visual data mining]].<ref>({{harvnb|Keim, |2002}}; {{harvnb|Soukup, |Davidson|2002}}; {{harvnb|Burch, |Diehl|Weißgerber|2005}}).</ref> For example, software visualization is used to monitoring activities such as for code quality or team activity.<ref>{{cite book |first1=J. |last1=Bohnet, |first2=J. |last2=Döllner: ''|chapter=Monitoring Code Quality and Development Activity by Software Maps'' |doi=10.1145/1985362.1985365 |title=Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt, pp.|publisher=Association 9-16,for Computing Machinery |year=2011. |isbn=9781450305860 |pages=9–16 |s2cid=17258620 }}</ref> Visualization is inherently not inherently a method for [[software quality assurance]].{{fact|date=September 2017}} Software visualization participates to [[Software intelligence|Software Intelligence]] in allowing to discover and take advantage of mastering inner components of software systems.
 
==Types==
Tools for software visualization might be used to visualize source code and [[software bug|quality defect]]s during software development and maintenance activities. There are different approaches to map source code to a visual representation such as by [[software mapsmap]]s<ref>{{cite book |first1=D. |last1=Limberger et|first2=B. al|last2=Wasty |first3=J.: ''|last3=Trümper |first4=J. |last4=Döllner |chapter=Interactive Softwaresoftware Mapsmaps for Webweb-Basedbased Sourcesource Codecode Analysis''.analysis |title=Proceedings of the International18th Web3DInternational Conference, ACM,on pp.3D 8,Web Technology |date=2013 |pages=91–98 |isbn=9781450321334 |doi=10.1145/2466533.2466550 |s2cid=3040005 }}</ref> Their objective includes, for example, the automatic discovery and visualization of quality defects in object-oriented software systems and services. Commonly, they visualize the direct relationship of a class and its methods with other classes in the software system and mark potential quality defects. A further benefit is the support for visual navigation through the software system.
 
More or less specialized [[graph drawing software]] is used for software visualization. A small-scale 2003 survey of researchers active in the [[reverse engineering]] and [[software maintenance]] fields found that a wide variety of visualization tools were used, including general purpose graph drawing packages like [[GraphViz]] and [[GraphEd]], UML tools like [[Rational Rose]] and [[Borland Together]], and more specialized tools like [[Visualization of Compiler Graphs]] (VCG) and [[Rigi (software)|Rigi]].<ref>{{cite doijournal | doi = 10.1002/smr.270 | title=Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey | journal=Journal of Software Maintenance and Evolution: Research and Practice | date=2003 | volume=15 | issue=2 | pages=87–109 | first=Rainer | last=Koschke| doi-access=free }}</ref>{{rp|99–100}} The range of UML tools that can act as a visualizer by reverse engineering source is by no means short; a 2007 book noted that besides the two aforementioned tools, [[ESS-Model]], [[BlueJ]], and [[Fujaba]] also have this capability, and that Fujaba can also identify [[design pattern]]s.<ref name="Diehl2007">{{cite bookharvnb|author=Stephan Diehl|title=Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software|year=May 2007|publisher=Springer Science & Business Media|isbn=978-3-540-46505-8|pagep=63}}</ref>
 
==See also==
;;Programs:
* AgileJ<ref>{{cite web|url=http://www.agilej.com|title=AgileJ Homepage |publisher=AgileJ Ltd}}</ref>
* [[Imagix 4D]]
* [[NDepend]]
* [[SonarJSourcetrail]]
* [[Application discovery and understanding]]
* [[Sotoarc]]
 
;;Related concepts:
* [[Software maintenance]]
* [[Software map]]s
Line 41 ⟶ 35:
 
==Further reading==
*{{cite book |last1=Roels |first1=R. |last2=Meştereagă |first2=P. |last3=Signer |first3=B. |title=Computer Supported Education |series=Communications in Computer and Information Science |volume=583 |pages=169–188 |chapter=An Interactive Source Code Visualisation Plug-in for the MindXpres Presentation Platform |year=2016 |doi=10.1007/978-3-319-29585-5_10 |isbn=978-3-319-29584-8 |publisher=Springer }}
*{{cite book |last1=Burch, |first1=M., |last2=Diehl, |first2=S., and |last3=Weißgerber, |first3=P. (2005). |chapter=Visual data mining in software archives. |title=Proceedings of the 2005 ACM symposium on Software visualization (SoftVis '05). ACM,|year=2005 New|isbn= York,1595930736|pages=37–46 NY, USA, 37-46. {{doi|doi=10.1145/1056018.1056024 |s2cid=1577375 }}
* Diehl, S. (2002). ''Software Visualization''. International Seminar. Revised Papers (LNCS Vol. 2269), Dagstuhl Castle, Germany, 20–25 May 2001 (Dagstuhl Seminar Proceedings).
*{{cite book |first=S. |last=Diehl |title=Software Visualization. International Seminar Dagstuhl Castle, Germany, May 20–25, 2001 Revised Papers |volume=2269 |publisher=Springer |year=2002 |doi=10.1007/3-540-45875-1 |isbn=978-3-540-43323-1 |series=Lecture Notes in Computer Science |s2cid=21007575 }}
*{{cite Diehl,book |first=S. (2007).|last=Diehl ''|title=Software Visualization&nbsp; — Visualizing the Structure, Behaviour, and Evolution of Software''. |publisher=Springer, |year=2007, ISBN |isbn=978-3-540-46504-1 }}
*{{cite book |last1=Eades, |first1=P. and |last2=Zhang, |first2=K. (1996). "|title=Software Visualisation", |publisher=World Scientific |series=Series on Software Engineering and Knowledge Engineering, Vol.|volume=7, World Scientific Co., Singapore, |year=1996, ISBN |isbn=981-02-2826-0, 268 pages.}}
*{{cite book |last1=Gîrba, |first1=T., |last2=Kuhn, |first2=A., |last3=Seeberger, |first3=M., and |last4=Ducasse, |first4=S., "|chapter=How Developers Drive Software Evolution," |chapter-url=http://www.iam.unibe.ch/~scg/Archive/Papers/Girb05cOwnershipMap.pdf |title=Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2005), |publisher=IEEE Computer Society Press, 2005, pp|doi=10.&nbsp;113–122. [http:1109//wwwIWPSE.iam2005.unibe.ch/~scg/Archive/Papers/Girb05cOwnershipMap.pdf21 |year=2005 |isbn=0-7695-2349-8 |pages=113–122 |s2cid=9260583 PDF]}}
*{{cite Keim,journal |first=D. A. (2002).|last=Keim ''|title=Information visualization and visual data mining''. |journal=IEEE Transactions on Visualization and Computer Graphics, USA * vol |volume=8 (Jan. March 2002), no |issue=1, p|pages=1–8 1|date=January–March 8,2002 67|doi=10.1109/2945.981847 refs|bibcode=2002ITVCG...881847K }}
* Knight, C. (2002). ''System and Software Visualization''. In ''Handbook of software engineering & knowledge engineering''. Vol. 2, Emerging technologies (Vol. 2): World Scientific Publishing Company.
*{{cite book |last=Knight |first=C. |chapter=System and Software Visualization |editor=Chang Shi-kuo |series=Handbook Of Software Engineering And Knowledge Engineering |volume=2 |title=Emerging Technologies |chapter-url=https://books.google.com/books?id=sXfFCwAAQBAJ&pg=PA131 |date=2002 |publisher=World Scientific |isbn=978-981-4491-78-5 |pages=131–148 }}
*{{cite book |last1=Kuhn, |first1=A., and |last2=Greevy, |first2=O., "|chapter=Exploiting the Analogy Between Traces and Signal Processing," |title=Proceedings IEEE International Conference on Software Maintenance (ICSM 2006), |publisher=IEEE Computer Society Press, Los|year=2006 Alamitos|pages=394–5 CA, September 2006|doi=10.1109/ASE.2004.1342773 |isbn=0-7695-2131-2 [|chapter-url=http://www.iam.unibe.ch/~scg/Archive/Papers/Kuhn06cTraceSignalICSM2006.pdf PDF]}}
*{{cite Lanza,book |first=M. (2004).|last=Lanza ''|chapter=CodeCrawler&nbsp; — polymetric views in action''. |title=Proceedings. 19th International Conference on Automated Software Engineering, Linz, Austria, 20 24 Sept. 2004 *|year=2004 Los|pages=394–5 Alamitos, CA, USA: IEEE Comput|doi=10.1109/ASE. Soc, 2004,.1342773 p|isbn=0-7695-2131-2 394 5.}}
*{{cite book |last1=Lopez, |first1=F. L., |last2=Robles, |first2=G., & |last3=Gonzalez, |first3=B. J. M. (2004). ''|chapter=Applying social network analysis to the information in CVS repositories''. "|title=International Workshop on Mining Software Repositories (MSR 2004)" W17S Workshop 26th International Conference on Software Engineering, Edinburgh, Scotland, UK, 25 May 2004 *|publisher=IET Stevenage,|year=2004 UK|pages=101–5 |doi=10.1049/ic:20040485 IEE,|doi-broken-date=12 2004,July p2025 101|isbn=0-86341-432-X 5.}}
*{{cite Marcus,book |first1=A., Feng,|last1=Marcus |first2=L., & Maletic,|last2=Feng |first3=J. I. (2003).|last3=Maletic ''|chapter=3D representations for software visualization''. Paper|isbn=1581136420 presented at the|doi=10.1145/774833.774837 |title=Proceedings of the 2003 ACM symposium on Software visualization, San|date=2003 Diego,|pages=27–ff California.|s2cid=10263993 }}
* Soukup, T. (2002). ''Visual data mining : techniques and tools for data visualization and mining''. New York: Chichester.
*{{cite book |first1=Tom |last1=Soukup |first2=Ian |last2=Davidson |title=Visual Data Mining: Techniques and Tools for Data Visualization and Mining |url=https://books.google.com/books?id=9HsVknVqbo4C |date=2002 |publisher=Wiley |isbn=978-0-471-27138-3 }}
* Staples, M. L., & Bieman, J. M. (1999). ''3-D Visualization of Software Structure''. In ''Advances in Computers'' (Vol. 49, pp.&nbsp;96–143): Academic Press, London.
*{{cite journal |last1=Staples |first1=M.L. |last2=Bieman |first2=J.M. |title=3-D Visualization of Software Structure |journal=Advances in Computers |volume=49 |pages=96–143 |year=1999 |doi=10.1016/S0065-2458(08)60284-3 |isbn=9780120121496 |citeseerx=10.1.1.13.3090 }}
* Stasko, J. T., Brown, M. H., & Price, B. A. (1997). ''Software Visualization'': MIT Press.
*{{cite book |first1=John |last1=Stasko |first2=Marc H. |last2=Brown |first3=John B. |last3=Domingue |first4=Blaine A. |last4=Price |title=Software Visualization: Programming as a Multimedia Experience |url=https://books.google.com/books?id=13PaPtQqtHUC&pg=PP1 |year=1998 |publisher=MIT Press |isbn=978-0-262-19395-5 }}
*{{cite book |first1=F. |last1=Van Rysselberghe, F|first2=S. (2004).|last2=Demeyer ''|chapter=Studying Software Evolution Information By Visualizing the Change History''. |title=Proceedings. 20th International Conference On Software Maintenance. pp 328–337, |publisher=IEEE Computer Society Press, |year=2004 |pages=328–337 |isbn=0-7695-2213-0 |doi=10.1109/ICSM.2004.1357818 |s2cid=16571788 }}
*{{cite book |last1=Wettel, |first1=R., and |last2=Lanza, |first2=M., ''|chapter=Visualizing Software Systems as Cities''. In |title=Proceedings of VISSOFT 2007 (4th IEEE International Workshop on Visualizing Software For Understanding and Analysis), pp.&nbsp;92&nbsp;– 99, |publisher=IEEE Computer Society Press, |year=2007 |pages=92–99 |isbn=978-1-4244-0599-2 |doi=10.1109/VISSOF.2007.4290706 |s2cid=9974947 }}
*{{cite Zhang,book |first=K. (2003).|last=Zhang "|title=Software Visualization - From Theory to Practice". |publisher=Kluwer Academic Publishers, Boston, April |year=2003, ISBN |isbn=1-4020-7448-4, 468 pages.}}
 
==External links==
{{external links|date=July 2014}}
* [http://www.softvis.org SoftVis] the ACM Symposium on Software Visualization
* [http://vissoft.iro.umontreal.ca VISSOFT] 2nd IEEE Working Conference on Software Visualization
* [http://softvis.wordpress.com/ Software Visualization Blog] information on Software Visualization
* [http://code.google.com/p/epdv/ EPDV] Eclipse Project Dependencies Viewer
 
{{Visualization}}
=== Research groups ===
* [http://www.hpi.uni-potsdam.de/doellner/research/softvis.html SoftVis at Hasso Plattner Institute for IT Systems Engineering]
* [http://www.cs.rug.nl/svcg/SoftVis/SoftVis SoftVis at University of Groningen]
* [http://www.cc.gatech.edu/gvu/softviz/ SoftVis at Georgia Tec (GVU)]
* [http://www.cs.hut.fi/Research/SVG/ SoftVis at Helsinki University of Technology]
 
[[Category:Software engineering]]
[[Category:Infographics]]
[[Category:Software maintenance]]
Line 80 ⟶ 68:
[[Category:Source code]]
[[Category:Software]]
[[Category:Visualization (graphic)software]]