## page was renamed from ParserMarket/UmlSqeuence/Examples ## page was renamed from ParserMarket/UmlSqeuence/ReleaseNotes = Sequence Diagram Overview = == Defining a Simple Sequence Diagram == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/seq-simple.html Alternate syntax: {{{ S : s:Switch P : p:Pump S -> P run() S -> P stop() }}} {{attachment:autogenerated--umlsequence-parser--a388db3adb63100e45b64a26037f68e1046fe607.png}} == An Improved Sequence Diagram == Original syntax and explanations: http://www.umlgraph.org/doc/gui-db.html Alternate syntax: {{{ S : s:Switch P : p:Pump S+ P+ S -> P run() S -> P stop() }}} {{attachment:autogenerated--umlsequence-parser--82bef9fe83963c9e02726434a3a9265ddbd80cb7.png}} == Creating and Destroying Objects == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/seq-cd.html Alternate syntax: {{{ S : s:Switch P : p:Pump F : S+ P+ S -> P run() P :> F+ f:Flow S -> P stop() P #> F }}} {{attachment:autogenerated--umlsequence-parser--fef83d1787068a213473de2c31488cf813ac8732.png}} = Sequence Diagram Examples = == Sequence Diagram Example: Nested Activation and Complex Interactions == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/uml-appa.html Alternate syntax: {{{ E : # External Messages T : t:thread O : :Toolkit P : E -> T+ a1:run(3) : T -> O+ run() : O >callbackLoop() O+ :> P p:Peer O- => P result=handleExpose() O #> P T- O- }}} {{attachment:autogenerated--umlsequence-parser--52b18901f9137400c517c6ac600aa0fda92d9b26.png}} == Sequence Diagram Example: Concurrent Processes and Activations == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/dist-52.html Alternate syntax: {{{ boxwid = 1.3; E : #External actor T : TC : TC1 : TC2 : E :> T+ a:Transaction T- ?:> TC+ a:TransCoord TC ?:> TC1+ a1:TransCheck TC ?:> TC2+ a2:TransCheck TC <-? TC1 ok : TC >all done ? : TC- TC1~ : TC+ <-? TC2 ok : TC >all done ? TC2~ T+ <-? TC- beValid }}} {{attachment:autogenerated--umlsequence-parser--c8586df489650722ba4cf6b197479bb40d78cb26.png}} == Sequence Diagram Example: Create and Destroy == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/uml-182.html Alternate syntax: {{{ boxwid = 1.1; C : c:Client T : #:Transaction P : p:ODBCProxy C+ C :> T Transaction {{Transient}} C -> T+ setActions (a,d,o) T -> P! setValues (d,3.4) T -> P! setValues (a,"CO") C <= T- committed C- #> T }}} {{attachment:autogenerated--umlsequence-parser--41a75b73a13e7a7e82122c06fb58e919b8454551.png}} == Sequence Diagram Example: Lifeline Constraints == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/uml-184.html Alternate syntax: {{{ S : s:Caller W : :Switch C : #c:Convers R : r:Caller W+ S+ ?-> W liftReceiver S <- W setDialTone() S ?-> W *dialDigit(d) W {{dialing.executionTime < 30s}} W >routeCalls(s,n) W :> C+ c:Convers C -> R+ ring() C <-? R liftReceiver W <- C connect(r,s) S <- W connect(r) W -> R <(> connect(s) }}} {{attachment:autogenerated--umlsequence-parser--74226554bc5a76c04fd19d189bb8f3e7ca6b5475.png}} == Sequence Diagram Example: External Actor == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/uml-71.html Alternate syntax: {{{ A * #Actor T : :OTaker F : :OFulfill A -> T submitOrder T -> F placeOrder A <- F acknowledgeOrder }}} {{attachment:autogenerated--umlsequence-parser--94dda251fe7d87fe6b74fbafa1631901ae0ecf65.png}} == Sequence Diagram Example: A DNS Query == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/dns.html Alternate syntax: {{{ boxwid = 1.3; WB : :Web Bowser WK : :Workstation Kernel SK : :Server Kernel DS : :DNS Server WB+ WK+ SK+ DS+ SK <- DS- select WB -> WK socket WB -> WK connect WB -> WK sendto WK -> WK send packet WK -> SK DNS A query WB- -> WK recvfrom SK -> SK receive packet SK => DS+ select returns SK <- DS recvfrom SK <- DS sendto SK -> SK send packet WK <- SK DNS A reply WK -> WK receive packet WB+ <= WK recvfrom returns WB- -> WK close WB# WK# SK# DS# }}} {{attachment:autogenerated--umlsequence-parser--574d1b99fdd372409e227dd884f99a83907e1cb9.png}} == Sequence Diagram Example: A Comments and Frames == Original syntax and explanations: http://www.spinellis.gr/sw/umlgraph/doc/gui-db.html Alternate syntax: {{{ A * #Actor G : g:GUI SPACER : D : #db:DB G+ G :> D db:DB D! D //[C1,down 1 right .25] waiting for \n condition \n dbMailbox A ?-> G openBrowser G ?-> D+ query() G <-? D- result D //[C1] A ?-> G scroll G ?-> D+ query() G <-? D- result D //[C1] A ?-> G Exit : Frame [ G OnExit G- ?-> D+ shutdown() G //[,down .2 right .25] wait for cond. dbShutdown : D // all queries preceeding the \n\ shutdown in the mailbox \n\ are answered already. \n\ DbQuery-Objects can \n\ be destroyed G+ <-? D- done G #> D : D ] Frame : G- }}} {{attachment:autogenerated--umlsequence-parser--d4c1286c3581f1219ea0becea5f60406db40a03b.png}}