Visual software analytics for the build optimization of large-scale software systems

Abstract

Visual analytics is the science of analytical reasoning facilitated by interactive visual interfaces. In this paper, we present an adaptation of the visual analytics framework to the context of software understanding for maintenance. We discuss the similarities and differences of the general visual analytics context with the software maintenance context, and present in detail an instance of a visual software analytics application for the build optimization of large-scale code bases. Our application combines and adapts several data mining and information visualization techniques in answering several questions that help developers in assessing and reducing the build cost of such code bases by means of user-driven, interactive analysis techniques.

References

  1. AT&T (2007) The GraphViz package. http://www.graphviz.org

  2. Balanyi Z, Ferenc R (2003) Mining design patterns from C++ source code. In: Proceedings of ICSM, IEEE. pp 305–314

  3. Baxter I, Pidgeon C, Mehlich M (2004) DMS: program transformations for practical scalable software evolution. In: Proceedings of ICSE, IEEE, pp 625–634

  4. Belady LA, Lehman MM (1976) A model of large program development. IBM Syst J 15(3): 225–252

    MATH  Article  Google Scholar 

  5. Bell Labs (2007) The CScope code browser. http://cscope.sourceforge.net

  6. Booch G (2006) On architecture. IEEE Softw 23(2): 16–18

    Article  Google Scholar 

  7. Corbi T (1999) Program understanding: challenge for the 1990s. IBM Syst J 28(2): 294–306

    Article  Google Scholar 

  8. Ctags Team (2007) Ctags home page. http://ctags.sourceforge.net

  9. Diehl S (2007) Software visualization visualizing the structure, behaviour, and evolution of software. Springer, Berlin

    MATH  Google Scholar 

  10. Eick S, Steffen S, Sumner E (1992) Seesoft-a tool for visualizing line oriented software statistics. IEEE Trans Soft Eng 18(11): 957–968

    Article  Google Scholar 

  11. Elrad T, Aksit M, Kiczales G, Lieberherr K, Osher H (2003) Discussing aspects of AOP. Commun ACM 44(10): 33–38

    Article  Google Scholar 

  12. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design Patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading

    Google Scholar 

  13. Godfrey MW, Tu Q (2000) Evolution in open source software: a case study. In: Proceedings of international conference on software maintenance (ICSM), IEEE. pp 131–142

  14. Havre S, Hetzler E, Whitney P, Nowell L (2002) ThemeRiver: visualizing thematic changes in large document collections. IEEE TVCG 8: 9–20

    Google Scholar 

  15. Holt G (2007) Makepp home page. http://makepp.sourceforge.net

  16. Klemola T, Rilling J (2000) Modelling comprehension processes in software development. In: Proceedings of international Conference on cognitive informatics (ICCI), IEEE, pp 329–337

  17. Lanza M (2004) CodeCrawler—polymetric views in action. In: Proceedings of ASE, IEEE. pp 394–395

  18. Lanza M, Marinescu R (2006) Object-oriented metrics in practice—using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Springer, Berlin

    MATH  Google Scholar 

  19. Lienhardt A, Kuhn A, Greevy O (2007) Rapid prototyping of visualizations using mondrian. In: Proceedings of VISSOFT, IEEE. pp 67–70

  20. Lin Y, Holt RC, Malton AJ (2003) Completeness of a fact extractor. In: Proceedings of WCRE, IEEE. pp 196–204

  21. Littlefair T (2007) C and C++ code counter. http://sourceforge.net/projects/cccc

  22. Lommerse G, Nossin F, Voinea L, Telea A (2005) The visual code navigator: an interactive toolset for source code investigation. In: Proceedings of infoVis, IEEE, pp 24–31

  23. Mozilla Inc (2008) The Mozilla browser. http://www.mozilla.org

  24. OMG (2008) The unified modeling language. http://www.uml.omg

  25. Pigorsky TM (1996) Practical software maintenance. Wiley, London

    Google Scholar 

  26. PNNL (2008) The IN-SPIRE visualization system. http://in-spire.pnl.gov

  27. Rao R, Card S (1994) The table lens: merging graphical and symbolic representations in an interactive focus+context visualization for tabular information. In: Proceedings of CHI, ACM, pp 222–230

  28. Shneiderman B, Bederson B, Wattenberg M (2008) The Treemap 4.0 visualization system. http://www.cs.umd.edu/hcil/treemap

  29. Spinellis D (2007) The CScout extractor. http://www.spinellis.gr

  30. Standish TA (1984) An essay on software reuse. IEEE Trans Softw Eng 10(5): 494–497

    Article  Google Scholar 

  31. Telea A, Voinea L (2008) An interactive reverse-engineering environment for large-scale C++ code. In: Proceedings of ACM SOFTVIS, pp 67–76

  32. Telea A, Maccari A, Riva C (2002) An open toolkit for prototyping reverse engineering visualizations. In: Proceedings of data visualization (VisSym), IEEE, pp 56–64

  33. Teyseyre A, Campo M (2009) An overview of 3D software visualization. IEEE Trans Vis Comput Graph 15(8): 87–105

    Article  Google Scholar 

  34. Thomas J, Cook KA (2005) Illuminating the path: the research and development agenda for visual analytics. National Visualization and Analytics Center, IEEE CS Press, Richland

  35. Tilley S, Wong K, Storey M, Müller H (1994) Programmable reverse engineering. Int J Softw Eng Knowl Eng 4(4): 501–520

    Article  Google Scholar 

  36. Wong PC, Thomas J (2004) Visual analytics. IEEE Comput Graph Appl 24(5): 20–21

    Article  Google Scholar 

Download references

Open Access

This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Alexandru Telea.

Rights and permissions

Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.

Reprints and Permissions

About this article

Cite this article

Telea, A., Voinea, L. Visual software analytics for the build optimization of large-scale software systems. Comput Stat 26, 635 (2011). https://doi.org/10.1007/s00180-011-0248-2

Download citation

Keywords

  • Software visualization
  • Visual analytics
  • Static analysis