October 17, 2004
Version 9 of SEQUENCE

The only change is that the source jar file now contains the data for the help files, such as they are. Here are sequence_src.jar and sequence.jar .

Posted by Alex. Permalink
Sequence is great! Thanks a lot. Posted by: Kevin on October 18, 2004 09:25 PM
I really like sequence - but one question remains .. How am I supposed to model async callbacks like Twisted (for Python) provides? http://www.twistedmatrix.com/documents/current/howto/defer gives examples. In short, I've got the following: - code A:main calls code B:method (mentioning code A:callback) - code B:method ends and returns a deferred - code A:main ends, code A is inactive - code B:method got a result and calls code A:callback ... only the first method {} block is processed by sequence :( kind regards Andreas Posted by: Count on November 1, 2004 06:38 AM
1. I would like it to see Sequence storing its preferences permanently (e.g. in the home directory of the current user)... (if one changes colors, he has to do it every time after starting the application - driving s.o. crazy ;-) 2. on dual monitor systems the main window spans both monitors at startup :-/ ... all in one, i like this tool... but it could be more comfortable, at least after realizing point 1. Thank you. Posted by: Andre on November 30, 2004 08:41 AM
A little Addition ;-) it would be nice, if Sequence displays object creation more the standard way... e.g. http://www.holub.com/goodies/uml/images/new_object.gif or (the new object is lower positioned respective to the creation message) Posted by: Andre on November 30, 2004 09:08 AM
correction - SEQUENCE stores and loads its preferences with an option: java -Dzanthan.prefs=pathToPreferenceFile -jar sequence.jar ...sorry Posted by: Andre on December 1, 2004 08:16 PM
hi Alex. Sequence is a great tool, very easy to use. Does it (or will it) have support for concurrency / asynchronous behavior ? I have a "scheduler" that fires off requests to multiple "workers". In one of many scenarios, the 2nd worker tasked is the first to respond. I'm hoping to see something like this -- "s -> w1 ; s -> w2 ; w2 -> s; w1 -> s". How would i diagram this in Sequence ? Posted by: dave on January 18, 2005 11:43 AM
Alex: Sequence is a great tool. I am wondering if it supports or will support threads. Example: Method A calls method B. Method B starts a thread then returns to method A. Then Method A returns; however, the thread started by method B has a list of actions to perform. Posted by: Liz on February 23, 2005 12:15 PM
Hi, Whether SEQUENCE can generate Sequence Diagrams from the existing Java Source Code ? How to use the SEQUENCE genrally and in WSAD ? thanks in advance Posted by: Shyam on July 18, 2005 12:04 PM
Hi, there. I m student of M.Sc. Business I. T., and currently working on my final project called College Mgt System. I m trying to develope Web Based application in .NET. -- -- I just needed help with creating sequence diagram and class diagram. So, if n e one have knowledge - can please help me with that. -- -- I m attaching here the requirement analysis of the proposed system which might help u to figure it out what system should suppose to be doing. -- -- (1). Browse for a course - The browse for a course use case describes what students need to do to find a course of his choice on the web site. -- -- (2). Search for a course - The search for a course use case describes what students should do to search for a course on the website especially when students have some information such as course title, subject of the course e.g. computing, law, management, etc. and course id. -- -- (3). Admission - This use case allows students to apply online for an admission in particular course. -- -- (4). Process Application - Process Application use case allows admin clerk to enter the student’s details into the system who apply for an admission by sending application form to the university and it also carries out the admission process for those students who apply online. -- -- (5). Payment of fees - Payment of fees use case illustrates the finance clerk to update students finance details when they pay the fees. -- -- (6). Login - The login use case allows student, admin clerk, finance clerk, lecturer and management to login into the system access their designated area. -- -- (7). Remember Password - The remember password use case helps the users of the system to retrieve their password in case if they forget it. -- -- (8). View Module details - This use case lets students to view their module details. -- -- (9). Attendance - The attendance use case allows admin clerk to enter studentsEattendance into the system from the attendance sheet given by the lecturer. -- -- (10). Examination Process - This use case allows admin clerk to enter studentsEcourse work and exam marks into the system and update their credit points for the modules. -- -- (11). View Results - The view result use case allows students to view their marks in coursework and exam, and credit points for the module. -- -- (12). View Reports - This use case lets management and lecturer to print various reports as per their requirement and their privileges to the use of the system. -- -- (13). Enter Course / Module Details - This use case lets administrator to enter the details of the new courses / new modules. -- -- (14). Update Course / Module Details - This use case allows administrator to update the course / module details into the system. -- -- (15). Create New User - This use case makes it possible to create any new user who is going to use the system. -- -- (16). User Rights - The user rights use case let administrator to assign a right to the user and there by controlling their access to the certain area of the system only. -- -- I would welcome to hearing from u guys.... Thanks in advance..... Posted by: Vishal on October 18, 2005 03:42 PM
Hello, Thanks for this helpful tool. I want to know about the status of sequence; will there be any future version containing improvements?. Thanks in advance. Posted by: ALAMIX on December 27, 2005 03:45 AM
theck this out to make diagrames Posted by: sani on June 18, 2007 01:10 PM
Hi Alex, Your SEQUENCE was an inspiration for creating my own, but when I was done I found that text isn't the best way to create & edit diagrams. I've further developed it into Trace Modeler, a graphical editor just for sequence diagrams. It is a really fast and easy way to create sequence diagrams! It has retained a very easy textual file format, so if you (or anyone else) is still interested in generating sequence diagrams from text (perhaps by tracing their apps as Bob did), be sure to give it a try! It support all the commonly used elements on a UML sequence diagram You can check it out at http://www.tracemodeler.com Best regards, Yanic Posted by: Yanic on August 1, 2007 03:55 PM
September 28, 2004
New Version of SEQUENCE

