如何表示并发系统中相同 class 实例之间的关系
How can I represent relationships between instances of the same class in a concurrent system
我做了一个并发系统,它有一个关键部分,涉及对 TXT 文件的读写访问。
首先,拍卖师class 创建一个 TXT 文件并将数字 50 写入其中。 Auctioneer 然后允许下一个节点(Bidder class 的三个实例之一)打开文件并更改当前出价。出价人 class 然后允许下一个节点,另一个出价人出价,然后另一个出价人,然后那个出价人允许拍卖师查看文件。
我允许节点轮流使用服务器套接字。每个节点等待使用 ServerSocket.accept() method, and allows the next node to enter its critical section by creating a Socket object 和 ne next nde 正在侦听的套接字进行访问。
这些节点中的每一个 运行 独立地处于单独的 java 环境中并且只与服务器套接字通信。
环中的每个节点都依赖于前一个节点,因为为了让该节点访问资源,前一个节点需要将令牌传递给当前节点。我不确定如何以符合 UML 的方式表示这种关系。
据我了解,class 图表不应包含同一 class 的多个实例,例如下面有 3 个投标人的示例。
这是表示我所描述的关系的正确方式吗?如果不是,哪种方式符合 better/UML 标准?
Class 图,顾名思义,代表 class 个对象而不是单个对象,即这些 class 个对象的实例。此外,class 图是结构图:它不说明对象如何交互或等待另一个对象,而是说明 class 这些对象如何关联。
因此,在旅游案例中,class 图将代表一个投标人 class。要用实例及其关联方式表示具体示例,您可以考虑使用对象图。在那里你可以很好地代表相同 class.
的不同实例
但是,如果您对 classes 之间的交互感兴趣(例如它们交换的令牌),您最好考虑一个交互图,例如序列图。
我做了一个并发系统,它有一个关键部分,涉及对 TXT 文件的读写访问。
首先,拍卖师class 创建一个 TXT 文件并将数字 50 写入其中。 Auctioneer 然后允许下一个节点(Bidder class 的三个实例之一)打开文件并更改当前出价。出价人 class 然后允许下一个节点,另一个出价人出价,然后另一个出价人,然后那个出价人允许拍卖师查看文件。 我允许节点轮流使用服务器套接字。每个节点等待使用 ServerSocket.accept() method, and allows the next node to enter its critical section by creating a Socket object 和 ne next nde 正在侦听的套接字进行访问。
这些节点中的每一个 运行 独立地处于单独的 java 环境中并且只与服务器套接字通信。
环中的每个节点都依赖于前一个节点,因为为了让该节点访问资源,前一个节点需要将令牌传递给当前节点。我不确定如何以符合 UML 的方式表示这种关系。
据我了解,class 图表不应包含同一 class 的多个实例,例如下面有 3 个投标人的示例。
这是表示我所描述的关系的正确方式吗?如果不是,哪种方式符合 better/UML 标准?
Class 图,顾名思义,代表 class 个对象而不是单个对象,即这些 class 个对象的实例。此外,class 图是结构图:它不说明对象如何交互或等待另一个对象,而是说明 class 这些对象如何关联。
因此,在旅游案例中,class 图将代表一个投标人 class。要用实例及其关联方式表示具体示例,您可以考虑使用对象图。在那里你可以很好地代表相同 class.
的不同实例但是,如果您对 classes 之间的交互感兴趣(例如它们交换的令牌),您最好考虑一个交互图,例如序列图。