LinuxQuestions.org
Visit the LQ Articles and Editorials section
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices



Reply
 
Search this Thread
Old 11-08-2011, 05:43 PM   #1
markjuggles
Member
 
Registered: Nov 2003
Location: Chicago western suburbs
Distribution: Linux Mint
Posts: 75

Rep: Reputation: 15
State Machine Diagram Drawing Tools


Can any one recommend a free open source diagram editor which supports state machine documentation and editing?

The Moore Machine or the Mealy Machine styles are preferred but not critical.

(as shown at Wikipedia)

http://en.wikipedia.org/wiki/State_diagram

Thanks!
 
Old 11-08-2011, 05:44 PM   #2
dugan
Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 5,002

Rep: Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560Reputation: 1560
Dia and UMLet.
 
Old 11-08-2011, 06:19 PM   #3
jlinkels
Senior Member
 
Registered: Oct 2003
Location: Bonaire
Distribution: Debian Wheezy/Jessie/Sid, Linux Mint DE
Posts: 4,244

Rep: Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546
Dia would be the most logical choice.
I often draw those in Inkscape. Inkscape is a versatile tool and can do anything when it comes to vector drawing. The price you have to pay is that you have to draw the primitives yourself.
If you are willing to spend a few months struggling against a steep learning curve: Tikz. That is a Latex library. You have never seen more beautifully documented state machines.
http://www.google.com/url?sa=t&rct=j...xLmTHFUFfw042Q


jlinkels
 
Old 11-08-2011, 06:47 PM   #4
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,014

Rep: Reputation: 115Reputation: 115
I quite like GraphViz for state machines. Kinda does all the work for you, just need to declare what nodes and connections there are.
 
1 members found this post helpful.
Old 11-08-2011, 07:58 PM   #5
jlinkels
Senior Member
 
Registered: Oct 2003
Location: Bonaire
Distribution: Debian Wheezy/Jessie/Sid, Linux Mint DE
Posts: 4,244

Rep: Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546
Quote:
Originally Posted by tuxdev View Post
I quite like GraphViz for state machines. Kinda does all the work for you, just need to declare what nodes and connections there are.
Impressive, it seems that GraphViz was just made for that.

jlinkels
 
Old 11-08-2011, 08:53 PM   #6
ntubski
Senior Member
 
Registered: Nov 2005
Distribution: Debian
Posts: 2,543

Rep: Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879
I ran across finomaton at some point, although I never actually got around to using it...
 
Old 11-09-2011, 12:35 PM   #7
sundialsvcs
Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 5,455

Rep: Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172Reputation: 1172
Pencil.

Paper.

Seriously...
 
Old 11-19-2011, 10:02 AM   #8
markjuggles
Member
 
Registered: Nov 2003
Location: Chicago western suburbs
Distribution: Linux Mint
Posts: 75

Original Poster
Rep: Reputation: 15
Thanks for your suggetions. Here is my evaluation if you are interested:

Dia was is easy to use and supports the style I am looking for.

UMLet is also very easy to use but the state transitions are always straight lines and the transition labels are always on top of the lines. This is hard to read and makes large state machines difficult to interpret.

Tikz was not investigated.

GraphViz is amazing! It has lots of applications. It did quite well with a simple state machine until the state names and the transition labels got more than a couple of characters long. Then the automatic layout stumbled badly and produced some very bizzare drawings. Note that this was with the same SM but with more detail in the names.

Finomation looked promising but I couldn't figure out how to use it at all. I could not find a help file.

Pencil and Paper (and Eraser) are clearly the best place to start with the tools we have today.
 
Old 11-19-2011, 11:15 AM   #9
jlinkels
Senior Member
 
Registered: Oct 2003
Location: Bonaire
Distribution: Debian Wheezy/Jessie/Sid, Linux Mint DE
Posts: 4,244

Rep: Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546
It is definitely nice that you tried most of the recommendations and provided feedback on them. Thanks for that.

If I assume correctly Finomation is some sort of Latex macro package. Had you been able to speak Latex, you might have understood the package as well.

I assume you are not writing in Latex, so the Latex packages would not be suitable. If you ever decide to write your documents in Latex, XY-pic (http://www.tug.org/applications/Xy-pic/) is yet another state transition drawing package. However, XY-pic is considered to be superseeded by Tikz which offers an order of magnitude commands more. (Ten times more commands is exactly most beginners in Latex are just waiting for isn't it? )

Latex produces the most beautifully typeset documents. If you are able to write your state diagrams and figures in Latex commands, you are assured of matching fonts both in type and size. When you distribute the document as source, you are never confronted with incompatible picture formats, or pictures which are forgotten or out-of-date in your zip or tar file.

It takes only about 3 months studying to get your Latex documents right, and another 6 months for the graphics part, but then you master something real useful.

jlinkels
 
Old 11-19-2011, 11:57 AM   #10
ntubski
Senior Member
 
Registered: Nov 2005
Distribution: Debian
Posts: 2,543

Rep: Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879Reputation: 879
Quote:
Originally Posted by jlinkels View Post
If I assume correctly Finomation is some sort of Latex macro package. Had you been able to speak Latex, you might have understood the package as well.
Actually:
Quote:
Finomaton lets you draw finite state machines (automata) and similar graphs. It outputs MetaPost code that can be transformed to PostScript and used in TeX and LaTeX documents. Written in Tcl/Tk.
It is a graphical editor.

Quote:
Originally Posted by markjuggles
Finomation looked promising but I couldn't figure out how to use it at all. I could not find a help file.
The tarball contains a README
 
Old 11-19-2011, 12:21 PM   #11
jlinkels
Senior Member
 
Registered: Oct 2003
Location: Bonaire
Distribution: Debian Wheezy/Jessie/Sid, Linux Mint DE
Posts: 4,244

Rep: Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546Reputation: 546
I stand corrected.

jlinkels
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Unable to change the Virtual Machine Power State swiswire Debian 3 09-29-2008 03:58 PM
where is netfilter state machine info in FC7 ddaas Fedora 1 10-30-2007 06:45 PM
LXer: Modeling and Integration Tools for State Chart XML LXer Syndicated Linux News 0 03-10-2007 09:01 PM
What tools can draw UML diagram well? naihe2010 Programming 2 05-09-2006 03:07 PM
Diagram Drawing leckie Linux - Software 3 08-18-2004 09:54 AM


All times are GMT -5. The time now is 09:01 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration