free UML sequence diagram reverse engineering ecli

2019-01-08 08:57发布

问题:

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

回答1:

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.



回答2:

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.



回答3:

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.



  • 回答4:

    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.