Java Diagnosis Experiments (JADE)
Java Diagnosis Experiments (JADE)
Disciplines
Computer Sciences (100%)
Keywords
-
Model-Based Reasoning Diagnosis Programm Debugging Java,
Debugging,
Diagnosis,
Java,
Model-Based Reasonin,
Programm
Over the last years, model-based reasoning and model-based diagnosis have become part of the standard repertoire of Artificial Intelligence techniques. The model-based approach has, for a wide spectrum of application domains, provided a solid foundation for knowledge-based systems development, while avoiding the mixing of strategy and domain knowledge that tends to impede development and maintenance of traditional rule-based expert systems. However, while MBD has been applied successfully in many technical domains, one domain that so far has attracted little interest despite its undeniable potential is that of software debugging. Indeed, a strong research field has developed in the logic programming community based on mechanisms which are much less powerful than those procided by the model-based approach. Therefore, the application MBD techniques to the software arena is not only a topic of high significance, it also has been little covered by the scientific community. In a previous project, we have established the groundwork for the theory and practice of applying MBD to software debugging. The experience gained in the development of a model-based tool for supporting the debugging of the hardware specification language VHDL (which is a close relative of the programming language Ada) shows that similar concepts can be applied to functional and imperative programming languages. The project is intended to examine issues such as modeling, fault models and representation of background knowledge about system and programmers, measurement selection, and a number of other issues that have been identified as being relevant for future development of the approach. The Java language has been chosen as a vehicle for the project due to its relatively simple semantics, its ubiquity (if not now, then in the near future), and its imperative and object-oriented characteristics, which place it in the mainstream of programming language evolution over the next decade.
The JADE project dealt with the automatic localization of source code bugs in Java programs. This task was supported by extensive theoretical research activities, which provided the basis for numerous publications by the members of the project team. The practical outcome of the project is the JADE prototype debugging environment, which makes it possible to automatically limit the amount of suspect code in Java programs and in a second step unambiguously locate faults in an interactive and iterative debugging process. The approaches chosen within JADE scored satisfying results and turned out to be promising for future research activities. Report Faults in software systems not only stand for inconveniences for the user, but also result in a drastic increase of the total production costs. Therefore, the development of a tool, which automatically locates and possibly repairs such faults, is not only a technically challenging task, but includes an important economic and social relevance. Over the last three years the JADE project has been dealing with the application of model-based diagnosis techniques, which in the past have successfully been used to diagnose physical systems, to the software domain. The main goal was to provide a solid theoretical foundation for the location of bugs in computer programs and to develop a user-friendly and intuitive prototype debugger, which support its user in the localization of source code faults in Java programs. The theoretical activities of the JADE project mainly examined the general applicability of model-based diagnosis techniques to software debugging and related research directions within the field. Moreover, concrete methods and algorithms have been developed, which were prerequisites for the practical application of the chosen approaches and thus directly influenced the implementation tasks of the debugger prototype. These activities are documented by a master`s thesis, a PhD thesis, a professorial (habilitation) thesis, three journal publications and several articles and presentations at international conferences and workshops. The most notable outcome of the JADE project is the prototype debugging environment, which computes possible bug candidates for faulty Java programs. The system is fully functional and currently makes use of five different models of the analyzed Java program. The system`s diagnostic performance has been tested on several buggy Java programs and turned out to be promising. In all tests the parts of the programs including the faults could be reduced. Moreover, the faults could exactly be located in interactive debugging sessions. Empirically, the JADE system turned out to be superior to traditional diagnosis and debugging tools. Therefore, it seems promising to carry out further research activities in the project`s area and to combine the chosen approaches with existing software development techniques.
- Technische Universität Wien - 100%
- Franz Wotawa, Technische Universität Graz , associated research partner