J'ai créé ce diagramme en utilisant le code suivant. Mais comme vous pouvez le voir, les lignes allant de (Annuler la commande) et (Passer la commande) à (Éditeur) décident de prendre un chemin terriblement arrondi pour les obtenir, au lieu d'aller tout droit vers la droite puis de descendre vers l'éditeur. J'ai essayé d'utiliser des commandes de direction manuelles comme "-down" mais aucune d'entre elles ne semblait aider. Est-ce que quelqu'un sait comment réparer ceci?
Et voici mon code. J'apprécie toute aide. Je vous remercie.
@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
Il existe quelques astuces que vous pouvez essayer, répertoriées ci-dessous. La mise en page elle-même est effectuée par GraphViz (dot layouting iirc), et GraphViz le fait simplement parfois. La disposition des graphiques est un problème NP-complet, donc les algorithmes prennent généralement des raccourcis difficiles.
Solutions de contournement typiques que j'ai vues ou utilisées:
a -[hidden]- b
a --- b
(plus de tirets, ligne plus longue)a -left- b
)a -- b
→ b -- a
)Donc, si vous voulez vraiment avoir une belle mise en page, vous devrez mettre un peu d'huile de coude, mais gardez à l'esprit que la mise en page sera toujours fragile - si vous ajoutez/supprimez des éléments, vous devrez peut-être la refaire.
Essayez les options suggérées par @Peter Uhnak avec le type de ligne:
skinparam linetype polyline
skinparam linetype ortho
Donnez de meilleures options pour les lignes. Utiliser ortho --- (ici )
tu auras -
Si quelqu'un veut connaître une réponse plus spécifique, mettre probablement beaucoup plus inutile, voici ce que j'ai fait au final.
order -down- publisher
publisher -[hidden]up- order
donc pour une raison quelconque, l'ajout de la commande dupliquée dans les deux sens le résout.