Here's use case diagram:
@startuml
skinparam defaultTextAlignment center
left to right direction
skinparam packageStyle rectangle
actor "app" as a1
actor "db1" as a2
actor "db2" as a3
actor "db3" as a4
actor "db4" as a5
actor "db" as a6
actor "app1" as a7
actor "app2" as a8
actor "app3" as a9
rectangle "System"{
(f1) as uc1
(f2) as uc2
(f3) as uc3
(f4) as uc4
(f5) as uc5
(f6) as uc6
(f7) as uc7
(f8) as uc8
(f) as uc9
(f9) as uc10
(f10) as uc11
(f11) as uc12
(f12) as uc13
a1 --> uc1
a1 --> uc2
a1 --> uc3
uc2 -[hidden]> uc1
uc3 -[hidden]> uc2
uc2 <. uc3 : include
uc1 <. uc2 : include
a2 --> uc5
a3 --> uc6
a4 --> uc7
a5 --> uc8
uc6 -[hidden]> uc5
uc7 -[hidden]> uc6
uc6 <. uc7 : include
uc5 <. uc6 : include
a6 <|-- a2
a6 <|-- a3
a6 <|-- a4
a6 <|-- a5
uc1 --|> uc4
uc2 --|> uc4
uc3 --|> uc4
uc5 --|> uc9
uc6 --|> uc9
uc7 --|> uc9
uc8 --|> uc9
uc9 -[hidden]> uc4
uc4 -|> uc9
uc10 -[hidden]> uc9
uc10 -|> uc9
uc12 -[hidden]> uc11
uc13 -[hidden]> uc12
uc10 <|-- uc11
uc10 <|-- uc12
'Problem strings
uc11 <-- a7
uc12 <-- a8
uc13 -[hidden]> uc12
uc13 <-- a9
}
@enduml
So, the problem is:
It is important for use case f1, f2, f3 to be placed in following order (vertical): f1 on top, then f2, then f3.
Everything works fine until i add connection with app1 or app2 (a7 or a8). After connection (one of these two) is added, vertical order of f1 - f3 crashes.
What's the reason for such strange layout?