views:

5107

answers:

8

Hi -

I'm looking for a tool that will reverse engineer into a sequence diagram BUT also provides the ability to filter out calls to certain libraries.

For example, the Netbeans IDE does a fantastic job of this but it includes all calls to String or Integer which clutter up the diagram to the point it is unusable.

Any help is greatly appreciated!!!!!!!

FYI: The language in question is Java.

A: 

A friend of me directed me to SEQUENCE (http://www.xanthan.com/ajm/sequencev7/sequence.jar). I cannot find any other documentation than within the jar itself.

It does not parse Java source code directly, but uses a text-based representation of the sequence to generate the sequence diagram. You could either write this representation by hand or do some source code preprocessing magic to generate this text format.

I am yet to be impressed by any reverse-engineering trickery when it comes to sequence diagrams, but perhaps others have better experiences?

Asgeir S. Nilsen
hmm. that URL redirects me to a herbal supplement website. it doesn't seem that was intended?
Keith Fitzgerald
Yes, broken link, at the least.
maxwellb
A: 

Contact me through my homepage link if you're interested in such a tool. Perhaps not the kind of answer you'd expect on stackoverflow, but I cannot disclose anything yet so I can't post a link. But I will definitely be able to help you out on this one.

Btw, generating sequence diagrams from running code is the way to go. Generating them from source code is pretty poinless.

+5  A: 

I think jtracert is what you are looking for. It generates a sequence diagram from a running Java program. Also, because its output is a text description of the diagram (in the formats of several popular SD tools), you can use grep to filter for only the classes you are interested in.

Steve Hanov
+1  A: 

Enterprise architect from Sparx claims to be able to reverse engineer java code including generating sequence diagrams - see this section of the user guide

It looks like it can record a debugging session and then you generate the sequence diagram from that

I've not tried it (though have used EA as a modelling tool) so ymmv!

There is a free 30day evaluation download available

Richard
I need something similar for C# (which Sparx also supports). It's extremely elegant and useful to integrate with the debugger like Sparx does it. One limitation is that it only records a single thread of execution. Our app is seriously multi-threaded so that limitation renders it useless to truly capture what's happening. I hope to find some similar multi-threaded recorder.
Wayne
A: 

Take a look at http://www.maintainj.com

It don't know, whether it can filter library calls, but it has a reasonable graphical front end and seems to trace even very large applications.

ralf
A: 

I have just started using the sequence diagram recording feature in Sparx Systems Enterprise Architect. It works very well for C#. You can create filters by class and by method. I'm actually trying to find out if it's possible to filter out an entire package. There is a checkbox for automatically excluding external modules (like the .NET Framework) which aids in declutter. YMMV for Java, but I think their support (and documentation) for Java is generally better (more examples) than for .NET.

Michael Waddell
A: 

I have a tool that meets your requirements exactly. Check it out

http://sourceforge.net/projects/javacalltracer/

In addition to being a reverse engineering tool for java it is also very lightweight. You can control the what you want to record from your java program.

Ali Naqvi
A: 

JTracert is now discontinued. In place, they recommend http://www.jsonde.com/

RAbraham