Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2394101.2394156acmconferencesArticle/Chapter ViewAbstractPublication PagesmodelsConference Proceedingsconference-collections
Article

Runtime debugging using reverse-engineered UML

Published: 30 September 2007 Publication History

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.

References

[1]
Agrawal, H., Horgan, J., London, S., Wong, W.: Fault Localization using Execution Slices and Dataflow Tests. In: Proceedings of the IEEE International Symposiumon Software Reliability Engineering, pp. 143-151. IEEE Computer Society Press, Los Alamitos (1995).
[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).
[3]
Binder, R.: Testing Object-Oriented Systems Models, Patterns, and Tools. Object Technology Series. Addison Wesley, Reading, Massachusetts (1999).
[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).
[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).
[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).
[7]
Jacobs, T., Musial, B.: Interactive Visual Debugging with UML. In: SoftVis '03. Proceedings of the 2003 ACM Symposium on Software Visualization, pp. 115-122. ACM Press, New York (2003).
[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).
[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).
[10]
Kollman, R., Gogolla, M.: Capturing Dynamic Program Behavior with UML Collaboration Diagrams. In: Proceedings CSMR, pp. 58-67 (2001).
[11]
Larman, C.: Applying UML and Patterns, 3rd edn. Prentice-Hall, Englewood Cliffs (2005).
[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).
[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).
[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).
[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).
[17]
Telles, M., Hsieh, Y.: The Science of Debugging, The Coriolis Group, Scottsdale, AZ (2001).
[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).
[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).
[20]
xSlice: A Tool for Program Debugging, http://xsuds.argreenhouse.com/html-man/coverpage.html

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MODELS'07: Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
September 2007
696 pages
ISBN:3540752080
  • Editors:
  • Gregor Engels,
  • Bill Opdyke,
  • Douglas C. Schmidt,
  • Frank Weil

Sponsors

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 30 September 2007

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 118 of 382 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media