Skip to main content

Locating Bugs in Java Programs — First Results of the Java Diagnosis Experiments Project

  • Conference paper
  • First Online:
Intelligent Problem Solving. Methodologies and Approaches (IEA/AIE 2000)

Abstract

This paper describes the use of model-based reasoning for locating bugs in Java programs. Model-based diagnosis is a technology that uses a declarative, generic description of the behavior of the components occurring in a domain to construct a model of the overall system which can then be used at the desired level of abstraction to predict a system’s behavior and derive assumptions about which parts of the system are incorrect. This approach is particularly enticing when applied to software since the model can be constructed from the program automatically. However, the actual choice of models poses interesting challenges. We show a simple model based on dependencies that can be used to diagnose very large programs, and walk through an example debugging session.

This project was partially supported by the Austrian Science Fund (FWF) under project grant N Z29-INF. Cristinel Mateis was funded by the FWF under grant P12344-INF.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Gregory W. Bond. Logic Programs for Consistency-Based Diagnosis. PhD thesis, Carleton University, Faculty of Engineering, Ottawa, Canada, 1994.

    Google Scholar 

  2. Luca Console, Gerhard Friedrich, and Daniele Theseider Dupré. Model-based diagnosis meets error diagnosis in logic programs. In Proc. IJCAI, pages 1494–1499, Chambery, August 1993. Morgan Kaufmann.

    Google Scholar 

  3. Johan de Kleer and Brian C. Williams. Diagnosing multiple faults. Artificial Intelligence, 32(1):97–130, 1987.

    Article  MATH  Google Scholar 

  4. Gerhard Friedrich, Markus Stumptner, and Franz Wotawa. Model-based diagnosis of hardware designs. Artificial Intelligence, 111(2):3–39, July 1999.

    Article  MATH  MathSciNet  Google Scholar 

  5. Peter Fritzson and Henrik Nilsson. Algorithmic debugging for lazy functional languages. Journal of Functional Programming, 4(3), 1994.

    Google Scholar 

  6. Daniel Jackson. Aspect: Detecting Bugs with Abstract Dependences. ACM Transactions on Software Engineering and Methodology, 4(2):109–145, April 1995.

    Article  Google Scholar 

  7. Bogdan Korel. PELAS-Program Error-Locating Assistant System. IEEE Transactions on Software Engineering, 14(9):1253–1260, 1988.

    Article  Google Scholar 

  8. Ron I. Kuper. Dependency-directed localization of software bugs. Technical Report AI-TR 1053, MIT AI Lab, May 1989.

    Google Scholar 

  9. Cristinel Mateis, Markus Stumptner, and Franz Wotawa. Debugging of Java Programs using a Model-Based Approach. In Proceedings of the Tenth International Workshop on Principles of Diagnosis, Loch Awe, Scotland, 1999.

    Google Scholar 

  10. William R. Murray. Automatic Program Debugging for Intelligent Tutoring Systems. Pitman Publishing, 1988.

    Google Scholar 

  11. Henrik Nilsson. Declarative Debugging for Lazy Functional Languages. PhD thesis, Linköping University, April 1998.

    Google Scholar 

  12. Raymond Reiter. A theory of diagnosis from first principles. Artificial Intelligence, 32(1):57–95, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  13. Ehud Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, Massachusetts, 1983.

    Google Scholar 

  14. Markus Stumptner and Franz Wotawa. Debugging Functional Programs. In Proc. 16th IJCAI, Stockholm, Sweden, August 1999.

    Google Scholar 

  15. Markus Stumptner and Franz Wotawa. Detecting and locating faults in hardware designs. In AAAI 99 Workshop on Intelligent Software Engineering, Orlando, Florida, 1999.

    Google Scholar 

  16. Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352–357, July 1984.

    Article  Google Scholar 

  17. Franz Wotawa. New Directions in Debugging Hardware Designs. In Proceedings IEA/AIE, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mateis, C., Stumptner, M., Wotawa, F. (2000). Locating Bugs in Java Programs — First Results of the Java Diagnosis Experiments Project. In: Logananthara, R., Palm, G., Ali, M. (eds) Intelligent Problem Solving. Methodologies and Approaches. IEA/AIE 2000. Lecture Notes in Computer Science(), vol 1821. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45049-1_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-45049-1_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67689-8

  • Online ISBN: 978-3-540-45049-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics