{"id":348,"date":"2015-01-27T08:10:36","date_gmt":"2015-01-27T08:10:36","guid":{"rendered":"http:\/\/adriangrigoras.com\/blog\/?p=348"},"modified":"2015-03-05T11:19:26","modified_gmt":"2015-03-05T11:19:26","slug":"plantuml","status":"publish","type":"post","link":"https:\/\/adriangrigoras.com\/blog\/plantuml\/","title":{"rendered":"Create sequence diagrams with PlantUML"},"content":{"rendered":"<p>Sometimes ago, I found an interesting Eclipse plugin called PlantUML. It&#8217;s very useful when you want to draw UML sequence diagrams.\u00a0With a sequence diagram it&#8217;s very easy to represent interactions and processes between the actors.<\/p>\n<p>Bellow is an example of PlantUML source text:<\/p>\n<pre>@startuml\r\ntitle Sequence diagram example\r\nactor User\r\nparticipant SystemA\r\nbox \"Bank Statement App\" #LightBlue\r\nparticipant Middleware\r\nparticipant SystemB\r\nend box\r\n== Flow 1 - Sync call==\r\nUser -&gt; SystemA: view details\r\nnote right\r\nOrder details, Payment history\r\nend note\r\nSystemA -&gt; Middleware: getCustomerInfo\r\nMiddleware -&gt; SystemA: return customer details\r\nSystemA -&gt; Middleware: getOrderDetails\r\nMiddleware -&gt; SystemA: return order details\r\nSystemA -&gt; User: present info\r\n== Place order - async ==\r\nUser -&gt; SystemA: placeOrder\r\nSystemA -&gt; Middleware: placeOrder\r\nMiddleware -&gt; Middleware: insert in queue\r\nMiddleware -&gt; SystemA: ack\r\nSystemA -&gt; User: thank you page\r\ngroup Async place order\r\nMiddleware -&gt;SystemB: placeOrder\r\nSystemB -&gt; SystemB: verifyeligibility\r\nSystemB -&gt; SystemB: fulfill order\r\nSystemB -&gt; Middleware: status\r\nMiddleware -&gt; SystemA: status\r\nend\r\n@enduml<\/pre>\n<p>An the result is..<\/p>\n<p><a href=\"http:\/\/adriangrigoras.com\/blog\/wp-content\/uploads\/2015\/01\/plantuml_example.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-349\" src=\"http:\/\/adriangrigoras.com\/blog\/wp-content\/uploads\/2015\/01\/plantuml_example.png\" alt=\"plantuml_example\" width=\"513\" height=\"882\" srcset=\"https:\/\/adriangrigoras.com\/blog\/wp-content\/uploads\/2015\/01\/plantuml_example.png 513w, https:\/\/adriangrigoras.com\/blog\/wp-content\/uploads\/2015\/01\/plantuml_example-174x300.png 174w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>You can find more examples and information on the PlantUML official page:\u00a0<a href=\"http:\/\/plantuml.sourceforge.net\/\" target=\"_blank\">http:\/\/plantuml.sourceforge.net\/<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes ago, I found an interesting Eclipse plugin called PlantUML. It&#8217;s very useful when you want to draw UML sequence diagrams.\u00a0With a sequence diagram it&#8217;s very easy to represent interactions and processes between the actors. Bellow is an example of PlantUML source text: @startuml title Sequence diagram example actor User participant SystemA box &#8220;Bank Statement\u2026 <span class=\"read-more\"><a href=\"https:\/\/adriangrigoras.com\/blog\/plantuml\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"class_list":["post-348","post","type-post","status-publish","format-standard","hentry","category-architecture"],"_links":{"self":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/comments?post=348"}],"version-history":[{"count":9,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/348\/revisions"}],"predecessor-version":[{"id":586,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/348\/revisions\/586"}],"wp:attachment":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/media?parent=348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/categories?post=348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/tags?post=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}