* Understand and document complex Enterprise Java applications. MaintainJ is a run time reverse engineering tool for Java applications which automatically generates UML class and sequence diagrams for a use case at run time. MaintainJ reduces the effort required to document Java applications and also helps users understand and analyze complex Java applications. The user friendly sequence diagrams generated by MaintainJ show the runtime interaction between different classes of a Java application. The SQL calls made while executing the use case are also displayed. You can trace applications running on a single JVM or on multiple JVM's and view the end-to-end call trace in a single sequence diagram.