A new version of sequence. This one makes the --headless option for producing .png images directly from sequence flow descriptions work again. The default is now to use the new parser. An executable jar file is available as sequence.jar and the source code is in sequence_src.jar. Hope you like it.

Posted by Alex. Permalink
The sequence.jar does not seem to be available in the sequence.jar download file. It used to be. Am I missing it somehow? thanks Posted by: ewarner on September 30, 2004 03:06 PM
Nevermind. I see that I have to rename the download file extension to get it to work. thanks. Posted by: ewarner on September 30, 2004 03:11 PM
June 30, 2004

Well, sort of. So this week I'm here at JavaOne, in fact I even presented this morning but that was work related and so not the point of this. Yesterday I was in the Concurrency Utilities in Practice TS-2136 talk, which was excellent, and I noticed that the look of one of the sequence diagrams shown on the screen was very familiar. I talked to the presenters afterwards and it turns out they'd use SEQUENCE to generate it. I think I'll have to get round to woking on the program again soon.

Posted by Alex. Permalink
Beautiful tool! I have a small problem though, when I tried to run the --headless mode, it didn't work, and then I realized that it DOES work with the old LISP syntax, but not the new one :( Am I crazy or doing something wrong? Posted by: Otto on September 8, 2004 04:39 PM
Hi Alex, I am very happy to see you considering getting back to extending SEQUENCE! This is really a very nice tool! But it still needs some final touches like support for assync calls and robustness when dealing with large diagrams (when generating the png - maybe svg would scale better). It definetely should be made a top project in an open source repository like SourceForge or FreshMeat... Another suggestion would be to add a version number to the tool, and make it available in a Maven-compatible format (or push it to ibiblio). This would make it easier to integrate SEQUENCE with other applications, for example to create IDE/framework wrappers for it. Regards, Nascif Posted by: Nascif A. Abousalh-Neto on September 28, 2004 09:11 AM
January 20, 2004
SEQUENCE - Improved Examples and Help

plus, of course, some bug fixes. Embarassing though it is to admit, working through putting together the examples, which are available under the Help menu in SEQUENCE, showed up a few problems that I needed to fix. As well as adding lots more examples, and improving the help I also deprecated the old "LISP style" syntax for describing sequence diagrams. You can still get access to it by passing the --offer_parser_choice option on the command line, but by default you now only get the more Java like syntax.

The source code is in sequence_src.jar and an executable version is available in sequence.jar. To run it just type java -jar sequence.jar. You'll need a 1.4 or better Java version.

Posted by Alex. Permalink
Hi, I am still using sequence more and more. I have a suggestion for an improvement (not easy I'm afraid) to support parallel execution. In brace syntax, the idea is to define: Obj.Oper (Args) -> Stat { Obj1.Oper... && Obj2.Oper... } Graphically, this would do something like (or anything better): Obj Obj1 Obj2 | | | |------------------------------->+-+ | | | | | | |------------>+-+ | | | | | | | | ... | | | | | | | |<------------+-+ | | | |<-------------------------------+-+ | | Regards Posted by: Pascal MALAISE on February 24, 2004 07:49 AM
Hi Alex. Wonderful tool, I was able to create my first diagram only seconds after downloading Sequence. Support for asynchronous messages/multiple threads, as already requested by others, is the only feature that i sadly miss. Possible bug: I changed the "vertical gap between method executions" preference, but it didn't seem to affect the display. Same with the "show return types" checkbox: checking/unchecking made no difference. And a small suggestion: mentioning the default return type "void" seems superfluous. I think the diagrams become clearer when methods without return values simply end in unlabeled dashed arrows towards their caller. Otherwise: great tool. Posted by: Martin on March 15, 2004 07:54 PM
Great tool -- just what I need and the text input is so much better than futzing around with drawing. Really great stuff. a few comments 1. Would like to be able to say not to show a return line on a method by method basis. I guess if I don't give a return, I'd rather there be no line and no "void". If I want void, I'll put in -> void. 2. You are disabling "Save As..." when I save and until the next change -- but I might want to save As... a saved/unchanged sequence. 3. Export makes a PNG, but I only know that because I hex edited the resulting file. A hint in the menu (Export to PNG) or in the save as dialog (with the extension) would be great. Posted by: Lou Franco on May 4, 2004 06:45 PM
Alex, I will echo the praise of your tool. However, I believe there is a bug in the latest version. It appears to skip the first object in the call sequence. I'm sure this is easy to fix and the older version works great (even thought it doesn't have a good a help system.) Thought you'd want to know. Joe :-) Posted by: Joe Angerer on May 28, 2004 03:11 PM
I'm using sequence v7, and I'm having a nasty bug that I can't seem to resolve. I'm creating several .txt sequence descriptions, and loop through a script to generate the pngs headlessly. What I've discovered is that something usually goes wrong with the headless generation. The only example that seems to generate successfully is the "all" example. The one labelled "Conditions", for example, is generating a 41x31 pixel png when I run headless. Here is the "Conditions" example: // Method names can be preceeded by a condition in [ and ]. This must // follow any *. Use *[condition] for repeating the call while a condition // is true and [condition] for calling the method once if a condition is true. objectOne.methodOne { objectTwo.methodTwo(foo, bar) -> value { objectThree.*[while != null] methodThree(value) -> anotherValue objectFour . [> 10] methodFour() } } This diagram will generate correctly in the interactive version, but I'm looking to generate headless. Thanks for any suggestions! I haven't sat down and tried to figure out what is being done differently in headless vs. interactive modes. Posted by: Mark on July 12, 2004 11:59 AM
hi alex! tx a lot. a really fine tool. exactly what i was looking for. i already made some bugfixes & changes - "Show Return Types" and "Vertical method execution gap" now work and i did a hack to allow "sorting" objects/classes. if you're interrested just let me know. Posted by: oaky on July 18, 2004 08:26 PM
i want an examples about serries and sequnce Posted by: salem on May 9, 2005 02:41 AM
November 24, 2003
Another Version of SEQUENCE

