Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 如何在活动图中为循环使用扩展区域?_Uml_Modeling_Enterprise Architect_Activity Diagram - Fatal编程技术网

Uml 如何在活动图中为循环使用扩展区域?

Uml 如何在活动图中为循环使用扩展区域?,uml,modeling,enterprise-architect,activity-diagram,Uml,Modeling,Enterprise Architect,Activity Diagram,我在设计一个合适的UML活动图时遇到了问题 我见过类似的问题和可能的答案: 即使有了这些答案,我仍有疑问,我自己的答案与UML定义不符 问题概述:循环每个文件夹中的文件夹和文件,根据其名称对每个文件夹执行操作,并根据其名称对每个文件执行操作。我遇到的主要问题是我是否正确使用了展开区域 许多资料都告诉我们,扩展区域必须有一个输入集合和一个输出集合。但我不一定有一个输出集合 在进入ActivityFinal之前,是否自动假定该区域将迭代所有项目,直到没有项目剩下 以下是我所做工作的企业架构师屏幕截

我在设计一个合适的UML活动图时遇到了问题

我见过类似的问题和可能的答案:

即使有了这些答案,我仍有疑问,我自己的答案与UML定义不符

问题概述:循环每个文件夹中的文件夹和文件,根据其名称对每个文件夹执行操作,并根据其名称对每个文件执行操作。我遇到的主要问题是我是否正确使用了展开区域

许多资料都告诉我们,扩展区域必须有一个输入集合和一个输出集合。但我不一定有一个输出集合

在进入ActivityFinal之前,是否自动假定该区域将迭代所有项目,直到没有项目剩下

以下是我所做工作的企业架构师屏幕截图:

根据您的回答,这只是您正在操作的对象


您可以将该对象放在扩展区域之外的全局上下文中。输入/输出参数保持不变。它们是程序参数的类比。如果您摆弄外部(全局)对象,您的返回值将是一些空集合(可能还有您处理外部对象的一些信息)。

首先,您的扩展节点与控制流连接,或者您的操作与对象流连接,这两者都是不可能的(太糟糕了,EA没有强制执行此规则)。这意味着您需要在初始节点之后执行一个操作,该操作为您提供集合。此外,您正在活动图中使用活动。与流行的观点(以及EA)相反,这是不允许的。您应该使用操作(可能是调用行为或调用活动的操作,但这取决于您)

我不知道您试图建立什么样的模型。但是,以下是我对有效使用扩展区域的建议: 第一个扩展节点为目录中的每个文件夹创建一个对象令牌。第二个扩展节点为文件夹中的每个文件创建一个对象令牌。如果您需要访问文件夹名称,您只需将一个对象流绘制到区域中即可。这将为每次执行内部扩展区域提供一个单独的文件夹令牌。


如果不需要,则无需对输出扩展节点建模。只需使用流最终节点结束每个执行。在最后一次执行完成后,该区域将为传出控制流生成一个令牌。

可能是“但我不一定有输出集合”实际上意味着你有一个空集合?@ThomasKilian我有一个迭代的输入集合。根据所采取的行动,我会对另一个不属于循环本身的集合做一些事情。你知道吗,例如,如果我没有输出集合(空集合),如何向从一个循环到另一个循环的流发送信号?例如,在第一个循环中,我希望在一个集合上循环,然后在嵌套循环中,在另一个集合上循环,完成一些操作/活动,一个单独的集合(如您所提到的全局集合)已填充/更改。如果当前项不符合条件,例如“活动最终版”,您将如何跳转到迭代中的下一项?但“活动最终版”将指示活动的结束,这也意味着整个循环的结束?您不应尝试“以图形方式编程”你的广告应该给出一个概述,而不是详细的编码说明。你可以使用结构化的活动(EA上下文菜单中的第二个)对于这些细节。但是:不要过度。是的,我认为这是UML新手的主要问题之一。谢谢。谢谢你的解释。扩展区域的传出控制流在我的EA中是不可能的,我只得到依赖项选项。除非我将控制流添加到其他内容,然后将其转移到扩展区域ma一年一次。我现在理解活动节点的要点。EA只是尝试猜测,在特定情况下什么关系是有意义的,并在快速链接菜单中提供这些关系。UML包含很多关系,因此EA不能总是猜测您需要什么。但是,您可以始终在工具箱中查找关系并从那里创建它。我只是浏览了一下规格,没有发现参数中的箭头有任何用途。这更像是SysML。你选择的工具是什么?不是EA sinsce在ste标准(和你的工具)时仍然使用3个分开的盒子如图4所示。@ThomasKilian:您指的是扩展节点吗?规范中没有示例,但第16.12.4节中提到了带小箭头的符号。我在这个图中使用的工具是Magic Draw。没有骰子。我正在查看formal/2015-03-01