web-dev-qa-db-ja.com

PlantUMLクラス図でブロックを整列させる方法は?

私はPlantUMLを使用して単純なクラス図を作成していますが、ツールは素晴らしいですが、クラスをパッケージに配置するか、Alice -left- * Bobのような関係を使用する以外は、クラスを互いに整列させる方法を見つけることができませんでした。私が必要なのは次のようなものです:

@startuml  
class Bob  
class Alice  
class Dan  
**Dan aligned Alice: horizontally**  
'or using a grid?  
**Bob at grid (2, 3)**  
@enduml

方法はありますか?

26
Yuriy Kulikov

を使って -[hidden]関係は仕事をすることができます:

@startuml  
class Bob  
class Alice  
class Dan  
class Foo
class Bar
class Foobar

Bob -[hidden] Alice
Bar -[hidden] Foobar
@enduml

http://www.plantuml.com/plantuml/png/Iyv9B2vMSCfFKb3WIWQp7NCoarFXF9V4F3ZRBJyVod9AB4A89G4vN20JTACpCbDIKlDY8MPm0LKXYK5K0W00

5
freezed

いいえ、それを行う方法はありません。申し訳ありません:( PlantUMLの背後にある考え方は、レイアウトのレンダリングについてあまり気にする必要がないということです。

実際、PlantUMLの初期のバージョンではクラスの整列に使用されていましたが、問題がありました。無関係なクラスが多数ある場合、ダイアグラムは非常に大きく、非常に薄くなる傾向がありました。したがって、パッチを追加してクラスを正方形に整理しました。

ダイアグラムにいくつのクラスが必要ですか?確かに、例えば、組織化パッチを無効にすることは可能でしょう。 3〜5クラス。 フォーラム に提案を投稿して、他のユーザーの意見を見ることができます。

12
PlantUML

アップデート2019.08.08

Rotsiserのコメントから、行の長さの変更とTogetherキーワードを組み合わせることで、要素を整列させることができます

@startuml
class A
A ..> B
C ---> B
D ...> B
together {
    class E
    class F
    class G
}
E ----> B
@enduml

enter image description here


時代遅れ

「-」、「。」などの行の文字数を変更することにより、要素を揃えることができます。

@startuml
class A
A ..> B
C ---> B
D ...> B
E ----> B
F ----> B
G ----> B
@enduml

enter image description here

4
Yu Huang

よりクリーンなアプローチは、より論理的な隠しパッケージにそれらを配置することです。

@startuml

skinparam shadowing false
skinparam package<<Layout>> {
  borderColor Transparent
  backgroundColor Transparent
  fontColor Transparent
  stereotypeFontColor Transparent
}

package x <<Layout>>{ 
    class A
    class B
} 
A .. D
B .. C
C .. D

A1 .. D1
B1 .. C1
C1 .. D1

@end

enter image description here

3
Ajeet Ganga

これが解決策です。

ドキュメント: "矢印内に左、右、上、または下のキーワードを追加して、矢印の方向を変更することもできます:"

@startuml
foo -left-> dummyLeft 
foo -right-> dummyRight 
foo -up-> dummyUp 
foo -down-> dummyDown
@enduml

enter image description here

あなたの質問に:

@startuml
class Bob
class Alice
class Dan
Alice -left[hidden]-> Bob
Alice -right[hidden]-> Dan 
@enduml

enter image description here

それはまた役に立つかもしれません:

@startuml
class Bob
class Alice
class Dan
Bob -right-|> Alice
Alice -right-> Dan
interface Friend
Dan -up..> Friend
interface Person
Friend -left-> Person
interface Object
Person -down-> Object
interface Native
Object -right-> Native
@enduml

enter image description here

1
Dmitry Sokolyuk

hidden packageは必要ありません。togetherキーワードを使用してください:

together {
class A
class B
}
1
user11863067