Eclipse plugin or a Open source tool to reverse engineer java code for sequence diagram
I am looking out for a eclipse plugin or an open source tool to reverse engineer the 开发者_如何学Gosequence diagrams. I tried using Alto UML, but it just gives out sequence diagram of the class chose. I would like to have a sequence diagram of the whole call stack with methods, input arguments and output arugments as well.
Could you please let me know some pointers on this? Thanks!
Architexa does have sequence diagrams for the whole call stack with methods. What you will find is that unlike typical UML tools Architexa is much more code-centric and therefore would work much better for reverse engineering.
-Vineet (Architexa founder)
Look at this Wikipedia article comparing reverse engineering tools.
(repeat from How to Create Flowchart from java source code in Eclipse for completeness):
I found this Eclipse plugin Flowchart4j V 2.0.0 et
http://www.codeswat.com/
You can use it for flowchart or sequence diagram and export it to MS Visio. It has only one disadvantage. You have to pay for it.
Diver: Dynamic Interactive Views For Reverse Engineering can solve part of your problem. It provides both static and dynamic sequence diagrams for Java applications. It does not store the inputs and outputs though.
It is a plugin for Eclipse and lets you:
- Easily trace your Java programs
- Visualize your program’s runtime functionality
- Filter your traces to make them more compact
- Filter your IDE based on what occurs at runtime
- See what code ran in your source code editors
It's on Github and there is also a project web site
Full Disclosure: I am the current project lead for Diver
Take a look at the MoDisco open source eclipse project MoDisco
(repeat from How to Create Flowchart from java source code in Eclipse for completeness):
I am not sure if there is a plugin for this but there are certainly techniques for doing this. If there is no plugin available, theoretically, one could follow the approach of such techniques to build one. One such technique that comes to mind is contained in the paper Object naming analysis for reverse-engineered sequence diagrams by Atanas Rountev and Beth Harkness Connell.
Here's the abstract:
UML sequence diagrams are commonly used to represent object interactions in software systems. This work considers the problem of extracting UML sequence diagrams from existing code for the purposes of software understanding and testing. A static analysis for such reverse engineering needs to map the interacting objects from the code to sequence diagram objects. We propose an interprocedural dataflow analysis algorithm that determines precisely which objects are the receivers of certain messages, and assigns the appropriate diagram objects to represent them. Our experiments indicate that the majority of message receivers can be determined exactly, resulting in highly-precise object naming for reverse-engineered sequence diagrams.
精彩评论