Represent/illustrate UML 中两个独立程序之间的通信?
Represent/illustrate communication between two separate programs in UML?
假设我有一个 Android 应用程序,它通过蓝牙套接字与桌面程序通信。
Android 上的伪代码:
class sendToDesktop{
sendMsg(String msg){
socket.send(uuid, msg)
}
}
在桌面上:
class Read{
getMsg(){
return socket.read(uuid, msg)
}
}
那么我如何在 UML 中表示这些独立程序之间的关系呢?我可以使用组件图,还是它们只是为了说明单个程序的单独组件?
这取决于抽象级别。您可以使用:
- 复合结构图(如果要注意具体是什么实例调用了其他应用的不同服务),
- 也许是时序图,
- 时序图(如果你对相互调用的时序感兴趣),
- 交互概览图(隐藏消息和时间线),
- Activity图(用于分析业务规则),
- 通信图(用于命名翻译信息及其地址),
- 甚至是状态图或用例图。
尝试从下面开始,一直到您将获得一张 A4 尺寸图表的级别。
如果必须使用 UML,那么您可能需要考虑使用如图 here 所示的通信图。虽然通信图非常适合单个应用程序的元素,但您可以调整该图以显示从一个应用程序到另一个应用程序的通信。
如果您不受 UML 的束缚,我发现数据流图非常有助于展示从一种信息 source/consumer 流向另一种信息的信息(通过中间过程——在您的如果中间过程可能是您包含蓝牙逻辑的方法)。
正如@Gangnus 指出的那样,有很多选择,none 是唯一的选择。
例如,这个 websequencediagrams.com script 描述了您的场景:
所需的详细程度(中级 类、方法名称、参数列表...)取决于阅读它的人和原因。
例如,此 websequencediagrams.com script 还显示了额外的内部工作人员 类:
另请参阅:
回答原始问题:不,组件图不限于单个程序的各个部分,所以是的,您可以使用它们。
UML 图不适合任何特定的抽象级别或工作范围。如果您的 "system under consideration" 包含两个程序,那么这就是您应该在图表中显示的内容。
假设我有一个 Android 应用程序,它通过蓝牙套接字与桌面程序通信。
Android 上的伪代码:
class sendToDesktop{
sendMsg(String msg){
socket.send(uuid, msg)
}
}
在桌面上:
class Read{
getMsg(){
return socket.read(uuid, msg)
}
}
那么我如何在 UML 中表示这些独立程序之间的关系呢?我可以使用组件图,还是它们只是为了说明单个程序的单独组件?
这取决于抽象级别。您可以使用:
- 复合结构图(如果要注意具体是什么实例调用了其他应用的不同服务),
- 也许是时序图,
- 时序图(如果你对相互调用的时序感兴趣),
- 交互概览图(隐藏消息和时间线),
- Activity图(用于分析业务规则),
- 通信图(用于命名翻译信息及其地址),
- 甚至是状态图或用例图。
尝试从下面开始,一直到您将获得一张 A4 尺寸图表的级别。
如果必须使用 UML,那么您可能需要考虑使用如图 here 所示的通信图。虽然通信图非常适合单个应用程序的元素,但您可以调整该图以显示从一个应用程序到另一个应用程序的通信。
如果您不受 UML 的束缚,我发现数据流图非常有助于展示从一种信息 source/consumer 流向另一种信息的信息(通过中间过程——在您的如果中间过程可能是您包含蓝牙逻辑的方法)。
正如@Gangnus 指出的那样,有很多选择,none 是唯一的选择。
例如,这个 websequencediagrams.com script 描述了您的场景:
所需的详细程度(中级 类、方法名称、参数列表...)取决于阅读它的人和原因。
例如,此 websequencediagrams.com script 还显示了额外的内部工作人员 类:
另请参阅:
回答原始问题:不,组件图不限于单个程序的各个部分,所以是的,您可以使用它们。
UML 图不适合任何特定的抽象级别或工作范围。如果您的 "system under consideration" 包含两个程序,那么这就是您应该在图表中显示的内容。