MaintainJ, an Eclipse plug-in, generates runtime sequence and class diagrams for a given use case, helping the users to quickly understand a complex Java or J2EE application. MaintainJ, an Eclipse plug-in, generates sequence and class diagrams for a given use case, helping the users to quickly understand a complex Java or J2EE application. MaintainJ logs runtime method execution sequence to a file and uses that trace file to render sequence and class diagrams. MaintainJ Instrumentation Wizard instruments a Java/J2EE application and MaintainJ UML Editor renders sequence and class diagram from the trace file. The following features make MaintainJ a unique and useful tool for Java developers. a) Generated Diagrams - Runtime sequence and class diagrams for a given use case are generated on demand in a few minutes; no need to prepare and update UML diagrams. b) Source Untouched - The application code is not changed in anyway; application is rebuilt using AspectJ compiler to capture the method execution sequence at runtime. c) Collapsible Calls - Method calls in sequence diagram are collapsible. One can easily explore a complex sequence diagram by collapsing and expanding calls as necessary. d) Focused Diagrams - Only application classes in specified packages are shown in diagrams. All repeat calls occurring in a loop and recursive calls are removed from sequence diagrams. e) Runtime Diagrams - All classes shown in the diagrams are concrete runtime classes. f) Eclipse Integration - Double clicking a call or class opens matching method or class in Eclipse. g) Outline Views - Outline views in both diagrams make navigating a complex diagram easier. h) Print or Export - Diagrams can be printed or exported as JPEG images.