Das Projekt JADE Erweiterungen (engl. JADE Extensions, JADE-X) hat zum Ziel, ein intelligentes Werkzeug zu
entwickeln, welches das Debugging von Programmen so weit als möglich automatisiert, da diese Aufgabe während
des Entwicklungsprozeßes im allgemeinen viel Zeit benötigt und daher kostenintensiv ist. Daher wurden eine Reihe
von Techniken zum Debuggen und Verifizieren von Programmen entwickelt, wobei jeder dieser Ansätze
unterschiedliches Wissen über das Programm voraussetzt. Im Gegensatz zu einigen dieser Verfahren versucht
JADE-X nicht, ein Programm formal zu beweisen, da dies eine formale Spezifikation des Programms benötigt und
diese gewöhnlich nicht vorhanden ist.
Das während JADE-X zu entwickelnde Debugging-Werkzeug verwendet modellbasierte Diagnose (MBD), um
Programme zu analysieren. MBD wurde ursprünglich zur Diagnose von physikalischen Systemen entwickelt und
benötigt ein komponentenbasiertes Modell des Systems, welches dessen Funktionalität beschreibt. Dieser Ansatz
kann auch für Programme angewendet werden, wobei die Komponenten aus Teilen des Programms (wie z.B.
Anweisungen oder Ausdrücken) gewonnen werden. Die Verbindungen werden aus den benötigten und veränderten
Variablen gewonnen. Da bei der Modellbildung eine Vielzahl von Eigenschaften berücksichtigt werden müssen
(z.B. die gewünschte Präzision), ist es nicht einfach ein allgemeines Modell eines Programms zu entwickeln und
muß daher genau untersucht werden.
JADE-X basiert auf den Ergebnissen eines vorangegangenen Projekts (JADE), und hat zum Ziel, die daraus
gewonnen Ergebnisse weiter zu verbessern. Mehrere Modelle, welche unterschiedliche Aspekte eines Programms
repräsentieren, sind zu entwickeln. Durch Kombinationen der Modelle soll eine Reduktion der Fehlerkandidaten,
der benötigten Zeit und der Benutzerinteraktin erreicht werden. Als Ergebnis von JADE-X sollen folgende Ziele
erreicht werden: (1) Entwicklung unterschiedlicher Modelle für Programme, (2) Untersuchung der Eigenschaften
der Modelle (z.B.: wann kann ein Modell sinnvoll eingesetzt werden?); (3) Verbesserung der Diagnosealgorithmen;
(4) Empirische Analyse der Ergebnisse unter Verwendung praktisch relevanter Programme; (5) Entwicklung eines
Werkzeugs, welches multiple Modelle, Diagnosealgorithmen und Spezifikationsmöglichkeiten des gewünschten
Verhaltens vereint.