23

I tried (though not very comprehensively) numerous solutions including ModelGoon (only class and interaction diagrams available), ObjectAid (class diagram only), eUML free edition (quits with an ominous "license not found" error on first use), MoDisco (with the only option on the menu being "browse corresponding model element"). And also some standalone tools - ArgoUML and BOUML either dont provide this feature or at least i was not able to find it. Jsonde started only after i fixed a msvcr71.dll-error and was then unable to connect to the VM for reasons unknown...Java Call Tracer is just a bunch of files with pages of options to apply to the JVM directly and there is no executable...

I also read following posts on the topic : featuring commercial options, too general (not seq diagrams), also too general, featuring standalone commercial solutions

By working out of the box i mean - the default installation is not broken and there is an option like "generate sequence diagram" or similar resulting in a (modifiable would be great) sequence diagram.

I am getting an impression, that there is simply no such thing (yet?) as a free UML sequence diagram reverse engineering eclipse plug-in working out of the box.

Please prove me wrong. Thank you

Community
  • 1
  • 1
kostja
  • 60,521
  • 48
  • 179
  • 224
  • 1
    http://uml-plugins.blogspot.com/ this is where we can find differences between UML Modeling Tools, for a quick start !! In addition to those, I've noticed SequenceDiagram plugin for Intellij is also a good option, Please read that post to quickly get to know about free vs commercial & best options. – whoami - fakeFaceTrueSoul Oct 05 '18 at 16:51

4 Answers4

16

The other day, I discovered a tool from the University of Victoria called Diver: Dynamic Interactive Views For Reverse Engineering. You can either find a method and create a static sequence diagram starting with that method or you can run an application in a trace mode to capture the sequence diagram for a particular execution of an application.

Sean
  • 152
  • 1
  • 9
Thomas Owens
  • 114,398
  • 98
  • 311
  • 431
  • Hey, thanks Thomas. Diver is great. Accepted. The only drawback is that I could not find a way to export the diagrams. – kostja Sep 02 '11 at 19:34
  • @kostja I'm glad I could help. Almost 2 years late, but hey. I came across this question looking for other UML tools for Eclipse and figured that I might be able to help. I'm glad I posted it. – Thomas Owens Sep 02 '11 at 19:38
  • Well, the other (minor) one is that you can create the diagrams from the outline view only and not from the editor. But still the best tool by far – kostja Sep 02 '11 at 19:40
  • Yeah, there are some minor problems. But most are easily rectified or handled. Either way, it's a great starting point for reverse engineering. – Thomas Owens Sep 02 '11 at 19:43
  • @kostja http://diver.sourceforge.net/docs/Diver.html#ExportingScreenshots – Thomas Owens Sep 02 '11 at 19:44
  • My bad. RTFM got me again :) Thanks – kostja Sep 03 '11 at 11:40
  • Awesome tool. It tried for reverse engineering sequence diagrams and this works great. I like the static sequence diagram. I have set it up with STS and it works fine. Only thing is that I do not see the camera icon. Not sure it is because of STS or because I am looking at static sequence diagram. – vsingh Nov 02 '11 at 17:30
  • which eclipse version did you use? I am not able to install it on indigo, mac 32 and 64bit. – zengr Feb 09 '12 at 06:32
  • @zengr I'm using Eclipse Indigo on Windows (32-bit XP at work, 64-bit 7 at home). – Thomas Owens Feb 09 '12 at 12:14
  • @Thomas Owens how to install it, tried in 3.5, with Install New Software but failed, P2 or something is needed, how to install P2. – itsraja Apr 12 '12 at 06:51
  • How to install this? install New Software not working. Downloaded the zip file, but it does not have any instructions to setup. Any help is appreciated. – Gaurav Saini Sep 24 '12 at 08:43
  • Hi. I'm the lead developer of Diver. We have a new [Github repo](https://github.com/thechiselgroup/Diver) for reporting issues you might have and I've updated the link in the answer to point to our new Wordpress site. Thanks for helping @ThomasOwens – Sean Oct 01 '12 at 23:18
  • @zengr Unfortunately we do not have a Mac version yet so the Eclipse installer will not let you install it. – Sean Oct 01 '12 at 23:24
  • @itsraja As I explained to Gaurav via email there was a problem with the categorisation of the plugins and the fact that Eclipse Groups by Categories by default. Was just a matter of deselecting the option. Either that's the problem or as with zengr you do not have the correct operating system to install it – Sean Oct 02 '12 at 00:35
  • Is there something equivalent that works with android app ? – Gomino Apr 22 '14 at 12:12
  • From their website: "After a comprehensive study of Diver using different versions of itself, Windows, Java and Eclipse, it has become apparent that there are general stability and performance issues for Diver on Windows 7" – Adam Aug 22 '14 at 12:07
  • 1
    Is it only for `Java` standalone application or also applicable for Web application (J2EE)? – Madhusudan Joshi Sep 15 '14 at 06:44
  • I am not able to install the plugin in `Eclipse Helios`. I am using `java 6`. I tried with form internet using `http://diver.sourceforge.net/update` and also local by downloading from GitHub. Help. – Madhusudan Joshi Sep 15 '14 at 07:01
  • Project seems dead since 2015. – Stephan Aug 10 '17 at 08:48
