Uml 使用GraphViz创建复杂的包关系图

Uml 使用GraphViz创建复杂的包关系图,uml,graphviz,dot,package-diagram,Uml,Graphviz,Dot,Package Diagram,我想使用dot语言创建一个包图,类似于下面的包图。 我知道可以使用“集群”嵌套元素,但不确定是否可以在外包装的选项卡区域放置标签。 如果可能的话,请告诉我 不幸的是,选项卡形状(耳朵在左上角的形状)不支持在那里指定标签 如果你愿意牺牲它,你可以使用一个规则的矩形或记录形状 digraph diagram { compound=true; ranksep=1 node[shape=record] subgraph cluster_all { lab

我想使用dot语言创建一个包图,类似于下面的包图。 我知道可以使用“集群”嵌套元素,但不确定是否可以在外包装的选项卡区域放置标签。 如果可能的话,请告诉我


不幸的是,选项卡形状(耳朵在左上角的形状)不支持在那里指定标签

如果你愿意牺牲它,你可以使用一个规则的矩形或记录形状

digraph diagram {
    compound=true;
    ranksep=1
    node[shape=record]

    subgraph cluster_all {
        label="Multi-Layered Application"
        Users [shape=tab]

        subgraph cluster_presentation {
            label="Presentation Layer"
            "User Interface" [shape=tab]
            "Presentation Logic" [shape=tab]
        }

        Users -> "User Interface" [lhead=cluster_presentation]

        subgraph cluster_business {
            label="Business Layer"
            node[shape=tab]
            "Application Facade"
        }

        "User Interface" -> "Application Facade" [lhead=cluster_business,ltail=cluster_presentation,style=dashed]
    }

}

但正如您所看到的,graphviz并不完全适合于此,因为您需要进行大量的低级处理

或者,如果目标是用文本描述图表,我强烈建议使用更合理的语法来完成这类任务

@startuml
package "<<model>> Multi-Layered Application <<model>>" as app {
  package Users { }

  package "Presentation Layer" as presentation {
    package "User Interface" { }
    package "Presentation Logic" { }
  }

  Users ..> presentation

  package "Business Layer" {
    package "Application Facade" { }
  }

  presentation ..> "Business Layer"

}
@enduml
@startuml
将“多层应用程序”打包为应用程序{
包用户{}
将“表示层”打包为表示{
包“用户界面”{}
包“表示逻辑”{}
}
用户..>演示文稿
包“业务层”{
包“应用程序外观”{}
}
演示文稿..>“业务层”
}
@enduml

谢谢你的回答,我会选择无耳方法,因为plantuml不是我的选择。