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.
Related
I had some trouble figuring out how to funnel users through different stages on a website I'm building and I figured that drawing a flowchart might help me see things clearer. So I started drawing a chart in Dia and an hour later I'd figured out what models and views I need to add and how to interconnect them. Given a little time, I can really see this kind of charting becoming a useful asset in my web development skill set.
One thing that bothered me though was the lack of symbols for common stuff related to web development. A symbol for forms would be nice. Maybe a way to indicate AJAX requests. I'm sure you can think of lots of other stuff. What are people using to visualise such things? Is there a standard set of symbols that I should use? I stumbled across UML years ago but never really got comfortable with it. Could that be used for charting web sites or is it not well suited to this task?
I use sequence diagrams to document the flow from page to page (including Ajax requests). Within a page, activity diagrams are often useful
For an excellent, short, and readable introduction to the use of UML, see UML Distilled
Another option: Jesse James Garrett's visual vocabulary for interaction architecture and design.
I don't use it personally, prefer using UML Activity/State diagrams. However a few UX designers I know are strong advocates. ymmv.
I don't beleive there are official standards but the shapes never seem to differ likewise. For an operation use a box. Start and end use an oval. For a decision use a diamond. The graphical ones aren't standard, but can still be used.
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 was wondering how you draw diagrams in Unified Modeling Language for your project design? By hand on paper or some editors on computer? It will be great if there are some convenient editors or other gadgets for help. I am programming under Windows and Ubuntu.
Thanks and regards!
I used Sparx Enterprise Architect.
I reverse the java project and then just drag and drop from the Package Explorer to the diagram. When I have finished to present the existing classes I then add UML classes in the diagram. No code generation or model driven, just UML graphical representation mixing existing classes and abstract classes. I give my diagrams to the team and let them integrate it.
I am very lazy when modeling :-)
(source: forum-omondo.com)
I can see my classes and navigate from one package to another showing associations, inheritances and dependencies dynamically. No need to create a diagram per view, I prefer to use the show hide links and directly navigate in the java code and model from the same diagram it is easier and a lot more powerful because interactive.
(source: forum-omondo.com)
(source: forum-omondo.com)
Just using the class contextual menu I can navigate. Really cool
(source: forum-omondo.com)
I used Poseidon for UML for quite a while.. not that bad, it's just a little bit slow since it's written in Java.
If I remember correctly it also has a community license that can be obtained for free..
I would vote for StarUML
maybe its not brand new, but it does the job!
It works under Windows.
read more about StarUML
I use Dia for my diagramming needs. It's open source and cross platform so you can switch between OS's without worrying about which format your diagrams were in. It exports to several different image types and has a Portable version (for Windows) as well.
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)
Does anyone know of any kind of UML variation which can map events in a GUI system?
I have a quite complex event driven GUI system and I would like to create a diagram so new developers can easily get an overview of events fired by various views and what models/controllers or view are instantiated/effected by these events.
I was looking for something that would look more like a mind map which branches all over the place rather than linear scenarios.
Does anyone have any ideas?
Regards,
Chris
State diagrams.
Old and pricey, but here is a great text on modeling user interfaces with state charts. I've worn the pages out on mine....
For quick and dirty message sequence charts, you can't beat the price of mscgen. It uses a source text inspired by the syntax used by AT&T's Graphviz package, which is, incidentally, a good way to rendering arbitrary directed and undirected graphs.
I often use graphviz to document my state machines, as I find it easier to keep in sync with the implementation than a Visio drawing.
the book that finally helped me really understand UML statecharts is Samek's Practical Statecharts in C/C++ which has a few chapters on them as well as an impressive implementation framework for building state-based systems. I think it's worth getting just for the explanations of how to think with statecharts.
For actually creating quick statecharts or similar rough diagrams, I do a lot of work with the textual DOT language in GraphViz and often then include those diagrams directly into documentation generated with doxygen.
UML activity diagrams and state charts can branch all over the place.
See http://www.agilemodeling.com/style/stateChartDiagram.htm
(source: agilemodeling.com)
The communication diagram can lack sequence and it behaves more like a mind map than an activity or sequence diagram. If communicating events is your goal a state chart does show interaction, but rather, well, state. A communication diagram has less on it than an activitystate diagram, though that is not bad either, similar in nature.
You could just leverage UseCases and add keywords or label the uses edge/line. Not recommended if this will be maintained and be more than a pretty picture.
(Image is slightly overloaded, you don't need the numbering and they don't have to be method calls)
(source: agilemodeling.com)
http://www.agilemodeling.com/artifacts/communicationDiagram.htm
Another format which I was reminded of recently is the Dynamic Diagram in the Bon Method. I wrote a posting about it on Artima. The book Seamless Object-Oriented
Software Architecture was made freely available in 2003.
The difference between these and communication diagrams is separation of the steps into a separate legend. That can read like a Use Case by itself, being easy to localise and sometimes to show alternative explanations.
I had great results using this D3 based auto minimum spanning tree implementation. Just pass it a list of graph edges and it'll cluster and draw a UML-like diagram:
https://github.com/cpettitt/dagre-d3
Also great for state diagrams.