如何在PlantUML序列图中在另一个参与者内部绘制参与者?

如何在PlantUML序列图中在另一个参与者内部绘制参与者?,uml,sequence-diagram,plantuml,Uml,Sequence Diagram,Plantuml,合流+植物, @startuml Alice->Bob:身份验证请求 Bob-->Alice:身份验证响应 Alice->Bob:另一个身份验证请求 Alice我认为使用PlantUML不可能在其他参与者内部绘制参与者 但更重要的是:它不符合UML。UML序列图中的参与者是原子的,没有“子参与者” 但我有一种强烈的感觉,你可以通过一个叫“克里斯”的单独参与者来表达你的想法,这个参与者被“爱丽丝”调用。您可以使用PlantUML提供的不同参与者声明来演示他们的角色(例如,您可以使“Alice”成

合流+植物,

@startuml
Alice->Bob:身份验证请求
Bob-->Alice:身份验证响应
Alice->Bob:另一个身份验证请求

Alice我认为使用PlantUML不可能在其他参与者内部绘制参与者

但更重要的是:它不符合UML。UML序列图中的参与者是原子的,没有“子参与者”

但我有一种强烈的感觉,你可以通过一个叫“克里斯”的单独参与者来表达你的想法,这个参与者被“爱丽丝”调用。您可以使用PlantUML提供的不同参与者声明来演示他们的角色(例如,您可以使“Alice”成为控制器,“Chris”成为接口,如果它们在您的系统中是他们的角色的话),如果您的图表受众理解Chris在做什么很重要(即,用白盒方法查看Alice)。但是,如果您的听众不需要了解Alice有执行部分活动的子组件(即,对Alice的黑盒方法),那么我认为根本不需要提及Chris


因此,如果您必须创建一个UML图表,上面的内容可能会对您有所帮助。如果您不必将您的图表称为“UML序列图”,那么您可以绘制任何您想要的东西(除了使用特定于语言的建模工具,如PlantUML)。

我认为使用PlantUML不可能在其他参与者内部绘制参与者

但更重要的是:它不符合UML。UML序列图中的参与者是原子的,没有“子参与者”

但我有一种强烈的感觉,你可以通过一个叫“克里斯”的单独参与者来表达你的想法,这个参与者被“爱丽丝”调用。您可以使用PlantUML提供的不同参与者声明来演示他们的角色(例如,您可以使“Alice”成为控制器,“Chris”成为接口,如果它们在您的系统中是他们的角色的话),如果您的图表受众理解Chris在做什么很重要(即,用白盒方法查看Alice)。但是,如果您的听众不需要了解Alice有执行部分活动的子组件(即,对Alice的黑盒方法),那么我认为根本不需要提及Chris

因此,如果您必须创建一个UML图表,上面的内容可能会对您有所帮助。如果您不必将您的图表称为“UML序列图”,那么您可以绘制任何您想要的东西(除了使用特定于语言的建模工具,如PlantUML)。

使用box

这是文档中的示例

它适用于我的简单案例。

使用框

这是文档中的示例


它适用于我的简单案例。

你说的“如何在爱丽丝的盒子里画克里斯”是什么意思?也许一个图像可能会有帮助现在有一个矩形是给Alice的,我想在其中有另一个矩形,有文本“Chris”,你能用散文的形式解释一下你想建立什么样的业务或系统交互模型吗?你可以发布一个你试图实现的手动绘图。这样你就完全不清楚你想要什么。盒子里面有很多种解释。你说的“如何在爱丽丝的盒子里画克里斯”是什么意思?也许一个图像可能会有帮助现在有一个矩形是给Alice的,我想在其中有另一个矩形,有文本“Chris”,你能用散文的形式解释一下你想建立什么样的业务或系统交互模型吗?你可以发布一个你试图实现的手动绘图。这样你就完全不清楚你想要什么。框内的内容可以用多种方式解释。我认为您应该强调括号中关于不符合UML的陈述。OP应该使用绘图工具,而不是UML工具,如果他想这样做的话。这一点很好!我稍微修改了一下课文。如果您认为不清楚,请随意添加您自己的编辑。这样看起来可以:-)我认为您应该强调括号中关于不符合UML的声明。OP应该使用绘图工具,而不是UML工具,如果他想这样做的话。这一点很好!我稍微修改了一下课文。如果您认为不清楚,请随意添加您自己的编辑。这样看起来可以:-)
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml
@startuml

box "Internal Service" #LightBlue
    participant Bob
    participant Alice
end box
participant Other

Bob -> Alice : hello
Alice -> Other : hello

@enduml