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].
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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.
M.J. Baker and S.G. Eick. Space-filling software visualization. Journal of Visual Languages and Computing, 6:119–133, 1995.
M.J. Baker and S.G. Eick. Software visualization in the large. IEEE Computer, pages 33–43, April, 1996.
R.M. Baecker and A.Marcus. Human Factors and Typography for More Readable Programs. ACM Press, Addison-Wesley Publishing Company, 1990.
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.
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.
R. Brooks. Towards a theory of the comprehension of computer programs. International Journal of Man-Machine Studies, 18:543–554, 1983.
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.
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.
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.
CodeWarrior.http://www.metrowerks.com/
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.
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.
J. Favre. GSEE: A Generic Software Exploration Environment. In Proceedings of the Ninth International Workshop on Program Comprehension, Toronto, Canada, May, 2001.
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.
Imagix 4D. Imagix Corporation http://www.imagix.com/index.html.
Sun Microsystems. JavaBeans API specification, Version 1.01, http://java.sun.com/bcans, 1997.
Sun Microsystems. Javadoc Tool Home Page, http://java.sun.com/j2se/javadoc/index.html.
Andersson, Marcus. JavaRE — Java Roundtrip Engineering, http://javare.sourceforge.net/index.php.
Jazz 1.1, The University of Maryland. http://www.cs.umd.edu/hcil/jazz/.
C. Knight and M. Munro. Mediating Diverse Visualisations for Comprehension. In Proceedings of the Ninth International Workshop on Program Comprehension, Toronto, Canada, May, 2001.
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.
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.
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.
S. Letovsky. Cognitive processes in program comprehension. In Empirical Studies of Programmers, pages 58–79. Ablex Publishing Corporation, 1986.
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.
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.
von Mayrhauser and A.M. Vans. Program comprehension during software maintenance and evolution. IEEE Computer, pages 44–55, August 1995.
Mendelzon and J. Sametinger. Reverse engineering by visualizing and querying. Software — Concepts and Tools, 16:170-182, 1995.
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.
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.
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.
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.
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.
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.
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
D. A. Norman. The Design of Everyday Things. Currency and Doubleday, 1990.
P. Finnigan, et al. The Software Bookshelf. IBM Systems Journal, Vol. 36, No. 4, pp. 564–593, Nov. 1997.
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.
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.
D.A. Penny. The Software Landscape: A Visual Formalism for Programming-in-the-Large. PhD thesis, Department of Computer Science, University of Toronto, 1992.
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.
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.
V. Rajlich, N. Damaskinos, and P. Linos. VIFOR: A tool for software maintenance. Software—Practice and Experience, 20(1):67–77, January 1990.
S.P. Reiss. Pecan: Program development systems that support multiple views. IEEE Transactions on Software Engineering, SE-11(3):276–285, March 1985.
S.P. Reiss. An engine for the 3D visualization of program information. Journal of Visual Languages and Computing, 6:299–323, 1995.
G.-C. Roman and K.C. Cox. A taxonomy of program visualization systems. IEEE Computer, 26(12):11–24, December 1993.
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.
Shneiderman. Software Psychology: Human Factors in Computer and Information Systems. Winthrop Publishers, Inc., 1980.
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.
SNiFF+ 2.3. User’s Guide and Reference, TakeFive Software. http://www.takefive.com , December, 1996.
Soloway and K. Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, SE-10(5):595–609, September, 1984.
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.
W. Stacy and J. MacMillian. Cognitive bias in software engineering. Communications of the ACM, 38(6):57–63, June 1995.
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.
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.
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.
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.
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.
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.
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.
E.R. Tufte. Envisioning Information. Graphics Press, 1990.
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.
Visual Age for Java, IBM. http://www-4.ibm.com/software/ad/vajava/.
K. Walrath and M. Campione. The JFC Swing Tutorial: A Guide for Constructing GUIs, Addison-Wesley, 1999.
C. Ware, D. Hui, and G. Franck. Visualizing object oriented software in three dimensions. In CASCON′93 Proceedings, Toronto, Canada, November, 1993.
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.
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352–357, July 1984.
J. Wu and M.-A. Storey. A Multi-Perspective Software Visualization Environment. In Proceedings of CASCON 2000, Toronto, Canada, November 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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