Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I need to maintain some project in Java, but it is very big. I need some plugin for Eclipse or program alone which can generate UML from Java project. Is there something what can help me ?
Visual Paradigm for UML
Tools --> Instant Reverse --> Java --> Specify your sources and you are done.
This is a commercial application with lots of stuff, but for what you need to do, you are fine with the evaluation key.
EDIT: Also have a look at this video
This has been asked before.. please find it at
How to generate UML diagrams (especially sequence diagrams) from Java code
I recommend Architexa for its great class digram generation. Instead of generating every classes in a huge class diagram, Arhitexa allows you to selectively display the relevant classes in the diagram.
Most UML tools can import Java code. Last time I used JUDE Community edition it could do it, but they've split it into community and paid editions. I'm not sure if the free one does anymore. Sparx Enterprise Architect can import Java as well.
Umbrello supports Java code import, and it is open source, so will cost you nothing to try.
You might also give Doxygen(with GraphViz) a go; it will generate UML 'style' class diagrams and is a great code navigation tool for unfamiliar code-bases. Not truly a UML tool though, but might suit your requirements.
I suggest euml2 as an eclipse pluggin.
It has a free version and it is quite good!
I recommend Enterprise Architect which supports full reverse and forward engineering including for Java. Automatic Documentation generation as Word, PDF or website.
Free Class Visualizer does exactly that - you load compiled Java code and, as a result, receive class diagrams allowing you to navigate through relations.
It supports parametrized types, annotations and discovers all sort of outbound and inbound relations (including dependencies).
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have been playing around with a few various UML tools- Enterprise Architect, Visual Paradigm; in the end I found Intellij IDEA good enough for producing quick UML class diagrams.
However, I found creating UML object diagrams quite fiddly in EA and VP. I was wondering if there was anything out there that could reverse engineer some simple java code that creates some class instances - then create UML Object Diagrams from this?
We use UmlGraph embedded into a maven build, so we get graphs in the generated javadoc.
You should explore ObjectAid, it has an eclipse plugin as well.
There's a plugin for eclipse called AmaterasUML that does a nice job on a hand full of source files. It's not very useful for long term documentation but for quick and dirty "what's this package do?" it rocks.
Why not try Star UML.. its free and very easy to use..
http://staruml.sourceforge.net/en/
You can use the 30 days evaluation licence and create all needed diagrams for documentation.
No need to purchase if you save diagrams as image and paste and copy them into your documentation. Just unzip and it works.
The build is available at: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I'm a systems engineer, recent college grad, and I've just been given a project that is exceptionally daunting.
We have a legacy system, we legally own the entire code and all rights to it. The problem is that the code is poorly documented, what little documentation is incomplete, sometimes wrong and the original devs are unavailable.
It uses a custom Perl build script requires a thousand modules from CPAN to work and I do not know Perl. Reverse engineering into UML has failed except with Doxygen and that is limited to just inheritance diagrams and call graphs.
I've obtained a massive chalkboard and I'm slowly trawling through the code, modeling packages and then the nested packages within.
My question is whether or not I'm approaching this reverse engineering from the right direction. I'm working close from the bottom trying to figure out what calls what while developing UML and writing a Design Document. I did a package diagram but it's hard to figure out what's going on at that high a level.
An academic paper I pulled up suggests I also make a new Requirements Document which would slow me down even more and I don't know if it's a good idea as the other developers are always busy trying to keep the legacy system up.
Are there any books out there that can help me and am I approaching this from the right angle? Should I hire a contract worker that knows Perl and JMX to assist me?
The book "Working Effectively with Legacy Code" by Michael Feathers will probably help you more than anything we can tell you here.
However, the most important thing you need to clarify for yourself (and from your question it sounds like it's not completely clear) is this: what is your goal? What do you want to achieve with this codebase?
If the answer is (as it sounds) "being able to effectively maintain the existing project", then trying to directly build a complete high-level model of the system may not be the most effective path. It's probably just too much at once to keep in mind.
In this case, I would try to understand only the use cases of the system that you currently need to modify; follow method calls through the code (pssibly using a debugger on the running system) to see what parts are involved. Do this for a few different use cases and you'll start to see patterns, then document those and gradually fit them together into a high-level image of the system.
This tool might assist you.
Or if the legacy system is written poorly it could just make a huge unreadable mess, but I hope it helps.
If it is a java code then a deep reverse engineering would be very helpful.
See a documentation at: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Can anyone help me? I am currently using Eclipse Java IDE, and would like a plug-in that will automatically look at my classes and draw up a class diagram in UML.
Any suggestions?
I recommend the ObjectAid UML plugin. It works very nicely.
The challenge in what you are trying to do is that you can have multiple correct UML diagrams for any piece of code. Just trying to automatically get a diagram ends up with too much garbage when using most UML tools - and the tools just end up getting in the way.
We created Architexa to help in this situation - Architexa helps you to get to useful diagrams fast - if that means connecting to source code commits or even building layered architectural diagrams. A good discussion on some of the things that you might be looking for can be found here.
Try UML2 from Eclipse Modeling Tools. Here's also a tutorial.
Even if a bit too late for the original questioner, maybe following eclipse plugin does match the need of real time analysis:
http://marketplace.eclipse.org/content/javadoc-uml-view
This tool is highly intended for analysis purposes and less for diagram modeling. So if you want to draw diagrams manually its not the right one, in this case ObjectAid UML explorer is far better.
Just to be mentioned :-)
One more option: http://www.modelgoon.org/
It's a very simple one, but it's still an active project.
Try using Omondo. Its a very nice UML plugin for eclipse. It will exactly suit your needs
I would try MoDisco http://www.eclipse.org/gmt/modisco/. It is an extensible framework for software modernization.
You may try architexa tool suite. It generates not only class/sequence diagrams but also layered diagrams. You may read about it here.
Check this out, this designer is free (Open Source with EPL license).
UML Designer which can be used for:
Package Hierarchy
Class Diagam
Component Diagram
Composite Structure Diagram
Deployment Diagram
Use Case Diagram
Activity Diagram
State Machine
Sequence Diagram
Profile Diagram
Got good tutorial as well:
http://www.umldesigner.org/tutorials/tuto-getting-started.html
If you can move to IntelliJ they have a wonderful plugin for that.
If you're "stuck" with eclipse... AmaterasUML is good enough - I've used it in the past...
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
This seemed to me like the easiest thing to find, a simple way to display my classes as UML in eclipse
But except this: http://java2uml.gforge.enseeiht.fr/ and this http://sourceforge.jp/projects/amateras/releases/ I haven't found any new, maintained and "good" implementation (with all due respect to the above two)
Anything else I've missed?
Did you consider
Creating UML 2 diagrams with Eclipse UML2 Tools - Tutorial ?
I had older references for such tools, but the new ones are build upon UML2 project (described in the tutorial). MDT-UML2Tools is in the making, Omondo is there, but not free.
Papyrus UML, for instance, is based on UML2 Tool.
There is a tool in the Marketplace that can do the above (UML Class, Package and Interaction). It's called ModelGoon. Last tried in July 2018.
The full list is available at Eclipse marketplace.
If you want to stay within Eclipse: use free ObjectAid - discovers parents, nestings, associations.
If you want the tool, which in addition discovers and show children, usages, dependencies, annotations - then use free Class Visualizer.
I generally use Doxygen to create documentation because it has built-in support to generate inheritance diagrams. There is an Eclipse plug-in for Doxygen called eclox. It is not longer maintained since December 1st.
Doxygen is based on Graphviz. You could directly use LightUML, which is based on Graphviz to create UML diagrams in Eclipse.
Annotate your classes with Ecore's annotations, then you can import an Ecore file from them. You can initialize an Ecore diagram from them, or export it to UML, and initialize a class diagram from it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
Is there an Open Source java alternative to GraphViz? I'm aware of the existence of Grappa which basically wraps the Graph interface to GraphViz as an JavaAPI. However the layouting is still done by the GraphViz binaries.
I'm looking for a pure-java, open source library providing the same functions and layouting algorithms as GraphViz.
You can have a look at JUNG (Java Universal Network/Graph Framework) which has visualization and analytics functions. It's open source.
Interestingly, the Eclipse project has an SWT/JFace component/framework capable of displaying and generating (import/export) Graphviz's 'DOT' format, in pure Java:
ZEST (home page & download links)
See http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest for usage examples.
Although ZEST is touted as an Eclipse plugin, it does seem that the DOT-manipulation API's can be used standalone and external to an Eclipse installation.
To clarify, the DOT functionality is a part of the ZEST 2 functionality, which itself is a sub-component of the GEF4 project.
Cheers
Rich
Update (May 2017) https://github.com/nidi3/graphviz-java
You could look at JGraph though I have never used it so cannot comment on now it compares to GraphViz.
yFiles seems to provide all this, but it's not free and not really cheap either. But then again it seems to be a very professional product (haven't used it, except in yEd, which can be used for free).
I guess ZGRViewer is what you want. I really like ZGRViewer and AJaPaD.
I worked with yFiles about four years ago, and it was excellent. It's costly (though less than JGraph, apparently) but I work in a CS research lab and had access to their generous academic pricing.