-
Notifications
You must be signed in to change notification settings - Fork 2
UML Tools Analysis
Recently I was looking out for some open source tool to easily design professional looking basic UML diagrams like: Class Diagram, Sequence Diagram, Use-Case Diagram, Component Interaction Diagram, etc. At present we are using ‘Microsoft Visio’ which has licensing issues and doesn’t have Java support and reverse engineering capabilities. There are standard tools also like Altova UModel, Enterprise Architect and Rational Rose for UML modeling and has all the capabilities but again they require licenses.
Requirement is that tool must be capable to generate diagrams from scratch easily and good to have reverse engineering capabilities. Also the requirement is that team can share their diagrams and also keep them for any future changes required in the diagrams as development phase progresses.
This post describes about my experience, which I experienced while analyzing the following UML modeling tools (mostly Eclipse plugins) to fulfill above said requirements.
- ModelGoon UML4Java 4.4.1 - http://marketplace.eclipse.org/content/modelgoon-uml4java#.UjFZi39WXZZ Features:
- Class diagram
- Interaction diagram
- Package dependency diagram Pros: • Good basic class diagram tool. • Generates diagrams from java files with associations. • Can update diagrams once code is updated. • Integrates with Eclipse IDE. Cons: • Generates diagrams only from code (Java files). • Cannot able to generate diagram from scratch. • Direct diagram editing is not allowed.
- AgileJ - http://marketplace.eclipse.org/content/agilej-structureviews#.UjBLu39WXZZ Features:
- Class diagram
- Batch Class diagram Pros: • Generates diagrams from java files with associations. • Can update diagrams once code is updated. • Some show/hide filtrations criteria’s are available. • Manual layouting of diagram is possible. • Integrates with Eclipse IDE. Cons: • Requires license. Used 30 days evaluation license. • Generates diagrams only from code (Java files). • Cannot able to generate diagram from scratch. • Direct diagram editing is not allowed. • Generated diagrams are very verbose and details can not be changed. • Layouts are very complex with messed up associations.
- UML Lab Modeling IDE 1.6.0 - http://marketplace.eclipse.org/content/uml-lab#.UjBOQH9WXZZ Features:
- Class diagram Pros: • Generates good looking class diagrams from just drag and drop. • Can generate diagram from a single java class, multiple selected classes, package or from whole source at once with associations. • Can update diagrams once code is updated and vice-versa. • Can generate code from diagrams. • Good layouts and looks. Also auto layouts the diagrams. • Manual layouting of diagram is possible. • Manual editing is allowed and changes code accordingly. • Integrates with Eclipse IDE. Cons: • Requires license. Initially one day trial license, can be extended to 30 days for registered user. • Can generate diagram from scratch but very cumbersome to design diagrams without code. • No support for UML diagrams other than Class Diagram.
- Papyrus - http://www.eclipse.org/papyrus/updates/index.php Features:
- Supports most of the UML diagrams, as many as 12 types of diagrams.
- Activity, Class, Component, Sequence, Use-Case etc… Pros: • Can create simple good looking class (any) diagram from scratch. • Good tooling capabilities like: alignment, layouts, sizing, zooming etc. • Manual layouting of diagram is possible. • Manual editing is allowed. • Integrates with Eclipse IDE. Cons: • Can generate diagram from scratch but it’s quite difficult to get hold onto it quickly. • Have a learning curve to create effective diagrams, however it has lots of tooling capabilities to design any type of UML diagram. • If you are looking to Reverse engineer your existing code into UML diagram, then this tool is not your cup of tea. Doesn’t have this feature. • Also doesn’t seems to have capability to generate code from diagrams.
- eUML2 Studio Edition – http://marketplace.eclipse.org/content/euml2-studio-edition#.UjGU-H9WXZY eUML2 Free Edition – http://marketplace.eclipse.org/content/euml2-free-edition#.UjGU9H9WXZY
- Has a Free Edition and Studio Edition. Studio edition requires license. Features:
- Class diagram
- Sequence Diagram Pros: • Generates good looking class diagrams from just drag and drop. • Good look and feel. Also auto layouts the diagrams. • Also generates sequence diagrams but manual editing is also required. • Can generate diagram from a single java class and multiple selected classes with associations. • Can edit/refactor diagrams and optionally code will also be refactored. • Manual layouting of diagram is also possible. • Integrates with Eclipse IDE. Cons: • Requires license for Studio edition, otherwise diagrams cannot be exported. • Can generate diagram from scratch but very cumbersome to design diagrams without code. • Doesn’t have the facility to generate sequence diagrams from selection of a method().
- Green UML 3.5.0 - http://marketplace.eclipse.org/content/green-uml#.UjFmZ39WXZY Features:
- Class diagram Pros: • Can generates diagrams from java files with associations. • Can generate diagrams from scratch (but with limited tooling options). • Manual layouting of diagram is possible. • Direct diagram editing is allowed which refactors code. • Integrates with Eclipse IDE. Cons: • Generating diagrams from scratch is not straight forward, as it first generates a similar java class file i.e. generates code side-by-side. • Auto arrange option does not works correctly; you have to manually arrange the objects.
- UMLet - http://marketplace.eclipse.org/content/umlet-uml-tool-fast-uml-diagrams#.UjFmwX9WXZY Features:
- Supports most of the UML diagrams, as many as 7-8 types of diagrams.
- Activity, Class, Component, Sequence, Use-Case, Package, EER, Deployment etc… Pros: • Can create simple good looking class (any) diagram from scratch. • Good tooling capabilities like: layouts, sizing, zooming etc. • Exceptionally easy to create new diagrams; Just drag n drop or double click to choose any existing palette(s). • Create/Save your diagram as a new palette, which can become base for your new diagrams. • Manual layouting of diagram is possible. • Easy text based editing. Easiest comparing any other tool. • Can create Class Diagram’s body from the Java class. • Easy exporting options. • No learning curve. • Integrates with Eclipse IDE. Cons: • Class diagrams lacks little bit of x-factor, as everything is text based, so there are no icons. • Lacking reverse engineering support. • Limited background colors to choose from, but one can manually provide any #RGB based color scheme. • If you are looking to Reverse engineer your existing code into full-fledged UML diagram, then this tool is not your cup of tea. Doesn’t have this feature.
- ObjectAid - http://marketplace.eclipse.org/content/objectaid-uml-explorer#.UjGVY39WXZY Features:
- Class Diagram
- Sequence Diagram (Requires License) Pros: • Can create simple good looking reverse engineered class diagrams. • Exceptionally easy to create class diagrams by just drag n drop java files. • Automatically creates associations and auto layouts the diagrams. • Easy exporting options. • No learning curve. • Integrates with Eclipse IDE. • If you are looking to Reverse engineer your existing code to visualize class relationships then this the best and easiest solution. Cons: • Need license for sequence diagrams. • Editing class diagrams is not easy as that requires code refactoring. • Doesn’t have the facility to create diagrams from scratch.
- Top Coder - http://apps.topcoder.com/wiki/display/tc/TopCoder+UML+Tool Features:
- Supports generation of most types of UML modeling diagrams like: Class Diagram, Sequence Diagram, Use-Case etc. Pros: • Individual tool, doesn’t require IDE. • Facility to create simple good looking diagrams manually. • Easy to use and have good tooling capabilities. • Easy exporting options. • Not much learning curve. Cons: • Lacking reverse engineered diagrams capability. • Class diagrams default color coding doesn’t gives a professional feel. • Sequence diagram’s auto generated object life-cycle has issues and I think it’s not possible to stretch the object manually which depicts the object’s life. • Not pluggable with IDE’s.
- www.draw.io Features:
- Supports generation of various type of diagrams including UML modeling diagrams like: Class Diagram, Sequence Diagram, Use-Case etc. Pros: • Web based tool doesn’t require any installation or infrastructure. • Facility to create simple good looking diagrams manually. • Easy to use and have good tooling capabilities. Almost similar to MS-Word but easier to draw diagrams here with better tools. • Easy exporting options and can save diagrams in XML which allows future editing as well. • Not much learning curve. • No license required. Cons: • Needless to say, it lacks reverse engineered diagrams capability. • Not pluggable with IDE’s.
After analyzing so many UML modeling tools (infact there are many more), I’ve zerod down to:
- UMLet - is by far the most easiest tool to create UML diagrams from scratch.
- ObjectAid - is the most easiest tool to create reverse engineered Class Diagrams. Also they are easily plugged with any version of Eclipse IDE. Easy to install, easy to use and no learning curve.
Apart from these, o TopCoder is also a good tool if it’s cons doesn’t hamper your requirements. o eUML2 is also a good option but you need to give some time to it (esp. for sequence diagrams which are not straight forward). o Papyrus also has good capabilities to create diagrams from scratch but has a learning curve.
And for general multi-purpose use draw.io is the best option, you can draw almost any type of diagram here.
PS: If you are looking for some samples diagrams / screenshots of above tools, please follow the link: "https://github.com/connect2manu/test_helloworld_labs/tree/master/UMLModeling/UML%20Tools%20Samples"