skip to main content
10.1145/1409720.1409724acmconferencesArticle/Chapter ViewAbstractPublication PagessoftvisConference Proceedingsconference-collections
research-article

Visualization of exception handling constructs to support program understanding

Published: 16 September 2008 Publication History

Abstract

This paper presents a new visualization technique for supporting the understanding of exception-handling constructs in Java programs. To understand the requirements for such a visualization, we surveyed a group of software developers, and used the results of that survey to guide the creation of the visualizations. The technique presents the exception-handling information using three views: the quantitative view, the flow view, and the contextual view. The quantitative view provides a high-level view that shows the throw-catch interactions in the program, along with relative numbers of these interactions, at the package level, the class level, and the method level. The flow view shows the type-throw-catch interactions, illustrating information such as which exception types reach particular throw statements, which catch statements handle particular throw statements, and which throw statements are not caught in the program. The contextual view shows, for particular type-throw-catch interactions, the packages, classes, and methods that contribute to that exception-handling construct. The paper also presents a case study in which we evaluated a prototype of the visualization system on a small set of developers.

References

[1]
Chang, B.-M., Jo, J.-W., and Her, S. H. 2002. Visualization of exception propagation for Java using static analysis. In Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation, 173--182.
[2]
Eick, S. G., Steffen, J. L., and Eric E. Sumner, J. 1992. Seesoft-a tool for visualizing line oriented software statistics. IEEE Transactions on Software Engineering 18, 11, 957--968.
[3]
Fu, C., and Ryder, B. G. 2005. Navigating error recovery code in Java applications. In Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology eXchange, 40--44.
[4]
Fu, C., and Ryder, B. G. 2005. Testing and understanding error recovery code in Java applications. In Exception Handling in Object Oriented Systems: Developing Systems that Handle Exceptions, 15--26.
[5]
Fu, C., and Ryder, B. G. 2007. Exception-chain analysis: Revealing exception handling architecture in Java server applications. In Proceedings of the 29th International Conference on Software Engineering, 230--239.
[6]
Gosling, J., Joy, B., Steele, G., and Bracha, G. 2005. Java Language Specification. Prentice Hall.
[7]
Lintern, R., Michaud, J., Storey, M.-A., and Wu, X. 2003. Plugging-in visualization: Experiences integrating a visualization tool with Eclipse. In Proceedings of the 2003 ACM Symposium on Software Visualization, 47--56.
[8]
Reimer, D., and Srinivasan, H. 2003. Analyzing exception usage in large Java applications. In Workshop on Exception Handling in Object Oriented Systems, 10--19.
[9]
Robillard, M. P., and Murphy, G. C. 1999. Analyzing exception flow in Java programs. In Proceedings of the 7th European Software Engineering Conference held jointly with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 322--337.
[10]
Robillard, M. P., and Murphy, G. C. 2000. Designing robust Java programs with exceptions. In Proceedings of the 8th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2--10.
[11]
Robillard, M. P., and Murphy, G. C. 2003. Static analysis to support the evolution of exception structure in object-oriented systems. ACM Transactions on Software Engineering and Methodology 12, 2, 191--221.
[12]
Ryder, B. G., Smith, D., Kremer, U., Gordon, M., and Shah, N. 2000. A static study of Java exceptions using JESP. In Proceedings of the 9th International Conference on Compiler Construction, 67--81.
[13]
Schaefer, C. F., and Bundy, G. N. 1993. Static analysis of exception handling in Ada. Software - Practice and Experience 23, 10, 1157--1174.
[14]
Shneiderman, B. 1996. The eyes have it: A task by data type taxonomy for information visualizations. In Proceedings of the IEEE Symposium on Visual Languages, 336--343.
[15]
Sinha, S., and Harrold, M. J. 1998. Analysis of programs with exception-handling constructs. In Proceedings of the International Conference on Software Maintenance, 348--357.
[16]
Sinha, S., and Harrold, M. J. 2000. Analysis and testing of programs with exception handling constructs. IEEE Transactions on Software Engineering 26, 9, 849--871.
[17]
Sinha, S., Orso, A., and Harrold, M. J. 2004. Automated support for development, maintenance, and testing in the presence of implicit control flow. In Proceedings of the 26th International Conference on Software Engineering, 336--345.
[18]
Tollis, I. G., Battista, G. D., Eades, P., and Tamassia, R. 1998. Graph Drawing: Algorithms for the Visualization of Graphs. Prentice Hall.
[19]
Vallée-Rai, R., Co, P., Gagnon, E., Hendren, L., Lam, P., and Sundaresan, V. 1999. Soot - a Java bytecode optimization framework. In Proceedings of the Conference of the Center for Advanced Studies on Collaborative Research, 125--135.
[20]
Van Someren, M. W., Barnard, Y. F., and Sandberg, J. A. C. 1994. The Think Aloud Method: a Practical Guide to Modelling Cognitive Processes. Academic Press, London, San Diego.
[21]
Vessey, I. 1985. Expertise in debugging computer programs: A process analysis. International Journal of Man-Machine Studies 23, 5, 459--494.

Cited By

View all
  • (2021)Where to Handle an Exception? Recommending Exception Handling Locations from a Global Perspective2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00042(369-380)Online publication date: May-2021
  • (2020)Code recommendation for exception handlingProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409690(1027-1038)Online publication date: 8-Nov-2020
  • (2019)A Study on the Effects of Exception Usage in Open-Source C++ Systems2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2019.00010(1-11)Online publication date: Sep-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SoftVis '08: Proceedings of the 4th ACM symposium on Software visualization
September 2008
228 pages
ISBN:9781605581125
DOI:10.1145/1409720
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 September 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Eclipse plugin
  2. exception handling
  3. interactive visualization
  4. multiple views
  5. program understanding

Qualifiers

  • Research-article

Funding Sources

Conference

Softvis '08

Acceptance Rates

Overall Acceptance Rate 20 of 65 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Where to Handle an Exception? Recommending Exception Handling Locations from a Global Perspective2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00042(369-380)Online publication date: May-2021
  • (2020)Code recommendation for exception handlingProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409690(1027-1038)Online publication date: 8-Nov-2020
  • (2019)A Study on the Effects of Exception Usage in Open-Source C++ Systems2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2019.00010(1-11)Online publication date: Sep-2019
  • (2018)EH-Recommender: Recommending Exception Handling Strategies Based on Program Context2018 23rd International Conference on Engineering of Complex Computer Systems (ICECCS)10.1109/ICECCS2018.2018.00019(104-114)Online publication date: Dec-2018
  • (2017)Moonstone: Support for understanding and writing exception handling code2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VLHCC.2017.8103451(63-71)Online publication date: Oct-2017
  • (2016)Examining programmer practices for locally handling exceptionsProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2903497(484-487)Online publication date: 14-May-2016
  • (2016)Understanding the exception handling strategies of Java librariesProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2901757(212-222)Online publication date: 14-May-2016
  • (2016)Integrated analysis of exception flows and handler actions in Java librariesProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851793(1520-1526)Online publication date: 4-Apr-2016
  • (2015)Variable Data-Flow Graph for Lightweight Program Slicing and VisualizationIEICE Transactions on Information and Systems10.1587/transinf.2014EDP7395E98.D:6(1194-1205)Online publication date: 2015
  • (2014)Validation of Software Visualization ToolsProceedings of the 2014 Second IEEE Working Conference on Software Visualization10.1109/VISSOFT.2014.19(60-69)Online publication date: 29-Sep-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media