Skip to main content

Designing a Software Exploration Tool Using a Cognitive Framework

  • Chapter
Software Visualization

Part of the book series: The Springer International Series in Engineering and Computer Science ((SECS,volume 734))

Abstract

Software visualization is considered by many researchers to be a useful and powerful technique for helping programmers understand large and complex programs. Consequently, many visualization tools have been developed for exploring software code and documentation. Some software visualization tools use graphical representations for the navigation, analysis and presentation of software information to further understanding [43]. For instance, several software visualization tools show animations with the goal of teaching widely used algorithms and data structures. Another class of tools shows the dynamic execution of programs for debugging, profiling and for understanding run-time behavior. Other software visualization tools mainly focus on showing textual representations, some of which may be pretty printed to increase understanding [4, 15] or use hypertext in an effort to improve the navigability of the software [40].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. V. Almstrum, M. Petre, A. Berglund, N. Dale, M. Granger, J. C. Little, D. M. Miller, P. Schragger, and F. Springsteel. Evaluation: Turning technology from toy to tool. Report of the Working Group on Evaluation, SIGCSE Bulletin, Volume 28, Special Issue, 1996.

    Google Scholar 

  2. M.J. Baker and S.G. Eick. Space-filling software visualization. Journal of Visual Languages and Computing, 6:119–133, 1995.

    Article  Google Scholar 

  3. M.J. Baker and S.G. Eick. Software visualization in the large. IEEE Computer, pages 33–43, April, 1996.

    Google Scholar 

  4. R.M. Baecker and A.Marcus. Human Factors and Typography for More Readable Programs. ACM Press, Addison-Wesley Publishing Company, 1990.

    Google Scholar 

  5. C. Best, M.-A. Storey and J. Michaud, Designing a Component-Based Framework for Visualization in Software Engineering and Knowledge Engineering, submitted to the Fourteenth International Conference on Software Engineering and Knowledge Engineering, Ischia, Italy, July 15–19, 2002.

    Google Scholar 

  6. M. Steckel, K. Brade, M. Guzdial and E. Soloway. Whorf: A visualization tool for software maintenance. In Proceedings 1992 IEEE Workshop on Visual Languages, Seattle, Washington: Sept 15–18, 1992, pages 148–154, 1992.

    Google Scholar 

  7. R. Brooks. Towards a theory of the comprehension of computer programs. International Journal of Man-Machine Studies, 18:543–554, 1983.

    Article  MathSciNet  Google Scholar 

  8. M.P. Consens, F.Ch. Eigler, M.Z. Hasan, A.O. Mendelzon, E.G. Noik, A.G. Ryman, and D.~Vista. Architecture and applications of the Hy+ system. IBM Systems Journal, 33(4):458–476, August 1994.

    Article  Google Scholar 

  9. Y.-F. Chen, M.Y. Nishimoto, and C.V. Ramamoorthy. The C information abstraction system. IEEE Transactions on Software Engineering, 16(1):325–334, March 1990.

    Article  Google Scholar 

  10. W. Citrin, C. Santiago, and B. Zorn. Scalable interfaces to support program comprehension. In 4th Workshop on Program Comprehension (WPC′96), Berlin, Germany, pages 123–132, March, 1996.

    Google Scholar 

  11. CodeWarrior.http://www.metrowerks.com/

  12. G. Di Battista, P. Eades, R. Tamassia, and I. Tollis, Algorithms for graph drawing: An annotated bibliography, Computational Geometry Theory and Applications, 4 (1994), pp. 235–282, 1994.

    Article  MathSciNet  MATH  Google Scholar 

  13. S.G. Eick and G.J. Wills. Navigating large networks with hierarchies. Proceedings Visualization ′93, (San Jose, California: October 25–29, 1993), pages 204–210, October 1993.

    Google Scholar 

  14. J. Favre. GSEE: A Generic Software Exploration Environment. In Proceedings of the Ninth International Workshop on Program Comprehension, Toronto, Canada, May, 2001.

    Google Scholar 

  15. T.D. Hendrix, J.H. Cross II, L.A. Barowski, and K.S. Mathias. Tool support for reverse engineering multi-lingual software. In Proceedings of the 4th Working Conference on Reverse Engineering (WCRE′97), Amsterdam, The Netherlands, pages 136–143, October, 1997.

    Google Scholar 

  16. Imagix 4D. Imagix Corporation http://www.imagix.com/index.html.

  17. Sun Microsystems. JavaBeans API specification, Version 1.01, http://java.sun.com/bcans, 1997.

  18. Sun Microsystems. Javadoc Tool Home Page, http://java.sun.com/j2se/javadoc/index.html.

  19. Andersson, Marcus. JavaRE — Java Roundtrip Engineering, http://javare.sourceforge.net/index.php.

  20. Jazz 1.1, The University of Maryland. http://www.cs.umd.edu/hcil/jazz/.

  21. C. Knight and M. Munro. Mediating Diverse Visualisations for Comprehension. In Proceedings of the Ninth International Workshop on Program Comprehension, Toronto, Canada, May, 2001.

    Google Scholar 

  22. G. Kurtenbach, G. Fitzmaurice, T. Owen and T. Baudel. The HotBox: Efficient Access to a Large Number of Menu-items. In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI′99), pp. 231–237, 1999.

    Google Scholar 

  23. P. Linos, P. Aubet, L. Dumas, Y. Helleboid, P. Lejeune, and P. Tulula. Visualizing program dependencies: An experimental study. Software—Practice and Experience, 24(4):387–403, April 1994.

    Article  Google Scholar 

  24. T. Lethbridge and N. Anquetil. Architecture of a Source Code Exploration Tool: A Software Engineering Case Study. Computer Science Technical Report TR-97-07, School of Information Technology and Engineering (SITE), University of Ottawa, Canada, 1997.

    Google Scholar 

  25. S. Letovsky. Cognitive processes in program comprehension. In Empirical Studies of Programmers, pages 58–79. Ablex Publishing Corporation, 1986.

    Google Scholar 

  26. D.C. Littman, J. Pinto, S. Letovsky, and E. Soloway. Mental models and software maintenance. In Empirical Studies of Programmers, pages 80–98. Ablex Publishing Corporation, 1986.

    Google Scholar 

  27. von Mayrhauser and A.M. Vans. From code understanding needs to reverse engineering tool capabilities. In Proceedings of CASE′93, Singapore, pages 230–239, July, 1993.

    Google Scholar 

  28. von Mayrhauser and A.M. Vans. Program comprehension during software maintenance and evolution. IEEE Computer, pages 44–55, August 1995.

    Google Scholar 

  29. Mendelzon and J. Sametinger. Reverse engineering by visualizing and querying. Software — Concepts and Tools, 16:170-182, 1995.

    Google Scholar 

  30. J. Michaud, M.-A. Storey and H.A. Müller. Integrating Information Sources for Visualizing Java Programs. Proceedings of International Conference on Software Maintenance (ICSM01), pages 250–259, Florence, Italy, November, 2001.

    Google Scholar 

  31. J. Maletic, J. Leigh, A. Marcus, G. Dunlap. Visualizing Object-Oriented Software in Virtual Reality. In Proceedings of the Ninth International Workshop on Program Comprehension, Toronto, Canada, May, 2001.

    Google Scholar 

  32. H.A. Müller, M.A. Orgun, S.R. Tilley, and J.S. Uhl. A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance: Research and Practice, 5(4):181–204, December 1993.

    Article  Google Scholar 

  33. H.A. Müller, S.R. Tilley, M.A. Orgun, B.D. Corrie, and N.H. Madhavji. A reverse engineering environment based on spatial and visual software interconnection models. In Proceedings of the Fifth ACM SIGSOFT Symposium on Software Development Environments (SIGSOFT′92), Tyson’s Corner, Virginia, pages 88–98, December 1992.

    Google Scholar 

  34. H.A. Müller and K.~Klashinsky. Rigi — A system for programming-in-the-large. In Proceedings of the 10th International Conference on Software Engineering (ICSE′10), Raffles City, Singapore; April 11–15, 1988, pages 80–86, April 1988.

    Google Scholar 

  35. B.A. Myers. Visual programming, programming by example, and program visualization: A taxonomy. In CHI '86: Human Factors in Computing Systems, pages 55–66, 1986.

    Google Scholar 

  36. N. F. Noy, R. W. Fergerson, and M. A. Musen. The Knowledge Model of Protégé-2000: Combining Interoperability and Flexibility. In Proceedings of International Conference on Knowledge Engineering and Knowledge Management (EKAW ′2000), Juan-Ies-Pins, France, 2000

    Google Scholar 

  37. D. A. Norman. The Design of Everyday Things. Currency and Doubleday, 1990.

    Google Scholar 

  38. P. Finnigan, et al. The Software Bookshelf. IBM Systems Journal, Vol. 36, No. 4, pp. 564–593, Nov. 1997.

    Article  Google Scholar 

  39. M. Petre and A.F. Blackwell. A Glimpse of Expert Programmers’s Mental Imagery. In Proceedings of the 7 th Workshop on Empirical Studies of Programmers, Virginia, USA, pp. 109–123, October, 1997.

    Google Scholar 

  40. M. Petre, A.F. Blackwell, and T.R.G. Green. Cognitive questions in software visualization. In Software Visualization: Programming as a Multi-Media Experience. MIT Press, 1997.

    Google Scholar 

  41. D.A. Penny. The Software Landscape: A Visual Formalism for Programming-in-the-Large. PhD thesis, Department of Computer Science, University of Toronto, 1992.

    Google Scholar 

  42. Plaisant, D. Carr, and B. Shneiderman. Image browsers: Taxonomy, guidelines, and informal specifications. Technical report, Human Computer Interaction Laboratory, University of Maryland, August 9, 1994.

    Google Scholar 

  43. B.A. Price, R.M. Baecker, and I.S. Small. A principled taxonomy of software visualization. Journal of Visual Languages and Computing, pages 211–266, June 1993.

    Google Scholar 

  44. V. Rajlich, N. Damaskinos, and P. Linos. VIFOR: A tool for software maintenance. Software—Practice and Experience, 20(1):67–77, January 1990.

    Article  Google Scholar 

  45. S.P. Reiss. Pecan: Program development systems that support multiple views. IEEE Transactions on Software Engineering, SE-11(3):276–285, March 1985.

    Article  Google Scholar 

  46. S.P. Reiss. An engine for the 3D visualization of program information. Journal of Visual Languages and Computing, 6:299–323, 1995.

    Article  Google Scholar 

  47. G.-C. Roman and K.C. Cox. A taxonomy of program visualization systems. IEEE Computer, 26(12):11–24, December 1993.

    Article  Google Scholar 

  48. S. Bassil and R. Keller. Software Visualization Tools: Survey and Analysis. In Proceedings of the 9 th International Workshop on Program Comprehension, Toronto, Canada, May, 2001.

    Google Scholar 

  49. Shneiderman. Software Psychology: Human Factors in Computer and Information Systems. Winthrop Publishers, Inc., 1980.

    Google Scholar 

  50. Shneiderman and R. Mayer. Syntactic/semantic interactions in programmer behavior: A model and experimental results. International Journal of Computer and Information Sciences, 8(3):219–238, 1979.

    Article  MATH  Google Scholar 

  51. SNiFF+ 2.3. User’s Guide and Reference, TakeFive Software. http://www.takefive.com , December, 1996.

  52. Soloway and K. Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, SE-10(5):595–609, September, 1984.

    Article  Google Scholar 

  53. Soloway, J. Pinto, S. Letovsky, D. Liftman, and R. Lampert. Designing documentation to compensate for delocalized plans. Communications of the ACM, 31(11):1259–1267, 1988.

    Article  Google Scholar 

  54. W. Stacy and J. MacMillian. Cognitive bias in software engineering. Communications of the ACM, 38(6):57–63, June 1995.

    Article  Google Scholar 

  55. M.-A. Storey, F.D. Fracchia and H. A. Müller. Cognitive Design Elements to support the Construction of a Mental Model During Software Exploration. Journal of Software Systems, special issue on Program Comprehension, volume 44, pp. 171–185, 1999.

    Article  Google Scholar 

  56. M.-A. Storey, F.D. Fracchia and H. A. Müller. Customizing A Fisheye View Algorithm to Preserve the Mental Map. Journal of Visual Languages and Computing, 10, 245–267, 1999.

    Article  Google Scholar 

  57. M.-A.Storey and H.A. Müller. Manipulating and Documenting Software Structures using SHriMP Views. In Proceedings of the 1995 International Conference on Software Maintenance (ICSM ′95), Opio (Nice), France, pp. 275–284, October 1995.

    Google Scholar 

  58. M.-A. Storey, K. Wong, and H.A. Müller. How do program understanding tools affect how programmers understand programs? In Proceedings of the 4th Working Conference on Reverse Engineering (WCRE′97), Amsterdam, The Netherlands, pages 12–21, October, 1997.

    Google Scholar 

  59. M.-A. Storey, K. Wong, P. Fong, D. Hooper, K. Hopkins, and H.A. Müller. On designing an experiment to evaluate a reverse engineering tool. In Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE′96), Monterey, California, pages 31–40, November, 1996.

    Google Scholar 

  60. M.-A. Storey, K. Wong, F. Fracchia and H. Müller. On Integrating Visualization Techniques for Effective Software Exploration. In Proc. of the Info Vis′1997, pages 38–45, Phoenix, USA, 1997.

    Google Scholar 

  61. M. Thüring, J. Hannemann, and J.M. Haake. Hypermedia and cognition: Designing for comprehension. Communications of the ACM, 38(8):57–66, August, 1995.

    Article  Google Scholar 

  62. E.R. Tufte. Envisioning Information. Graphics Press, 1990.

    Google Scholar 

  63. S.R. Tilley, K. Wong, M.-A. Storey, and H.A. Müller. Programmable reverse engineering. International Journal of Software Engineering and Knowledge Engineering, 4(4):501–520, December 1994.

    Article  Google Scholar 

  64. Visual Age for Java, IBM. http://www-4.ibm.com/software/ad/vajava/.

  65. K. Walrath and M. Campione. The JFC Swing Tutorial: A Guide for Constructing GUIs, Addison-Wesley, 1999.

    Google Scholar 

  66. C. Ware, D. Hui, and G. Franck. Visualizing object oriented software in three dimensions. In CASCON′93 Proceedings, Toronto, Canada, November, 1993.

    Google Scholar 

  67. A. Wasserman. Tool Integration in Software Engineering Environments. In F. Long (ed.) Software Engineering Environments, International Workshop on Environments Proceedings, Lecture Notes in Computer Science, No. 467, pp. 137–149, Springer-Verlag, Sep. 1989.

    Google Scholar 

  68. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352–357, July 1984.

    Article  Google Scholar 

  69. J. Wu and M.-A. Storey. A Multi-Perspective Software Visualization Environment. In Proceedings of CASCON 2000, Toronto, Canada, November 2000.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer Science+Business Media New York

About this chapter

Cite this chapter

Storey, MA. (2003). Designing a Software Exploration Tool Using a Cognitive Framework. In: Zhang, K. (eds) Software Visualization. The Springer International Series in Engineering and Computer Science, vol 734. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-0457-3_5

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-0457-3_5

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-5086-6

  • Online ISBN: 978-1-4615-0457-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics