umldiagramplantumlstate-diagramcomponent-diagram

Positioning blocks of PlantUML diagram


I'm trying to repeat a diagram using PlantUML. The diagram is like this:

enter image description here

I got stuck at trying to add more connections and make them look decent.

I started with object digram and came to something like this link to online diagram.

As soon as I start adding more connections, blocks break into chaos.

Then I tried component diagram. I started from this diagram and got to something like this in trying to add one more blocks and connections: link to online diagram.

The result is not satisfactory. I would appreciate any help in trying to add one more block to the diagram.


Solution

  • I always try to keep it simple, using --> (vertical) layout as much as possible. That is the optimal strategy for the GraphViz algorithm, which is the basis of PlantUML.

    The result is different from your original, but I hope you find it readable:

    @startuml
    'hide empty description
    '!pragma layout elk
    skinparam rectangleBorderThickness 1
    skinparam defaultTextAlignment center
    skinparam lifelineStrategy solid
    skinparam monochrome true
    skinparam style strictuml
    hide empty members
    skinparam Linetype ortho
    
    rectangle "Базовые модули" as base {
    
    class "Базовые объекты" as baseobjects
    class "Делопроизводство\n4.5" as takeoffice
    class "Управление\nпроцессами" as workflow
    class "Windows-клиент" as windowsclient
    
    class "Управление\nдокументами" as documentmanagement
    class "Конструктор\nсогласований" as approvaldesigner
    
    class "Платформа" as platform
    class "Служба\n фоновых операций" as worker
    
    }
    
    platform <-- baseobjects
    platform <-- workflow
    platform <-- takeoffice
    platform <-- windowsclient
    platform <-- documentmanagement
    platform <-- approvaldesigner
    
    windowsclient -up-> approvaldesigner
    windowsclient -up-> documentmanagement
    windowsclient -up-> baseobjects
    windowsclient -up-> takeoffice
    windowsclient -up-> workflow
    
    worker <-- approvaldesigner
    worker <-- baseobjects
    @enduml
    

    enter image description here