Just a few small improvements. I've added the beginnings of a help system, currently consisting of a menu option and a couple of java help pages. I've also changed the command line options slightly. To run in headless mode you now need to say

java -jar sequence.jar --headless <input_file_name>

and when you run with a display you can choose the default directory used by the open and save commands if you say

java -jar sequence.jar <default_dir>

As usual the compiled code is sequence.jar and the source is sequence_src.jar

I hope to get round to making other changes that people have asked for soon.

Posted by Alex. Permalink
September 16, 2003
New version of SEQUENCE

An initial version of a new release that supports an alternative syntax for defining sequence diagrams. The sequence.jar file can be executed by typing java -jar sequence.jar. The sequence_src.jar file contains the source code. The parser for the new syntax is implemented using javacc.

Posted by Alex. Permalink
First, congratulations on the outstanding tool. Really awesome. How about extending the syntax to support async messages? This would be really handy, specially if jAdvise makes use of it. For example, it could be extended to recognized special calls like Thread.start() as making an async call. Or you could assume (or make configurable) method calls are async by default, and use the presence of a return value as a hint that it is actually a sync call. Thanks, Nascif Posted by: Async calls on November 20, 2003 02:54 PM
Another idea: you could make available an Ant task or some other form of command-line version to allow this tool to be called from a build system like Ant or Make. One use of that would be to make the sequence diagrams part of the JavaDoc documentation; the .png files would be automatically generated from the diagram "script" (any idea for a standard extension?) and the script would be kept under source control with the rest of the code. Regards, Nascif Posted by: Nascif on November 20, 2003 03:37 PM
By the way, when I launch SEQUENCE (java -jar sequence.jar) I get the following error message: log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: logs/debug.log (No such file or directory) at java.io.FileOutputStream.openAppend(Native Method) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:602) at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460) at org.apache.log4j.LogManager.(LogManager.java:113) at org.apache.log4j.Logger.getLogger(Logger.java:94) at com.zanthan.sequence.Main.(Main.java:32) Any ideas? Posted by: Nascif on November 21, 2003 10:59 AM
Nascif, thanks for your comments. I hope to get round to making the changes you suggest fairly soon. I've actually fixed the problem you mention in your last comment. Log4j by default will only create the log files you want to log to, not the directories those files should be in. Simple to fix by a little overriding though so I've done so. Posted by: Alex on November 25, 2003 08:02 PM
Hi Alex, Good work. Recently I was thinking of writing such a tool and decided either XML(Complicated) or a tabbed format will be my input for my tool. And I stumbled onto your stuff. I made few changes and got a tabbed format working very well. *it was easy and speaks to how you have done the coding*. Today, I noticed that the code is vastly different, a) headless support b) additional parser (similar to what I had implemented, but yours is bit more complicated). I have again incorporated my changes again to the 0.6 code. I want to give it back to you. Are you interested? Let me know. I can send it to you. Thanks. r_sudharsan#at#yahoo#dot#com Posted by: Sudhan on December 18, 2003 12:56 AM
log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: ..\logs\RISBackend.log (The system cannot find the path specified) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:177) at java.io.FileOutputStream.(FileOutputStream.java:102) at org.apache.log4j.FileAppender.setFile(FileAppender.java:272) at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:156) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247) at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:210) at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:140) at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:153) at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:415) at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:335) at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:781) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:666) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:616) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:602) at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460) at org.apache.log4j.LogManager.(LogManager.java:113) at org.apache.log4j.Category.getInstance(Category.java:514) at com.rittenhouse.RIS.Main.startLogger(Main.java:1721) at com.rittenhouse.RIS.Main.(Main.java:203) at com.rittenhouse.RIS.Main.main(Main.java:216) i need the solution as soon as possible..if any one has solution for this..plz help me Posted by: ranj on July 31, 2006 02:34 AM
Hello, I have the same problem with the following message error: log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: logs/debug.log (No such file or directory) How can I resolve it? Thank you. Posted by: aymen on November 15, 2006 02:27 AM
August 13, 2003
New Syntax Partially Working

I've got the parser finished and hooked in as the picture below shows. I now need to upgrade the layout algorithm so that it can handle double line object names and work out how to determine which parser to use for a saved file.

Posted by Alex. Permalink
July 30, 2003
Alternative Syntax

I'm making quite good progress with implementing the alternative syntax. Using JavaCC, which I've had some experience with in the past, it was easy to put together a grammar that recognizes valid statements in the new syntax. We've also recently used JavaCC at work to write a grammar for parsing SQL like statements.

Posted by Alex. Permalink
July 28, 2003
Alternative Syntax

I'm thinking of implementing an alternative syntax for specifying a diagram for SEQUENCE. The current syntax is going to make it very difficult to add some of the features, such as stereotypes and method arguments in a sensible way. Here are my initial thoughts.

Simplest. Call method aMethod on object anObject.

anObject . aMethod

You can also use << and >> for methods like create.


The spaces around the . separating the object and method names are optional. If aMethod has a return value it is shown following -> after the method name, as below.

anObject.aMethod -> returnValue

The calls made by a method are shown in it's method body, enclosed in { and }, which follows the method name, or returnValue if present.

