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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gregory W. Bond. Logic Programs for Consistency-Based Diagnosis. PhD thesis, Carleton University, Faculty of Engineering, Ottawa, Canada, 1994.
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.
Johan de Kleer and Brian C. Williams. Diagnosing multiple faults. Artificial Intelligence, 32(1):97–130, 1987.
Gerhard Friedrich, Markus Stumptner, and Franz Wotawa. Model-based diagnosis of hardware designs. Artificial Intelligence, 111(2):3–39, July 1999.
Peter Fritzson and Henrik Nilsson. Algorithmic debugging for lazy functional languages. Journal of Functional Programming, 4(3), 1994.
Daniel Jackson. Aspect: Detecting Bugs with Abstract Dependences. ACM Transactions on Software Engineering and Methodology, 4(2):109–145, April 1995.
Bogdan Korel. PELAS-Program Error-Locating Assistant System. IEEE Transactions on Software Engineering, 14(9):1253–1260, 1988.
Ron I. Kuper. Dependency-directed localization of software bugs. Technical Report AI-TR 1053, MIT AI Lab, May 1989.
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.
William R. Murray. Automatic Program Debugging for Intelligent Tutoring Systems. Pitman Publishing, 1988.
Henrik Nilsson. Declarative Debugging for Lazy Functional Languages. PhD thesis, Linköping University, April 1998.
Raymond Reiter. A theory of diagnosis from first principles. Artificial Intelligence, 32(1):57–95, 1987.
Ehud Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, Massachusetts, 1983.
Markus Stumptner and Franz Wotawa. Debugging Functional Programs. In Proc. 16th IJCAI, Stockholm, Sweden, August 1999.
Markus Stumptner and Franz Wotawa. Detecting and locating faults in hardware designs. In AAAI 99 Workshop on Intelligent Software Engineering, Orlando, Florida, 1999.
Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352–357, July 1984.
Franz Wotawa. New Directions in Debugging Hardware Designs. In Proceedings IEA/AIE, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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