Runtime debugging using reverse-engineered UML

  • Authors:
  • Orest Pilskalns;Scott Wallace;Filaret Ilas

  • Affiliations:
  • School of Engineering and Computer Science, Washington State University, Vancouver;School of Engineering and Computer Science, Washington State University, Vancouver;School of Engineering and Computer Science, Washington State University, Vancouver

  • Venue:
  • MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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.