anObject . aMethod {
  anotherObject.aDifferentMethod -> someValue

anObject.aMethod -> returnValue {
  anotherObject.aDifferentMethod -> someValue

The name of the object can be made up of three fragments. The ClassName must start with : and the stereotype must be surrounded by << and >>.

objectName :ClassName <<stereotype>>

Any combination of the fragments may be used so any of the six examples below would be valid.

objectName :ClassName
objectName:ClassName <<stereotype>>
:ClassName <<stereotype>>

A quick example. This also shows the use of " to surround a names that contains spaces. The same technique is used if the class name contains spaces. As the stereotype must be surrounded by << and >> there is no need to use " in this case.

"A Student" <<actor>> enroll {
  :EnrollInSeminar <<controller>> ."wish to enroll"

The method name may also be more elaborate than a simple name. It can include an iteration marker *, a condition enclosed with [ and ], and arguments following the method name surrounded by ( and ).

accountBalance.*[transaction has debits]withdraw(debit amount)
Posted by Alex. Permalink
July 26, 2003
SEQUENCE - A few bug fixes and improvements

I've made a couple of bug fixes and improvements to SEQUENCE recently. I added arrows to the call and return lines, they'd got dropped in a previous build, and I fixed a layout problem with calls that went from right to left on the diagram. Here's a screen shot of the latest version. The source code for SEQUENCE is here while an executable jar file for SEQUENCE is here.

Posted by Alex. Permalink
July 22, 2003
SEQUENCE - Couple of answers

Look here for the latest developments and releases of SEQUENCE.

Shiv asked for an example command line to execute SEQUENCE from the classes directory that it is build in. Here's one that works for me. It should all be on one line of course, I split it for "better" presentation

-cp classes:properties:lib/log4j.jar:lib/jlfgr-1_0.jar

  • classes is the directory containing the compiled code for SEQUENCE.
  • properties is the directory containing the log4j.xml file that specifies the logging settings. Without this you get a single warning when the program starts, otherwise the program runs fine.
  • log4j.jar contains the code for log4j
  • jlfgr-1_0.jar contains the java look and feel icons from the Java look and feel Graphics Repository
  • com.zanthan.sequence.swing.Sequence the main class

As to the OutOfMemory error on exporting a very large diagram to PNG format, I really don't know what that could be. The ExportAction class uses the javax.imageio.ImageIO static method write to output the image after it has been drawn on a BufferedImage instance. If you put some logging statements in the ExportAction export method you could probably isolate where the problem is. If you send me the file causing the problem I'd be glad to take a look.

Posted by Alex. Permalink
April 15, 2003
SEQUENCE Improvements

Look here for the latest developments and releases of SEQUENCE.

A couple more improvements to SEQUENCE. They're both illustrated in the diagram below.

Matt Ring changed the SwingPainter component so that the return lines are shown dashed, as they should be. I've improved the layout code so that the exported png diagrams actually show all of the diagram, and I changed the Display class so that when the diagram size changes the scroll bars are undated. The new executable jar file is here and the source code here.

Posted by Alex. Permalink
March 16, 2003

Look here for the latest developments and releases of SEQUENCE.

At the suggestion of Chris Winters I've made a couple of changes to SEQUENCE. Firstly, instead of the name of the first object on the diagram being set via the preferences it is now set from the text description of the sequence. Secondly, you can now generate a PNG image for a diagram in headless mode.

I originally wrote SEQUENCE as a quick and dirty hack and that showed most strongly in the parser and diagram layout portions. At that time the easiest way to set the name of the initial object was to use the preferences. Chris's suggestion prompted me to look at that assumption. With the refactored code in the latest version it turned out it was easy to change things so that the first entry in the sequence becomes the name of the initial object. For example.

(CommentFactory newComment
    (Comment new 
      (IDGen nextID newId) 
      (Transaction add)))

Note that the name of the first method is not shown in the diagram, though there is a tooltip on the GUI now that does show it.

The second change, headless operation, was also much easier because of code restructuring. However, what really made it possible was the java.awt.headless system property. There are now two ways to start SEQUENCE. If you use
java -jar sequence.jar
then the GUI is shown as before. If you use
java -Djava.awt.headless=true sequence.jar <input_file.ext>
then the file input_file.ext, where ext is any extension, is read and a PNG image is written to the file input_file.png I've not yet tested calling this using cgi but it should work.

Here's the executable jar file sequence.jar, and a jar of the source code, sequence_src.jar.

Posted by Alex. Permalink
Hooray! Thanks Alex. Posted by: Chris Winters on March 18, 2003 09:41 PM
Alex, I've modified com.zanthan.sequence.swing.display.SwingPainter to use dashed lines for method returns. I think it helps to clarify the diagrams. Let me know if you'd like the code. -Matt Posted by: Matt Ring on April 8, 2003 02:10 PM
Your site is cool http://mercedes-benz--oakland.coz.in http://mercedes-benz-oakland.110mb.com Welcome to Mercedes-Benz of Oakland also check: http://buy-drugs.info/Health-Oshawa-Spars/index.html http://20six.nl/drugs buy-phentermine mercedes-benz-oakland Health-Oshawa-Spars buy-drugs-info Posted by: PaulP on July 19, 2006 03:08 AM
Unique baby gift http://beep.com/members/uniquebabygifts http://uniquegifts.beeplog.de http://uniquebabygift.funpic.org http://babygift.beeplog.com http://uniquebabygift.gq.nu Posted by: Annita on July 11, 2007 11:42 PM
Unique baby gift http://beep.com/members/uniquebabygifts http://uniquegifts.beeplog.de http://uniquebabygift.funpic.org http://babygift.beeplog.com http://uniquebabygift.gq.nu Posted by: Annita on July 11, 2007 11:43 PM
February 25, 2003

Look here for the latest developments and releases of SEQUENCE.

I've just finished the coding for the next version of SEQUENCE, a tool for drawing simple UML sequence diagrams. It includes no new functionality but should provide a better base for future development. Next I'm going to try using it in the UML IntelliJ plugin so that I can get a better sense of what is needed to make it easy to plug in to other tools. After that I think I'll experiment with supporting different syntaxes for writing the diagrams. Here's an "executable" jar file, which should run with java 1.4 using

java -jar sequence.jar

and here's the source.

Posted by Alex. Permalink
Another suggestion: it would be great to have the initial object name settable in the sequence script itself in addition to as a global property. Something like: Initial: MyFunkyObject\n (ThatOtherObject foo\n (YetAnotherObject baz)) Thanks for the work! Posted by: Chris Winters on March 13, 2003 08:57 AM
January 07, 2003
jAdvise - SEQUENCE

Look here for the latest developments and releases of SEQUENCE.

Bob Lee has produced a fantastic application by combining the SEQUENCE tool I wrote with his own jAdvise (a much more sophisticated piece of code). It produces sequence diagrams from executing code and is the sort of thing the inspires, and embarrasses, me into picking up SEQUENCE again and making some improvements.

Posted by Alex. Permalink
A samll and powerful tool Posted by: varadh on July 29, 2004 07:29 AM
November 28, 2002
SEQUENCE Improved - More features for drawing sequence diagrams

Look here for the latest developments and releases of SEQUENCE.

In July I wrote a little LGPL program for UML Sequence Diagram Sketches. I've now taken the time to make a couple of improvements in response to user requests.

  • The diagram can now show a notation next to the return arrow. So, for example you could show the return type.
  • There is now a very basic preferences system so that you can change the colors that are used in the diagram and choose whether or not to display return types.
  • You can now include spaces in object names, method names, and return types by surrounding them by single or double quotes.

So, for instance, this diagram is produced from this text.

(Comments newComment
  (CommentFactory newComment "a new comment"
    (Comment new 
      (IDGen nextID newId) 
      (Transaction "add(this)")))
  (Comments addToCache))

Here's a screen shot of SEQUENCE in action and finally links to an executable jar file and a jar file containing the source code.

Alex, take a look at what Bob Lee's built on top of Sequence. It's rather neat. His site is at: http://crazybob.org/index.jsp Posted by: Ade on January 6, 2003 04:02 AM
Great little tool. But why put the return value in the same line as the method called - I mean BEFORE the nested calls ? This is not a natural way to output the sequence executed if I am writing aspects (see crazybob.org Bob Lee stuff), or if i am using insertBefore and insertAfter statement interceptor. Could'nt be something like (caller method_on_cally (cally method returnedValueOfMethod) returnValueOfMethod_on_cally ) instead of (caller method_on_cally returnValueOfMethod_on_cally (cally method returnedValueOfMethod) ) Posted by: Pam on February 19, 2003 04:22 PM
I apologize for the rather poor syntax for expressing the diagram. It was unfortunately just hacked together. The current structure makes parsing very easy. Putting the return at the end makes it harder. The next version of sequence, which I hope to have completed soon will make it easier to support different syntaxes and I'm probably going to have some alternatives available then. Posted by: Alex on February 22, 2003 08:11 PM
I actually like the current format. It suits the "coding by intention" technique in which I define the call and what I expect back prior to working on the nitty gritty of the call. The layout also looks cleaner in the situation where you have a large internal call - the return value is then not separated from the call by a many lines. Posted by: James on March 3, 2003 08:37 PM
Thank you for good tool. Posted by: IGAWA Masayuki on March 13, 2003 11:13 PM
Thanks. Posted by: hugh on March 13, 2003 11:16 PM
Does anyone know how to fix the following exception I get when generating in a headless environment (sequence.jar version 7)? The contents of diagram.txt are a working example from sequence's help menu. E:\>java -jar sequence.jar --headless e:\diagram.txt Reading "e:\diagram.txt" and creating "e:\diagram.png". Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(ArrayList.java:326) at com.zanthan.sequence.layout.LayoutData.getMaxHeaderX(LayoutData.java:213) at com.zanthan.sequence.layout.LayoutData.getWidth(LayoutData.java:324) at com.zanthan.sequence.headless.PngCreator.outputPng(PngCreator.java:86) at com.zanthan.sequence.headless.PngCreator.output(PngCreator.java:58) at com.zanthan.sequence.Main.runHeadless(Main.java:59) at com.zanthan.sequence.Main.main(Main.java:129) Many thanks Posted by: Richard Payne on July 16, 2004 10:32 AM
This is awesome! No more carpal from those awful Rational and Microsoft tools. Would be a nice plus if you could generate the .png from the gui, but I'm not complaining. Thank you! Posted by: Sydney on February 7, 2005 04:00 PM
hm...interesting, good program for diagrams:) Bathroom Vanity Posted by: Chudil on June 23, 2005 08:09 AM
Open source wiki http://snipsnap.org seems to support it's own UML sketching language (becomes handy if you use wiki to create and publish your design documents). Posted by: Andrew Vishnyakov on November 1, 2005 08:23 AM
Hi, I need to produce models: Use case model, class diagram, sequence diagram for an online banking system which: Customer can - transfer funds from current a/c they own (can be joint a/c), to another current a/c - transfer funds from current a/c to their credit a/c (credit card a/c) - view any transactions on their a/c with designated periods - set up direct debit payment or standing order on their a/cs - Customer will be logged off system if inactive for 3 minutes after no activity, or after not using a service after 3 mins. - Customer will be logged off if incorrect details. - Customer should be able to request hard copy of transactions. WOULD BE VERY GRATEFUL FOR ANY HELP!!! THANKS Posted by: Omf on November 24, 2005 10:26 AM
I've managed to integrate your SEQUENCE program with Doxygen. It makes the generated documentation much better. You can find it at my blog here : http://goolife.blogspot.com/2005/11/doxygen-meets-sequence-diagrams.html Posted by: gooli on November 28, 2005 09:36 AM
I've written a library that also produces Sequence Diagrams. Mine is not (yet) driven via a XML format but from an API. It does however support more UML diagram artifacts such as Async messaging, Frames and multiple page output. The look & feel and layout properties are all externalized for easy customization. You can find it here http://rjeeai.blogspot.com/ Posted by: rje on March 29, 2006 07:48 AM
I've also written and Sequence Diagram generator. It's driven via a Java API and has support for several UML diagram artifacts such as Sync/Async messaging, Embeddable frames, multi page output. You can find it here http://rjeeai.blogspot.com/ Posted by: rje on March 29, 2006 07:51 AM
Hi, I need some help from the developer of Sequence... I have changed the grammar to allow loops to be captured... and so now i need to draw a frame around the looped items ie.. {object.method();} And im battling to figure out the structure/layout to draw these objects... because i will need to move the method body blocks down a bit, so that the frame can be drawn and so that the mehod calls can fall inside the frame??? Please contact me... on my email...gerhard.goosen@bluespere.co.za.. Thanks Posted by: Gerhard on May 18, 2006 02:54 AM
Best forex solution! Get free demo account now! http://forex-club.atspace.com Posted by: Jonh Forex on September 23, 2006 10:39 AM
Hi, I need to produce models: Use case model, class diagram, sequence diagram for an online banking system which: Customer can - transfer funds from current a/c they own (can be joint a/c), to another current a/c - transfer funds from current a/c to their credit a/c (credit card a/c) - view any transactions on their a/c with designated periods - set up direct debit payment or standing order on their a/cs - Customer will be logged off system if inactive for 3 minutes after no activity, or after not using a service after 3 mins. - Customer will be logged off if incorrect details. - Customer should be able to request hard copy of transactions. WOULD BE VERY GRATEFUL FOR ANY HELP!!! THANKS Posted by: amit garg on November 4, 2006 10:19 PM
July 28, 2002
UML Sequence Diagram Sketches

Look here for the latest developments and releases of SEQUENCE.

As part of working on the design on MBlog I've been producing quite a few UML Sequence diagrams. I started out sketching these by hand which is quick, apart from the constant erasing and redrawing, but does make it difficult to publish them on the web. I then tried using the OpenOffice.org draw program. However, I found I was spending more time making the drawing look pretty than expressing what I wanted. Next I looked at ArgoUML but with that tool you have to enter a lot of information that isn't needed for a simple sketch before you can get any diagram. Finally I decided that it would be simpler to produce my own simple took.

The end result is an interactive editing tool called SEQUENCE that produces pictures like this from a textual input like this

(Comments newComment 
  (CommentFactory newComment 
    (Comment new 
      (IDGen nextID) 
      (Transaction add)))
  (Comments addToCache))

It's written in java and required java 1.4.0 or above to run. I've released it under the LGPL and you can don't load the executable and source as one jar file. Just unjar it and use java -jar sequence.jar to execute. Look at the README file for more info on how to build it from source. I hope to make improvements as needed and apologize for the current complete lack of comments.

Posted by Alex. Permalink
Hello, I am working on a project which is written in JAVA, and I like your Sequence Diagram. I am trying to include Seq. Diag. into my project, but something is wrong with the Parser class. I just can add the new Objects and Method to the Diagram, but I cannot add the addReturn(). Anytime the ")" is typed into the textbox, my program is hang up. Hope that I could talk to you about this. You can find my project online at: http://sourceforge.net/projects/dinstcogjavatoo Thank you very much. tdd Posted by: tdd on November 18, 2002 02:54 PM
I'm using ArgoUML for class diagrams, but found it too immature for interaction diagrams. Sequence is exactly what I needed. Thanks. Posted by: Jaycee on November 23, 2002 11:44 AM
To tdd: Just noting our email exchange here. Bugs resolved. Posted by: Alex on November 28, 2002 02:06 PM
-what is the key diffrences between the collabration diagram and the sequance digram... which is the best to use it. relative strengths of each modelling technique and suggest where each would best be used in the development process -the various ways in which UML Activity Diagrams may be used to support developers during the analysis phase of development. Posted by: raju on December 3, 2002 07:16 AM
Questions I am unqualified to answer I'm afraid :) Posted by: Alex on December 3, 2002 07:31 PM
In answer to the Q abbout collab vs sequence diagrams. They're the same, in that one can transform from one to the other with no loss of information. Together (Togethersoft, now a part of Borland) does this quite nicely. Posted by: Mark Smith on January 4, 2003 06:11 PM
Probably I just lazy to invent or implement such as simplistic UML diagram tool. But I thought that it could be a more elegant and much more universal to start from XMI description of UML diagram and implement XSL transofmation or piece of Java code (it looks more realistic) to generate SVG code (wich is also XML) and then pass that SVG to Batic or Adobe SVG viewer to render... Posted by: euxx on January 4, 2003 09:36 PM
If I'm using VB Script and ASP to develop my web page, can I use sequence diagram to represent them? Can the sequence diagram being use for none object oriented software? Many thanks! Posted by: Tracy on January 22, 2003 01:26 AM
Alex, I appreciate the work you have done on this tool. I have downloaded your source and have made some modifications to integrate it into a plugin for intelliJ (www.intellij.net). I actually integrated it into an open source plugin that had been written to support the generation of class diagrams, this plugin is available at (http://www.intellij.org/twiki/bin/view/Main/SimpleUML). My/our plugin adds sequence diagrams. I have retained all of the licenses and will ensure that you receive the billing due you. I have not yet distributed this code beyond my cubical but intend to shortly. If you are interested in knowing more let me know. Posted by: Luke Burgess on February 13, 2003 09:25 AM
I'm a student. What is the purpose of sequence diagram, class diagram and statechart in an object oriented development process Posted by: Kofi on February 17, 2003 05:43 AM
Nice tool. Just wondered if you were planning to make it more sophisticated. e.g. When a new object is created, make the object box way down the page (at the same level at which it was created). Would be good also to include specific arrows for the various unique methods (e.g. object.destroy()). I'm not well versed on the UML specification but someone out there must be. What are your thoughts? Posted by: John Pedro on April 27, 2003 05:15 PM
hello iam working on a project, so i want a sequence diagram of event: customer places an order on the web site. trigger(data input): customer-order. response (data output) so please mail me the sequence diagram. thanks for the help. Posted by: elesh on June 5, 2003 08:13 PM
uml diagram Posted by: Nayna on June 18, 2003 02:24 AM
I'am also student in SriLanka If you can send me a sequance diagram for "swiming club" system Posted by: Channa Baddegama on June 18, 2003 04:21 AM
I'am a student I need sequence diagram and collaboration diagrams to: Computerized membership system for a local swimming club. The membership Details are currently monitored using a manual list. On club evenings, the receptionist checks that each person is a fully paid up member of the club before he/she is allowed into the building. Members can pay a yearly or a six monthly subscription. The information currently stored in the list includes the following: Member name, member number, address, contact telephone number, type of membership (6 monthly, yearly) date of payment.The membership list is also made available to the treasurer who monitors the membership and subscriptions. The club secretary checks the membership needs to be renewed in the next month. Posted by: Channa on June 23, 2003 10:58 PM
hey pal! Posted by: on July 10, 2003 06:24 AM
Impressive...rendered a 4500-call file to a sequence diagram in a couple of seconds. Your application is very useful in understanding legacy code. However, choked (OutOfMemoryError) when trying to export that image to PNG. Throwing more memory at the VM did not help... Also, I could only run your app as a jar. When I compiled it and tried to run by invoking main, I hit some swing errors. Could you post a sample command to run your program as an application, including the classpath and system properties? Posted by: Shiv on July 14, 2003 04:09 PM
Shiv. I added some answers to your questions as a post in the SEQUENCE category. Posted by: Alex on July 23, 2003 10:19 AM
I have a this problem I must draw sequence diagram and use case diagram and class diagram Problem A patient record a schedule system in doctors's office is used by receptionists,nurses and the doctors.The receptionists use the sysem to enter new patient information when first-time visitthe doctor.They also schedule all appointments.The nurse use to the system to keep track of the results of each visit and to enter information about patient cre, such as medicals and diagnoses.The nurse can also access the information to print reports or the history of the patient visit. The premarily use the system to view patient history The doctoe may enter some patient treament information occassionally, but most frequently they let the nurse enter this information. Please reply Posted by: Portia on August 14, 2003 09:54 AM
Hello Iam a student of MCS.I need differnt UML diagrams of a PayRoll and inventory control system of an medium level organization.I will be very thankful to you. Thanks Naeem Akbar Posted by: naeem on November 11, 2003 03:35 PM
Hello Iam a student of MCS.I need differnt UML diagrams of a PayRoll and inventory control system of an medium level organization.I will be very thankful to you. Thanks Naeem Akbar Posted by: naeem on November 11, 2003 03:36 PM
Very interesting Posted by: Dave on November 29, 2003 08:35 AM
I dont have any comment rather i want you to sed your project done using UMl. The documentation part. Thank you before hand Posted by: getachew kidanemariam on January 8, 2004 07:55 AM
Nice! Posted by: x40 on January 18, 2004 07:18 AM
aaaaaaaa Posted by: shinzou on January 26, 2004 03:44 AM
i hate it Posted by: trruyhr on March 15, 2004 04:24 AM
BRILLIANT! Been looking for some tool to do this, and it's perfect :) Visually pretty and very clean! I LOVE IT! Posted by: Darren on June 12, 2004 11:06 AM
You just saved my day ! This syntax is just the fastest way to describe a diagram (see graphviz as another example ) Wish a similar class diagram tool exists Posted by: Leo on July 6, 2004 06:05 AM
Iam a student i need Event Table,Use Case diagrams and class Model . membership system for a Bbruns wick Club. the membership Details are placed on file. the sales team examine the prospect file once a week. Allprosects expected to attend a guided tour where membership and bank refernce forms are completed, during the guided tour the sales represented makes a personal assessment of the prospect. this personal assessment together with additional details gleaned from the membership form and bank reference form are recorded in the prospects file. the bank reference forms are sent to the prospect's bank so that a credit reference may be supplied, when the bank reference is received the prospects file is updated and the accounts dept examine the bank reference and the rest of the details supplied by the prospect to determine the creidt worthiness of the prospect, their assessment is recorded on the prospect file Posted by: Mahmud on July 8, 2004 08:31 AM
iam student ineed use case, sequence diagrams to membership system for brunswick Club. Posted by: mahmud on July 8, 2004 07:36 PM
What about the decision nodes and the parallel behavior. Do you plan to include them sometimes. Regards Posted by: anonymous on July 15, 2004 02:10 PM
i would like to ask you question that i have.. i need your help to solve the sequence diagram..this is the question. "the organization offers a variety of areas such as learning management techniques and understanding different software language and technology .each course is made up of a set of topics.tutors in the organization are assigned courses to teach according to the area that they specialize in and their availability.the organization publishes Posted by: diana on July 18, 2004 09:20 PM
hi i'm a student i need the uml diagrams for Airline Reservation system. I need particularly use case,class,sequence and acitivity diagram if anyone could plz send me the diagrams..its urgent Posted by: sujatha on August 12, 2004 10:28 PM
http://december.pinkzoo.com/index3461.html http://december.pinkzoo.com/index3462.html http://december.pinkzoo.com/index3463.html http://december.pinkzoo.com/index3464.html http://december.pinkzoo.com/index3465.html http://december.pinkzoo.com/index3466.html http://december.pinkzoo.com/index3467.html http://december.pinkzoo.com/index3468.html http://december.pinkzoo.com/index3469.html http://december.pinkzoo.com/index3470.html Posted by: rfgagaer on September 28, 2004 06:18 PM
Hi There, So I am trying to understand the UML you came up with. What is it that you are trying to say with that UML diagram? thanx joe Posted by: JC on October 6, 2004 11:45 PM
I'm currently documenting a high school registration system, so would you please help me on possible objects i can use and since i only have a short time before submission. Yours. Petrus Posted by: PETRUS on October 19, 2004 09:29 AM
Thanks, rather interesting idea Posted by: sergey on November 16, 2004 03:45 PM
hey plz can any1 tell me how i'm supposed to unjar the file given above file. plz reply asap. Posted by: sahiba on November 24, 2004 06:58 PM
i need your help...please sent to me sequence diagram for ATM machine I need particularly use case,class,sequence and acitivity diagram if anyone could plz send me the diagrams.. irza82@yahoo.com bujal967@yahoo.com Posted by: Bush on December 16, 2004 01:32 AM
Hey, slots casinos are great fun. Posted by: Slots on December 29, 2004 09:58 AM
Its true, slots is very fun to play. Posted by: online slots on December 29, 2004 09:59 AM
If anyone loves poker, PokerMagic is the best online poker site Posted by: poker on December 29, 2004 09:59 AM
I agree that the site is good, but cant people find better things to do. Posted by: casinos on December 29, 2004 10:00 AM
Very funny! I am L.M.A.O! Posted by: online poker on December 29, 2004 10:00 AM
Lose weight today Posted by: meridia on December 29, 2004 10:00 AM
Lose weight with phen Posted by: phentermine on December 29, 2004 10:01 AM
Nice site, great to be here Posted by: Diet pills on December 29, 2004 10:01 AM
respected sir, i am a third year engg. student , i want the sequence ,collaboration, usecase ,class diagrams for telephone exchange system in my mini project. so plz send me the diagrams as possible. thanking you. -vishal Posted by: vishal tatiya on March 28, 2005 06:58 AM
Hi- How do you add if...else notation to sequence diagrams? Michael Posted by: Michael K. on April 11, 2005 03:03 PM
plz post me uml diagram for bank and intranet for college Posted by: gitanjali on April 21, 2005 06:53 AM
Hello, i Need use case diagram for thsi problem. any one help to me. For a praxis with several different doctors a administration program is needed, which should satisfy the following: Each patient has a name, adress, date of birth and his own specific insurence (basic-data). The employees of the praxis can also be “customersEof the doctors. Every doctor is a specialist of a specific subject. The patient can visit several different doctors of the praxis. Every doctors-exaim has a date, a diagnose and ordered medicine (name, register-number, size of package and use-describtion). Of course a short-message is added to every doctors-exaim. The bill is calculated at the end of three months (quartarly). Several exaims have to be calculated together. The doctors-bill has a date, begin and end of doctors exaimination, sub-positions due to the exaim and the total of costs. Each position has a increasing number, single-title and the single-costs. The costs are a multiplication out of two factors, the exaim-factor and exaim-basic-costs. The exaim-factor depends on the type of the patients insurence. The following functional character is to be realized: ˇ insert / delete patients ˇ insert / delete from treatments ˇ sort output of all patients with linked treatments ˇ show bills for the current quarter ˇ chronologically sorted issue of all bills of a selected patient ˇ read and save all datas to an ASCII-file Question: a) Solve the problem with the methods and notations of object oriented analysis. b) Create an object-oriented relational database management system with Access. c) Create a running prototype in C++ or Java with a simple graphical user interface. Posted by: manoj on May 6, 2005 08:46 AM
hello plz anyone help me out in working with my assignment...in designing class diagram, sequence diagram and activity digram... Posted by: aravind on May 22, 2005 09:35 PM
i'm in a great trouble to complete my project based on class diagram of banking system. plz send class diagram. Thanks. Posted by: anindya on July 5, 2005 03:46 AM
Hello Iam a student of UG.I need differnt UML diagrams of an inventory management system(for procument purposes) of an institution and if possible a class diagram and use case diagram which involves the facilities officer,departments and the suppliers.I will be very thankful to you. Posted by: sampson adjokatse on July 14, 2005 06:48 AM
im a student of an institude..currently working in a project which is stuck with doing a sequence diagram..pls help me..i need a sequence diagram of title administrate membership of a rental system..pls send a sequence diagram for me to reference..thank you... Posted by: Mash on August 4, 2005 08:03 PM
i am a engineering student doing third year...as a small project i am working on a topic named as "e-seva"..its is basiaclly a learner project,based on UML...so i need to draw usecase diagrams and sequence diagrams..i am really confused,soo plzz help mee..plz help me in identifying the relationships,use cass ,actors and some more...hope u ill reply and post me the needed figure..send me as soon as possible,thank u... Posted by: sindhu on August 9, 2005 11:03 AM
i am a engineering student doing third year...as a small project i am working on a topic named as "e-seva"..its is basiaclly a learner project,based on UML...so i need to draw usecase diagrams and sequence diagrams..i am really confused,soo plzz help mee..plz help me in identifying the relationships,use cass ,actors and some more...hope u ill reply and post me the needed figure..send me as soon as possible,thank u... Posted by: sindhu on August 9, 2005 11:04 AM
hi! im looking for airline reservation class diagram, interaction, use cases, state chart, activity diagram, and if it possible all UML diagrams, please help im in need, it urgent, i need to submit atleast a week. thanks in advance Posted by: abubakar on August 24, 2005 04:03 AM