【问题标题】:Interface definiton and port typing with SysML/UML使用 SysML/UML 定义接口和端口类型
【发布时间】:2019-09-06 21:59:50
【问题描述】:

我想将服务描述为带有端口和接口的组件。通过描述应该清楚地知道提供了哪些功能以及如何使用它们。

在我的理解中,我可以用这个符号<name>:<type> 键入一个端口,其中类型可以由接口块指定?还是使用“棒棒糖”,其中接口类型由“棒棒糖”的名称指定?

现在,我想看看接口/端口使用什么应用程序或传输协议,以了解如何连接它。但我不知道这样做的最佳方法是什么。我想了两个办法。

首先:通过端口类型指定协议(此处为 TCP/IP),通过“棒棒糖”表示法指定接口(提供的信息)。

第二:将传输/应用协议指定为应用特定接口的基础接口。

我真的不知道这是否有意义,或者是否有更好的方式来描述它。请告诉我。

编辑:

根据 qwerty_so 的回答,我了解到从协议中泛化接口是错误的。但是要表示使用的协议,应该由端口类型指定吗?基于此,我对两个组件进行了另一种表示(这次是在 UML 中,我希望它不会引起任何混淆)。每个组件通过不同的端口提供相同的接口。基本上它与第一个符号相同,通过从棒棒糖到接口的realize 关系扩展。第一个组件使用基本的TCP/IP,第二个组件使用gRPC 协议来实现Interface1

two components with different port types and same interface

这是表示接口及其通过特定协议实现的更准确的方式吗?

realize 关系是否必要,因为接口名称不应该清楚吗?

【问题讨论】:

    标签: interface uml port protocols sysml


    【解决方案1】:

    TCP/IP 是一个协议。这就是用于端口的内容。从端口到接口绘制realize 关系。

    interface1 是软件接口。所以从棒棒糖向那个方向画一个realize 关系。

    你的最低设计是错误的,因为接口和协议是两个非常不同的东西。

    我总是想到一个端口和一个捆绑多个 (SW) 接口的插头。在 SysML 术语中,它还扩展到作为接口的电源(这对于纯软件工作者来说有点奇怪 ;-)。

    【讨论】:

    • 感谢您的回答。我编辑了这个问题,因为我仍然不太确定。 realize 关系真的有必要吗?
    • 您可以像以前一样键入它,而不是使用realize。但是,我首先想到的是“实现”端口上的协议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2020-03-01
    • 2012-11-06
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多