I created this diagram using the following code. But as you can see, the lines going from (Cancel Order) and (Place Order) to (Publisher) decide to take a terribly rounded path to get their, instead of going straight to the right and then down to publisher. I tried using manual direction commands like "-down" but none of them seemed to help. Does anybody know how to fix this?
And here is my code. I appreciate any help. Thank you.
@startUML EBook Use Case Diagram left to right direction Actor Customer as customer Actor EBook as ebook Actor Publisher as publisher rectangle "Book Catalogue" { together { Actor "Book Database" as bookLog (Retrieve Information) as getBook customer -- getBook getBook -- ebook getBook -- bookLog (Update Catalogue) as updateCatalogue ebook -- updateCatalogue updateCatalogue -- bookLog } together { (Place Order) as order customer -- order order -- ebook order--publisher (Cancel Order) as cancelOrder customer -- cancelOrder cancelOrder -- ebook cancelOrder--publisher } } (Ship To EBook) as shipEBook shipEBook -- publisher (Ship To Customer) as shipCustomer customer -- shipCustomer ebook -- shipEBook shipCustomer -- ebook (Return to EBook) as returnCustomer (Returnto Publisher) as returnPublisher customer -- returnCustomer returnCustomer -- ebook ebook -- returnPublisher returnPublisher -- publisher @endUML
Try the options suggested by @Peter Uhnak along with linetype :
skinparam linetype polyline skinparam linetype ortho
Give better options for lines. Using ortho - (Here)
you will get -
There are some tricks that you can try, listed below. The layouting itself is performed by GraphViz (dot layouting iirc), and GraphViz simply does this sometimes. Graph layouting is a NP-complete problem, so algorithms usually take harsh shortcuts.
Typical workarounds that I've seen or used include:
a -[hidden]- b
a --- b
(more dashes, longer line)a -left- b
)a -- b
→ b -- a
)So if you really want to have a nice layout, you'll need to put some elbow grease in, but keep in mind that the layout will be still brittle -- if you add/remove items, you might need to redo it again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With