我正在从事的一个项目使用流端口来建模类之间的数据流。我们现在开始使用活动图和状态图来建模动态行为,并正在寻找一种方法来表示活动图中使用的数据已经在特定端口上接收到。基本上,我们希望在流端口和活动参数节点之间创建一个连接器。
我认为用端口对数据流进行建模是很常见的,特别是在系统工程中,应该有方法将数据链接到活动。我可以想出两种方法:
ReadStructuralFeatureAction
获取值CallOperation
调用的类中。CallOperation
操作调用的操作第一种选择是可以的,但我们的建模工具Rhapsody8.1似乎不支持ReadStructuralFeatureAction
。另外两种方法的缺点是,在模型中的端口和活动之间没有直接的连接,而且在视觉上不明显,所以我想有一个更好的选择。
我想知道是否有人知道实现这一目标的更好方法,例如使用SysML (1.3)。
发布于 2018-07-11 10:55:58
UML和SysML中静态视图和动态视图之间的联系在模型不可见的部分中是“隐藏的”。我想原因是UML的设计者想把它们分开。因此,没有图形或其他非常显式的连接。
相反,连接是非常自然的,所以您可以直接使用它。例如,状态图或活动图中对转换的保护、触发器或操作。这个ReadStructuralFeatureAction是通过直接使用静态元素来实现的。你可以直接告诉他们。因此,它们发生在表示状态转换或控制流的边缘旁边。另一种方法是使用接收操作,并将接收属性设置为事件或触发操作。通过使用Send操作,您可以在相同的结构元素或其他元素中触发事件。在Rhapsody中这样做时,您需要指定目标端口和目标部分。
在UML/SysML或Rhapsody中,当您提供Class/Block的接口时,您都不希望知道调用来自哪个端口或属性被更改。但是,您可以通过使用完整的端口来实现这一点,并实现预期的行为(这可能是独特的--否则就不需要知道源)。因此,每个完整端口都有一个状态图或活动,并将类的对象传递内部信号或事件。对于从操作中调用操作,有两种方法,一种是从操作(或进入或离开状态)调用的隐藏操作,另一种是通过使用调用操作而显示的操作。
这些连接的可见性在最近的UML或SysML版本中已经改变了。因此,当更新到稍后的Rhapsody版本时,这将发生很大的变化;尽管我确实建议更新到最新的Rhapsody版本,因为它带来了更好的sysML支持、更少的bug、一些新特性和更好的可用性。
https://stackoverflow.com/questions/51273910
复制相似问题