Showing posts with label Reverse Engineering. Show all posts
Showing posts with label Reverse Engineering. Show all posts

Monday, January 16, 2012

MaintainJ Reverse Engineering Tool


 MaintainJ reduces the time needed to understand complex enterprise Java applications from days to minutes. It also helps to document the application's runtime behaviour using sequence and class diagrams.

MaintainJ generates runtime sequence diagrams using the call trace captured for a single use case while you run the application. The captured information includes data at each method call, any sql calls to the database and the response time of each call. 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.

Supported applications are :

J2SE applications/Applets/JUnit

J2EE applications : Tomcat 4, 5, 6 & 7, JBoss 3, 4 & 5, WebLogic 8, 9 & 10, WebSphere 5, 6 & 7. Glassfish and Jetty servers are also supported

Databases : Oracle, DB2, MySQL, PostgreSQL and Derby out of the box. Microsoft SQL Server also is supported

MaintainJ UML Diagram Editor renders sequence and class diagrams from the call trace files.

MaintainJ is priced from $150 per user. Very reasonably priced for time saved in understanding java applications.

ONE

Reverse Engineering Tool JavaCallTracer

Javacalltracer is a reverse engineering tool for Java/J2EE programs.

Can be used in a situation where you need to analyze a java program that was developed by someone else and there is not much documentation available about the program. Normally the way people work in such a situation is that they study the source code to understand its working. But this is a very time consuming and error prone process and generally the output is a sequence diagram. This tool takes that manual work and automates it, which saves a lot of time and effort.

This tool can also be used to do design validation after the coding phase of a project. So once all the code has been written I as an architect can just run the program and generate all the sequence diagrams from the working program and compare them to my design sequence diagram to check if the design was properly followed.

This tool is actually a combination of 2 tools
1] Calltracer
2] Calltrace2Seq

The Calltracer tool attaches to the JVM of your java program (while it is running) and records the call trace. This can then be printed out in XML or Text formats.

Once you have used the Calltracer tool to generate a XML output you can then use the Calltrace2Seq tool (which is a simple java program) to convert it to a UML sequence diagram. More details are available at "Using the Calltrace2Seq tool".

The sequence diagram will be generated in SVG format. SVG can be opened in browser.

Incase your java program has multiple threads, you will find that the generated output has multiple Thread elements. Each thread element has the call trace coressponding to a thread of the program.