首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >面向多输入输出程序的UML活动图建模

面向多输入输出程序的UML活动图建模
EN

Software Engineering用户
提问于 2021-12-26 14:18:23
回答 1查看 387关注 0票数 3

我必须为一个简单的PLC (可编程逻辑控制器,也就是工业自动化控制器)程序创建一个概述文档(碰巧是在步骤7中编写的,但并不是很重要)。

程序结构简单。“活动”这一功能是一个接一个地运行的。每个活动读取本地内存的特定部分。我希望将这些内存部分表示为“输入”信号,因为其他函数可能/将写入内存,它不是“仅仅”内存,而是某种类型的数据传输。然后,将结果再次写入内存中,以便执行以下函数。它基本上是函数的输出信号。

我试图创建一个简单的UML活动图。为了在程序中表示这一点,我使用了"接受事件动作“和"发送信号动作”。如下图所示。我想使用活动图,因为我还可以用相同类型的图来建模内部函数。

但是,下面的箭头(从活动到活动)和从左到右的箭头(数据处理输出)似乎有点混乱,应该如何处理多个读数?(例如,从同一个源读取函数1和2)。

您是否有一种建议的方案来对这种行为或想法进行建模以“清洁”图表?

你好,阿里

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2021-12-27 10:12:56

每当您有多个传入或传出流时,您的关系图就会出现一些隐藏的并发问题。例如,功能1将同时发送信号并传递到功能2。但功能2有2个传入流,只有当两者都呈现一个令牌时才能启动:信号被接收并在控制处通过。这意味着如果函数1没有什么可发送的。您的活动将被困住,等待功能2的启动。

这并不完全符合您的投入/输出导向的顺序叙述。如果函数1向函数2提供数据,那么在AD中它是如何实现的并不重要,但是语义很重要。因此,你可以考虑:

  • 在函数之间使用对象流来实现功能。完全支持对象的缓冲。
  • 使用中央缓冲器可以突出显示内存存储中有一个事实,正如您在“自然预言”中所描述的那样。然后,您可以显示一个可选的传入信号,也可以输入中央存储,但是来自AD范围之外的外部进程/程序/活动。
票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/435570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档