min*_*ros 20 uml loops android-activity
我在UML活动图中建模循环.它适用于简单的条件节点(图1),但我正在寻找一种更具表现力的方式来强调循环语义.所以我来到这里和那里展示的"地区"或"可中断地区" ,但我找不到很多令人满意的例子.
我的例子是一个处理给定列表的消息的函数.一旦找到第一个有效消息,循环就会中止,然后处理消息并且函数返回true.否则,它返回false(请不要对意义或废话进行评论,这只是为了样本).
图1:使用一个好的旧活动图条件节点.顺便说一句,遵循箭头的控制流更容易,但没有"循环",只有"如果".
图2:
两个图的功能应该是等效的:


编辑:另一个实现Steph建议的图表:

Ste*_*eph 10
在UML中,活动最终节点表示完成,因此在使用它时它在循环区域中是正确的,它是循环内容的正常完成(这反过来导致下一次迭代).作为旁注,我建议您在循环开始时使用初始节点.
并且还有流最终节点,它表示退出而不是完成.因此,您可以使用它来表示"break"语句,而不是您使用的中断边缘.在这种情况下,您必须在"是"分支中,在此最终节点之前集成"进一步的消息处理节点".
中断边缘是来自当前处理之外的中断.该区域是可中断的,并且一些事件(通常用接收节点标记)可以完全中断它,无论区域内容的进展如何.事实并非如此.
关于迭代字符,遗憾的是没有什么非常直观的.我倾向于在区域顶部使用一个对象节点,就在初始节点旁边.