umldiagrams

How to alternative way (!pic2plot) to generate sequence diagrams from some declarative textual form?


There is pic2plot component from UMLGraph to draw sequence diagrams (sequence.pic).

Input format is like:

.PS
copy "/usr/local/lib/sequence.pic"; 

object(N0,"0"); 
object(N1,"1"); 

step();

message(N0,N0,"doSomething()"); 
message(N0,N1,"callFunction()");

step();

.PE

The main disadvantage is that it is based on pic2plot which looks abandoned, fails to handle UTF-8 and have hard-to-find documentation (even man plotutils does not have a full set of useful man pages).

Is there alternatives draw sequence diagrams from simple text-based input without GUI?

Note: Now using this hack:

cat mpiseq.pic | u8h | pic2plot -T svg | xml2 | perl -pe 's!/svg/\@height=8in!/svg/\@height=32in!; s!/svg/\@viewBox=0 0 1 1!/svg/\@viewBox=0 -0.2 1 3.8!' | 2xml | h8u | svg

u8h/h8u masks/unmasks UTF-8 characters as sequence of hex digits (protected by signatures)


Solution

  • I've tried sdedit, which couldn't even process its own example!

    Among the myriad of tools, plantuml stands out in my book: can handle pretty complex features with crisp clear syntax.

    @startuml
    Alice->Bob : hello
    note left: this is a first note
    
    Bob->Alice : ok
    note right: this is another note
    
    Bob->Bob : I am thinking
    note left
        a note
        can also be defined
        on several lines
    end note
    @enduml