Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 2 years ago.
I've been using NClass for object/class modeling in class thus far.
However, I do not believe that it is capable of sequence diagrams, which is my next task.
I would prefer not to use Visio. Is there a good and free software solution for making sequence diagrams?
For me there are usually about 3 tools I prefer to use.
- Netbeans UML Plugin (Its free and its nice)
- Visual Paradigm UML (its really nice but it isn't free, you might be able to get a free academic copy, but that requires a bit of work
- Visio (I Know you said you didn't like it, but it works)
There is www.websequencediagrams.com that is quite cool. I'm having trouble taking it seriously, but it does a really good job at very low effort from my side.
Quick Sequence Diagram Editor might suit your needs. The syntax is strange, but easy to learn. The thing I like about it is that the diagrams are specified using text files, which makes me happy since I don't like the 'pure visual' approach used by the Visio and Rational tools.
The example on the official site may look intimidating but the syntax is actually very simple. Here's a hello world example.
hello_world.sd:
# Put all your Objects here
a:Application.java
c:Config.java
# Put all your Calls between objects here
a:c.readConfigFromFile()
Have a look at UMLet, a Free UML Tool for Fast UML Diagrams which is aimed at fast UML sketching.
(source: itmeyer.at)
For me http://sequencediagram.org is the best. And it's free!
There are also a few other open-source, DSL-based approaches.
The first one (and the one I'd recommend) is mscgen.
mscgen feels like graphviz for sequence diagrams... right down to being supported out of the box by Doxygen and having integration plugins for Sphinx, AsciiDoc, LaTeX, Org-Mode, TWiki, and JIRA)
It's available in the Debian, Ubuntu, Fedora, openSUSE, Gentoo, Archlinux AUR, FreeBSD FreshPorts, Macports, Homebrew, and Cygwin repositories and Windows binaries are available from the author's website.
There's also mscgen_js, a GPLv3-licensed JavaScript port that claims perfect compatibility with the syntax of the C version in either direction. (It accepts everything mscgen does and, if you want incompatible language extensions, you have to opt into their Xù dialect.)
...plus, mscgen_js supports taking a JSON-encoded AST as input or a language named MsGenny which is to mscgen as Markdown is to HTML and provides genny2msc.js
and msc2genny.js
scripts for manual conversion)
The second one is called msc-generator and I'm not sure if it has any relationship to mscgen. The syntax is similar but appears subtly different and it has an optional editor GUI. However, it does claim command-line compatibility with mscgen for the purposes of piggybacking on its integration plugins.
It doesn't seem to be in anywhere near as many repositories, but I discovered it via the Archlinux AUR and it has a Windows binary installer.
The last one is UMLGraph. It has a less elegant syntax based on GNU pic2plot macros. (But it can also draw class diagrams using a mix of Java syntax and javadoc tags, if that's your thing.)
UMLGraph is a javadoc doclet, so no compilation is necessary, but it does require javadoc and graphviz. There exist Fedora and openSUSE RPMs but I couldn't find any .deb
s.
Dia is Open Source and runs on Windows and Linux
DIA http://dia-installer.de/ "Dia Diagram Editor"
UMLet http://www.umlet.com/ "Free UML Tool for Fast UML Diagrams"
Gaphor http://gaphor.sourceforge.net/ "Gaphor, the essence of UML Modelling"
For me, Papyrus which is an Eclipse plugin is one the best, it follows the specification, there tutorial on youtube ( see video for sequences diagram )
And since it is integrated in Eclipse you can use it near your code, you can use a lot'of modeling tool also.
Umbrello is a fairly comprehensive UML modelling tool. Perhaps unfortunately, it runs on Linux. However I have used it in a Windows environment by running in in a Linux Virtual Machine. Because the VM appears as a machine on your network (even if you do not have a physical network), it can share your file system and printer via network shares so you can use it fairly seamlessly. However all that may be more effort that it is worth, and you should consider other solutions.