I'm designing a software component which will get instructions from other components on how the UML diagram should look like, and then will produce this UML diagram in different presentation ways (in SVG, GIF, etc.), for example (in Java):
DiagramDesigner designer = new DiagramDesigner();
designer.setStyle('Use Cases')
designer.addActor('User');
designer.addUseCase('Print Document');
// etc.
String svg = designer.getSvg();
I don't want to re-invent the wheel and want to use some industry-standard language/interface for interconnection between my DiagramDesigner and other components. I'm looking for an interface similar to DOM, but for UML, not for XML.
Can anyone help? Thanks in advance.
ps. Besides the example above I would like to make my diagrams inter-operable and transferrable between servers, e.g.:
// first server
String script = designer.getScript();
// second server
DiagramDesigner desiger2 = DiagramDesigner.import(script);
So if I understand you right, you are looking for a way to work with UML on the metamodel level. You should look at the MOF standard and its implementation the EMF (Eclipse Modeling Framework), which is used by almost all Eclipse based UML tools and this framework is used by many other modeling projects, it even somewhat influenced the standardization of MOF (resulting in SMOF and EMOF split) and therefore I would declare it industry standard.
Probably only loosely related but anyhow: PlantUML. It is open source, built in Java and likely contains already parts of what you want to do.
You can inspire from these scripts to generate any output you want:
http://askuml.com/
Currently examples are given in yUML because they're nice but could be anything.
At least for the syntax part, you could get some inspiration from the large set of textual UML tools (theses tools allow designers to textually specify the model and then they automatically show the model graphically using the standard UML notation).
At least of such tools here: http://modeling-languages.com/content/uml-tools#textual
I'm looking for a diagramming software that would produce good looking output. It doesn't need to support everything (or even much) from UML, is doesn't need to have code engineering functions or anything, it just needs to produce visually interesting output.
Here is a couple of samples of products that I consider ugly / not good enough: Visio with default UML stencils (didn't find better looking ones), Enterprise Architect, Dia, ArgoUML and many other "professional" UML tools.
A couple of visually compelling tools that I considered (but found issues with):
Visual Studio class diagrams - just for .NET classes but the output is miles better than what UML tools typically produce
NClass - similar to VS's class diagrams but I could not find the "pretty", blue skin anywhere
yuml.me - very nice but lacking some advanced layout options. I have to say that I find their style almost ideal for high-level diagrams - they look sketchy which is good.
Balsamiq - I think Joel used this for hginit.com and I liked it. However, it's not suited for creating software diagrams so I can imagine it would be quite a lot of work
MS Word has actually quite a good graphics engine but I'd rather leave this as a choice of the last resort
I'd be grateful for any good tips.
yEd is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams
Take a look at this, a web app for creating UML diagrams!
Architexa allows you to create easily manageable UML style class, sequence, and layered diagrams from within the Eclipse IDE. It also helps speed up the process by allowing you to add items straight from your codebase.
Visio 2013 has quite some nice designs, even sketch-like layouts that are my favorites. Here's an example:
Visio seems to be the closest match for what I'm looking, something between vector editor and a software diagramming tool with decent formatting and layout options. Not optimal on many levels but the most flexible tool I tried so far.
I make (and teach people to make - I have a training module for that) very pretty Diagrams with Sparx Enterprise Architect. However I always teach people to make effective, succinct Diagrams fist, and then improve their presentation - trying to modify a diagram that has been "beautified" is unproductive.
This is definitely a hard question:) There are many tools, however the most beautiful UML diagrams are saw were made using vector graphics editor...
It also depends on what do you expect from a tool producing nice diagrams... Pretty stencils? Good layouting algorithm?
Tools which I find more or less usable are MagicDraw for the grid, BOUML for simplicity and either Papyrus or Moskitt, whichever had some layouting heuristing trying not to put classes which were made to be close too much aside.
Visual Studio 2010 Ultimate includes the following UML diagrams: class, sequence, component, use case, and activity. You can also generate sequence diagrams and dependency graphs from code.
For examples of how these diagrams look, see their descriptions under Developing Models for Software Design. If you can get the Visualization and Modeling Feature Pack, you can create UML class diagrams from code.
You can download the trial version of Visual Studio 2010 Ultimate here. If you have an MSDN subscription, you can get the feature pack here.
Visual Studio 2010 (Ultimate) is good for UML in .NET, but it is only available to MSDN subscribers. If you are looking for another better one, I would recommend you to try Visual Paradigm.
draw.io is good, they also have a desktop application (Electron)
I wanted to know what tools (preferably free) can be used to layout a collection of objects and their relationship - simple relationship like members referring each other, inheritance, attributes et.al. I would prefer a tool with which I can create and update the diagram as quickly as possible.
I'm not familiar with UML, but it's probably what I'm asking about.
Mock4U
alt text http://typo3.webetiser.com/fileadmin/sites/RainerEschen/downloads/mock4u/class-diagram.png
Take a look at this page on AlternativeTo, there's a lot of different options listed. Among them:
Microsoft Visio
Inkscape
Dia
OmniGraffle
OpenOffice Draw
Creately
etc.
Umlet
http://www.umlet.com/
You also have StarUML, wich is open source and similar to Rational Rose, only a bit simpler.
ArgoUML is a good free tool.
I really like Dia. It even has a Portable edition!
It's small, fast, cross OS, simple to use, and has a lot of built in elements (specially for UML modelling).
The only problem I can foresee for you is that it follows The GIMP's GUI design (separated window for the toolbox). I happen to like it, but many people hate it.
Keep in mind that this screenshots are quite old:
(source: gnome.org) !
It also can be scripted with Python.
Visio 2003 uses UML 1.4, which means that some stereotypes from UML 2.0 simply don't exist, and they need to be modeled by freehand drawing (I may as well be using Photoshop). Does anyone know of an update from Microsoft or an addon to include UML 2.0 (complete - not just class diagrams) in Visio 2003?
I found this package: http://www.sdl.sandrila.co.uk/ but judging by their "example" screenshots, I'm going to stay away. If they don't know how to use UML, I'd be surprised if they could implement it correctly ;)
This set of Visio stencils and templates for UML 2.0 is excellent:
http://softwarestencils.com/uml/index.html
In case it wasn't clear, Microsoft will never update Visio support of UML. For some time, they have not considered Visio to be a Software Engineering tool.
I don't blame them. It didn't even do a good job with the parts of UML it "supported".
I'm using the UML 2.0 symbols from Pavel Hruby. Maybe you'll find them useful as well.
The nice thing about Visio is that it is just a drawing program and not a modeling environment. So just make up your own lines. Visio can draw just about any line time you can think of. But the real answer is the one already checked. Now that Microsoft "supports" UML maybe they will provide better tooling.
Those screenshots are only example diagrams, Sandrila SDL doesn't enforce that level of rigour to the diagrams.
I found this package: http://www.sdl.sandrila.co.uk/ but judging by their "example" screenshots, I'm going to stay away. If they don't know how to use UML, I'd be surprised if they could implement it correctly ;)
That seems a bit harsh - of the handful of screen-shots which are UML2 (as opposed to being examples of the other notations the tool supports, such as SDL, MCL and TTCN), which do you think are incorrect? It's quite ugly as diagrams go, and uses aliased fonts and lines, but that's a Visio feature rather than anything to do with the template.
In terms of what you can do with the UML, you are much better off using a real UML2 tool than Visio. Enterprise Architect is a cheap one which does have a real UML model behind it. (It would be nice to be able to say that the more expensive ones have fewer UI bugs and gotchas, but that isn't really the case, and most lag far behind the simpler graphical tools like OmniGraffle or Visio in polish and usability)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I'm trying to choose a tool for creating UML diagrams of all flavours. Usability is a major criteria for me, but I'd still take more power with a steeper learning curve and be happy. Free (as in beer) would be nice, but I'd be willing to pay if the tool's worth it. What should I be using?
Some context: Recently for graduate school I researched UML tools for usability and UML comprehension in general for an independent project. I also model/architect for a living.
The previous posts have too many answers and not enough questions. A common misunderstanding is that UML is about creating diagrams. Sure, diagrams are important, but really you are creating a model. Here are the questions that should be answered as each vendor product/solution does some things better than others. Note: The listed answers are my view as the best even if other products support a given feature or need.
Are you modeling or drawing? (Drawing - ArgoUML, free implementations, and Visio)
Will you be modeling in the future? (For basic modeling - Community editions of pay products)
Do you want to formalize your modeling through profiles or meta-models? OCL? (Sparx, RSM, Visual Paradigm)
Are you concerned about model portability, XMI support? (GenMyModel, Sparx, Visual Paradigm, Altova)
Do you have an existing set of documents that you need to work with? (Depends on the documents)
Would you want to generate code stubs or full functioning code?(GenMyModel, Visual Paradigm, Sparx, Altova)
Do you need more mature processes such as use case management, pattern creation, asset creation, RUP integration, etc? (RSA/RSM/IBM Rational Products)
Detailed Examples: IBM Rational Software Architect did not implement UML 2.0 all the way when it comes to realizes type relationships when creating a UML profile, but Visual Paradigm and Sparx got it right.
Ok, that was way too detailed, so a simpler example would be ArgoUML, which has no code generation features and focuses on drawing more than the modeling aspect of UML. Sparx and Visual Paradigm do UML really well and generate code well, however, hooking into project lifecycles and other process is where RSM/RSA is strong.
Watch out for closed or product specific code generation processes or frameworks as you could end up stuck with that product.
This is a straight brain dump so a couple details may not be perfect, however, this should provide a general map to the questions and solutions to looking into.
NEW - Found a good list of many UML tools with descriptions. Wiki UML Tool List
For sequence diagrams, only, try websequencediagrams.com. It's a freemium (free for the basic tasks, paid for advanced features) product, and lets you quickly bang out a diagram without any fussing around with lines and stencils.
Alice->Bob: Authentication Request
note left of Bob: Bob thinks about it
Bob->Alice: Authentication Response
For me it's Enterprise Architect from Sparx Systems. A very rounded UML tool for a very reasonable price.
Very strong feature list including: integrated project management, baselining, export/import (including export to html), documentation generation from the model, various templates (Zachman, TOGAF, etc.), IDE plugins, code generation (with IDE plugins available for Visual Studio, Eclipse & others), automation API - the list goes on.
Oh yeah, don't forget support for source control directly from inside the tool (SVN, CVS, TFS & SCC).
I would also stay away from Visio - you only get diagrams, not a model. Rename a class in one place in a UML modelling tool and you rename in all places. This is not the case in Visio!
For my simple & short UML working,
I've used this tool:
StarUML - http://staruml.sourceforge.net/en/
Great free software for UML drawing.
Although the original Star UML is no longer maintained, there's now a fork called White Star UML, which is actively developed.
As I usually use UML more as a communication tool rather than a modeling tool I sometimes have the need to flex the language a bit, which makes the strict modeling tools quite unwieldy. Also, they tend to have a large overhead for the occasional drawing. This also means I don't give tools that handle round-trip modeling well any bonus points. With this in mind...
When using Visio, I tend to use these stencils for my UMLing needs (the built in kind of suck). It could be that I have grown used to it as it is the primary diagramming tool at my current assignment.
OmniGraffle also has some UML stencils built in and more are available at Graffletopia, but I wouldn't recommend that as a diagramming tool as it has too many quirks (quirks that are good for many things, but not UML). Free trial though, so by all means... :)
I've been trying out MagicDraw a bit, but while functional, I found the user interface distracting.
Otherwise i find the Topcased an interesting project (or group of projects). Last I used it it still had some bugs, but it worked, and seems to have evolved nicely since. Works great on any Eclipse-enabled platform. Free as in speech and beer :)
As for the diagramming tool Dia, it's quite ugly (interface and resulting drawings), but it does get the job done. An interesting modeling tool free alternative is Umbrello, but I haven't really used it much.
I definitely agree with mashi that whiteboards are great (together with a digital camera or cellphone).
Probably some of the nicest tools I've used belong to the Rational family of tools.
You may be looking for an automated tool that will automatically generate a lot of stuff for you. But here's a free, generally powerful diagramming tool useful not only for UML but for all kinds of diagramming tasks. It accepts as input and outputs to a wide variety of commonly used file formats. It's called yEd, and it's worth a look
Visual Paradigm for UML http://content.usa.visual-paradigm.com/websiteimages/images/products/vpuml60/vpumltitle.gif
I'm very fond of Visual Paradigm for UML It's very powerful and has a free Community Edition and cheap Personal Edition as well.
Agilian http://content.usa.visual-paradigm.com/websiteimages/images/products/ag10/agtitle.gif
For Agile modeling there's also Agilian which is a bit more flexible, adds extra features to support smartboards and knows mind-mapping as well.
The thing I like most about their products is the flexibility. I'm using Enterprise Architect at work nowadays but I think it's not smart enough. I want to be able to quick-brainstorm some sequence diagrams and have the application keep my model up-to-date in the background, something VPUML does a very good job at.
In my opinion it's way better than Enterprise Architect, though that is a great tool as well :)
Take a look at BOUML: multiplatform (QT), works pretty well and supports colaborative work.
BOUML is a free UML 2 tool box (under development) allowing you to specify and generate code in C++, Java, Idl, Php and Python.
BOUML runs under Unix/Linux/Solaris, MacOS X(Power PC and Intel) and Windows.
From Wikipedia:
The releases prior to version 4.23 are free software licensed under GPL. BOUML 5 and later is proprietary software.
If you're looking to get out the door and working on UML without having to learn a complex new tool I would check out Violet UML. I've used it to some pretty great success in the past.
PlantUML is an open-source markup-language-to-UML-diagram tool in Java that deserves to be mentioned here. It ranks high on the usability scale because of its intuitive syntax for the various diagrams and diagram components.
Dia is a possible choice. It's definitely not the best tool, but it is functional.
Enterprise Architect from Sparx systems is the best tool I've used. A bit expensive at $199 (professional edition), but IMO it's worth it.
I will add UMLet which I haven't tried yet, but have been selected at my office to start doing diagrams.
Looks simple, diagrams aren't sexy, but it seems quite complete with regard to the kind of diagrams you can do. Seems to have good export capabilities too (important!), is flexible can support custom components) and can be used as Eclipse plugin.
Astah UML (ex-JUDE) is pretty good.
I haven't been able to find a top-notch free UML diagramming tool, but if you're interested in pure diagramming, as opposed to round-trip-engineering, I'd go with Microsoft Visio. If you want full round-trip engineering, Rational Rose.
This list of UML tools on Wikipedia might also come in handy.
Pen and paper. If you can get the scan into a vector format, that may be useful when making minor amendments.
You should try Creately. Runs in your browser and can do team collaboration.
supports sequence diagrams, class, ER, usecase etc. works great and has a free version available.
Creately.com
You can also check out Lucid Chart for uml and other types of diagramming.
Don't forget yuml.me, I love it.
http://plantuml.sourceforge.net/index.html
In my practice i use Sequence Diagram Editor. it is really fast and helpful tool. the one thing i don't like about it is that it is commercial product, not free.
I like VisualParadigm mentioned before in this thread. It's powerful and easy to use I think it gives most power comparing to other tools.
If you need something simple, quick and easy (and free) there is a great tool called UMLet - I highly recommend this. I've tried many of UML diagramming tools and this the simplest one (and it still allows to do great diagrams). This is my choice:)
Obviously if you are serious about UML in the long run you need to use a software UML tool like the ones suggested in the other answers, but I've found that a whiteboard is one of the best tools for UML diagramming, especially during the design phase, or when you are exploring different alternatives. Nothing beats a whiteboard for speed/flexibility in my mind. They are also great for collaboration assuming you are collocated physically.
In my opinion StarUML is the best.
I can't believe no one has mentioned NetBeans UML Editor, it's great and satisfied all of my Java based UML requirments.
This after I tested JDeveloper UML, ArgoUML and StarUML.
I recently conducted a poll "What UML Tools do you use?" in my blog. NetBeans UML was was the top opensource choice and Enterprise Architect was the top commercial choice.
You can create UML class, sequence, component, use case, and activity diagrams in Visual Studio 2010 Ultimate. You can link these diagrams to Team Foundation work items so you can plan and track development and test work. You can also create sequence, dependency graphs, and layer diagrams from code and use Architecture Explorer to browse and explore your solution.
I've posted more links on my profile for more info.
You might want to take a look at MagicDraw or Visual Paradigm for UML. Both offer community editions that, of course, don't span the full feature range, but may well be sufficient if you want to create diagrams only and not generate code or do full round-trip engineering.
Rational and Together/J are best-of-breed products, but expensive.
In my experience, I've enjoyed Eclipse Omondo and Sparx Enterprise Architect. Omondo integrates nicely with Eclipse for code generation, and has a very intuitive feel. However, it is strongly tied to Java. Sparx is a good tool for the price point, but lacks the full range of UML 2.0 diagrams.
Do NOT bother with Poseidon. It is buggy, bloated, and unusuable for all intents and purposes.
For sequence diagrams you can also try Trace Modeler. It's not free but it has a great interface, very friendly and productive. You can use it on any platform.