3

I'm the initiator of the ModelGoon project, and I'm currently working on building sequence diagrams from a method. And I plan a release in few weeks. Therefore, I don't really know what are the features expected by users. I mean it is possible to build a very detailed sequence diagram from a method body, but is it really useful? I usually use sequence diagrams "to think something through, either to verify the logic in a use case or to design a method or service" as advised in Agile Modeling.

Can you tell me more about your use of the generated sequence diagram? as you said it would be better if it is modifiable, what kind of modifications do you expect, and what about code synchronization? What is the level of detail you're expecting from it?

Have you tried the Netbeans UML Modeling module?

Fell free to contact me from my website.

Riana
  • 41
  • 2
  • in my current project, the diagrams are used primarily for communication and documentation. i rarely use fine-grained sequence diagrams to actually design interactions. that's why the resulting diagram should be editable and the generation process painless and repeatable, taking in account the actual architecture of methods. The editing should be possible at least for the names and positions of the elements and deletion and creation of elements like lifelines and signals. It would be great to be able to define/edit loops, conditions and add notes. – kostja Dec 25 '10 at 07:19
  • as for the detail, one should be able to constrain the diagram to certain packages or certain classes. being able to adjust/set the traversal depth would be great. keeping the code in sync with the diagram would actually amount to round-trip engineering, which would be amazing. – kostja Dec 25 '10 at 07:23
  • And thank you for a great product! I have already proposed using ModelGoon interaction diagrams, sometimes to replace sequence diagrams, sometimes additionally. I am really looking forward to your new releases. – kostja Dec 25 '10 at 07:25
  • P.S. being able to export the diagram to an editable format like svg would be really nice too. – kostja Dec 25 '10 at 07:30
  • Thanks for your suggestions.In the future ModelGoon will be able to export in svg, and maybe XMI too. Your use of sequence diagram matches the usage I imagined : for communication and documentation. As all ModelGoon's diagrams, I will try to make it as easy as possible. Stay tuned for the next – Riana Dec 25 '10 at 15:47
  • For my part, I came across the need of sequence diagrams plugins for eclipse because I had to understand the processing of an application I will be affected to at work. ModelGoon is great but it lacks the possibility to narrow the diagram to what ever methods/classes you want to see in the diagram. Because the diagram I get is like 10 meters wide and 5m long so it's kind of unreadable. – Michael De Keyser Jan 17 '13 at 12:51
1

TPTP seems to be the only real option so far. That crystallized over the last few days after trying a number of different solutions. After installing TPTP from the regular Eclipse update site, follow these steps :

  • select Profile As from the context menu of a runnable element (eg. a method, a test, a testcase..)
  • select Profile Configurations
  • select the Profile Setting tab
  • select Exection Time Analysis as the data collector
  • in the Profiling and Logging view, select Open with from the context menu of the profiling data (the clock with glasses) and pick UML2 Class Interactions


    After that you will have to hide many many lifelines per right-click to make the diagram remotely readable while getting annoyed by TPTPs choice of color (light blue on white - also very unreadable).

    You can then print the diagram, effectively exporting it to pdf, tiff, eps and other formats via your favorite file printer.

    There is one big bitter pill to swallow though : what you get is an execution trace in disguise of a sequence diagram. This means - no loops, no conditions, no notes and such. Even the diagram title sucks, being a cryptic 50-odd character monstrosity you cant change.

    On the other hand, TPTP offers you much more that a sequence diagram. For example, you get a color-coded execution hot spot analysis on the side of the diagram as a bonus.

    But it seems that even the expensive tools boasting round-trip code engineering like Enterprise Architect offer nothing more than tracing (and admittedly much nicer graphics). Reverse engineering a real sequence diagram seems to be quite non-trivial.

  • kostja
    • 60,521
    • 48
    • 179
    • 224
    1

    ObjectAid has a sequence diagram now. It's not free, but not expensive either. It does reverse engineering from source code, stack traces and call stacks in the debugger.

    FelixM
    • 1,496
    • 1
    • 9
    • 19