  Correctness constraints provide a foundation for automated debugging within
object-oriented systems. This paper discusses a new approach to incorporating
correctness constraints into Java development environments. Our approach uses
the Object Constraint Language ("OCL") as a specification language and the Java
Debug Interface ("JDI") as a verification API. OCL provides a standard language
for expressing object-oriented constraints that can integrate with Unified
Modeling Language ("UML") software models. JDI provides a standard Java API
capable of supporting type-safe and side effect free runtime constraint
evaluation. The resulting correctness constraint mechanism: (1) entails no
programming language modifications; (2) requires neither access nor changes to
existing source code; and (3) works with standard off-the-shelf Java virtual
machines ("VMs"). A prototype correctness constraint auditor is presented to
demonstrate the utility of this mechanism for purposes of automated debugging.
