Skip to main content

Runtime Debugging Using Reverse-Engineered UML

  • Conference paper
Model Driven Engineering Languages and Systems (MODELS 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4735))

Abstract

Finding runtime faults in object-oriented code can be very difficult even with the aid of modern runtime debuggers. Failures may manifest themselves due to decisions in the code that were executed much earlier in the program. Tracing execution paths and values backward from a failure to the faulty code can be a daunting task. We propose a fault finding approach that uses unit tests to exercise source code in order to trace object-method execution paths. This is similar to reverse-engineering techniques used to create Sequence Diagrams from code. It is often too complex to debug a program using a large set of reverse-engineered Sequence Diagrams each obtained from an individual execution. Therefore, our approach partitions and aggregates individual execution paths into into fault and non-fault revealing categories. By examining the differences between fault and non-fault paths, we are left with a simplified graph. The graph can then be transformed into a useful Sequence Diagram that may reveal the location of the faulty code.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Agrawal, H., Horgan, J., London, S., Wong, W.: Fault Localization using Execution Slices and Dataflow Tests. In: Proceedings of the IEEE International Symposium on Software Reliability Engineering, pp. 143–151. IEEE Computer Society Press, Los Alamitos (1995)

    Google Scholar 

  2. Briand, L., Labiche, Y., Miao, Y.: Towards the Reverse Engineering of UML Sequence Diagrams. In: IEEE 10th Working Conference on Reverse Engineering, IEEE Computer Society Press, Los Alamitos (2003)

    Google Scholar 

  3. Binder, R.: Testing Object-Oriented Systems Models, Patterns, and Tools. Object Technology Series. Addison Wesley, Reading, Massachusetts (1999)

    Google Scholar 

  4. Briand, L., Labiche, Y.: A UML-based Approach to System Testing. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 194–208. Springer, Heidelberg (2001)

    Google Scholar 

  5. De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J., Yang, J.: Visualizing the Execution of Java Programs. In: Diehl, S. (ed.) Software Visualization. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  6. Eagan, J., Harrold, M.J., Jones, J., Stasko, J.: Technical note: Visually Encoding Program Test Information to Find Faults in Software. In: Proceedings of IEEE Information Visualization, pp. 33–36. IEEE Computer Society Press, Los Alamitos (2001)

    Google Scholar 

  7. Jacobs, T., Musial, B.: Interactive Visual Debugging with UML. In: SoftVis 2003. Proceedings of the 2003 ACM Symposium on Software Visualization, pp. 115–122. ACM Press, New York (2003)

    Chapter  Google Scholar 

  8. Jerding, D.F., Stasko, J.T., Ball, T.: Visualizing Interactions in Program Executions. In: Proceedings International Conference on Software Engineering, pp. 360–370 (1997)

    Google Scholar 

  9. Jones, J., Harrold, M., Stasko, J.: Visualization of Test Information to Assist Fault Localization. In: Proceedings of the 24th International Conference on Software Engineering, pp. 467–477 (2002)

    Google Scholar 

  10. Kollman, R., Gogolla, M.: Capturing Dynamic Program Behavior with UML Collaboration Diagrams. In: Proceedings CSMR, pp. 58–67 (2001)

    Google Scholar 

  11. Larman, C.: Applying UML and Patterns, 3rd edn. Prentice-Hall, Englewood Cliffs (2005)

    Google Scholar 

  12. DeMillo, R., Pan, H., Spafford, E.: Failure and Fault Analysis For Software Debugging. In: Proceedings of the Computer Software and Applications Conference, pp. 515–521 (1997)

    Google Scholar 

  13. Object Management Group, UML 2.0 Draft Specification (2005), http://www.omg.org/uml

  14. Oechsle, R., Schmitt, T.: JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI). In: Diehl, S. (ed.) Software Visualization. LNCS, vol. 2269, pp. 176–190. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Richner, T., Ducasse, S.: Using Dynamic Information for the Iterative Recovery of Collaborations and Roles. In: Proceedings International Conference on Software Maintenance, pp. 34–43 (2002)

    Google Scholar 

  16. Systa, T., Koskimies, K., Muller, H.: Shimba – An Environment for Reverse Engineering Java Software Systems. Software – Practice and Experience 31(4), 371–394 (2001)

    Article  Google Scholar 

  17. Telles, M., Hsieh, Y.: The Science of Debugging, The Coriolis Group, Scottsdale, AZ (2001)

    Google Scholar 

  18. Vans, M., von Mayrhauser, A., Somlo, G.: Program Understanding Behavior during Corrective Maintenance of Large-scale Software. Int. Journal Human-Computer Studies 51, 31–70 (1999)

    Article  Google Scholar 

  19. Walker, R.J., Murphy, G.C., Freeman-Benson, B., Wright, D., Swanson, D., Isaak, J.: Visualizing Dynamic Software System Information through High-Level Models. In: Proceedings OOPSLA, pp. 271–283 (1998)

    Google Scholar 

  20. xSlice: A Tool for Program Debugging, http://xsuds.argreenhouse.com/html-man/coverpage.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gregor Engels Bill Opdyke Douglas C. Schmidt Frank Weil

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pilskalns, O., Wallace, S., Ilas, F. (2007). Runtime Debugging Using Reverse-Engineered UML. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds) Model Driven Engineering Languages and Systems. MODELS 2007. Lecture Notes in Computer Science, vol 4735. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75209-7_41

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-75209-7_41

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-75208-0

  • Online ISBN: 978-3-540-75209-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics