Control Flow vs. Object Flow

2,228 views
Skip to first unread message

Michael Campbell

unread,
Jun 11, 2018, 4:25:52 PM6/11/18
to SysML Forum
Hi all, 

Just trying to learn some of these patterns to understand the need for both. 

Why would we need a control flow?

Can the control flow and object flow overlap? 

Thanks. 

FAUDOU raphael

unread,
Jun 11, 2018, 8:45:20 PM6/11/18
to sysml...@googlegroups.com, raphael FAUDOU
Hi Michael,

you need a control flow when you want to express a precedence constraint between two action nodes. 
Those actions may represent process, algorithm or function steps.
Control flow provides explicit execution logics. Without it you cannot simulate your activity diagram except you get simple data flow without loop: in that case data flows provide implicit logics (data produced before it is consumed) and can sometimes be enough to support simulation.
best regards,
raphael
--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.
To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.
To view this discussion on the web visit https://groups.google.com/d/msgid/sysmlforum/887cd5ee-bc29-405c-8a0e-4b1e0ba096d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Remy Fannader

unread,
Jun 11, 2018, 8:45:24 PM6/11/18
to sysml...@googlegroups.com
Two different semantics: control flows induce some change of state (objects, activity, expectation), object flows are neutral. So a control flow can also carry objects, but object flows are just that.

--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to

For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+unsubscribe@googlegroups.com.

James Towers

unread,
Jun 12, 2018, 5:58:35 PM6/12/18
to sysml...@googlegroups.com
I do not believe this is correct. My understanding is that control flows may only carry control tokens. 

The reason for having  them is that not all activities require input object tokens, and so do not have incoming object flows. Additionally not all activities ‘start’ on the presentation of input object tokens, but rather need separate control flows - a pump may not ‘pump’ simply because there is water at it’s input (object flow) but only when there is water at the input and it has received a ‘start pumping’ signal (control flow).


For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.

To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.

Remy Fannader

unread,
Jun 13, 2018, 1:08:03 AM6/13/18
to sysml...@googlegroups.com
James, how to represent a request with an object as parameter then ?

--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+unsubscribe@googlegroups.com.
To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.

James Towers

unread,
Jun 15, 2018, 8:24:15 PM6/15/18
to sysml...@googlegroups.com
Well this depends on context, but assuming we are talking about activities (on which the original question was based) then an object-flow is sufficient. If this is the only incoming edge to the action, then the activity will 'execute' once the minimum number of object-tokens arrive at the incoming object-node, therefor also passing 'control' to the action. 




For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.

To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.

Remy Fannader

unread,
Jun 17, 2018, 1:49:02 AM6/17/18
to sysml...@googlegroups.com
That's called escapism: you simply assume that there is no need to represent a request (control) can be sent with an object. Good luck with users that want to do that.

--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+unsubscribe@googlegroups.com.
To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.

James Towers

unread,
Jun 17, 2018, 10:33:12 PM6/17/18
to sysml...@googlegroups.com
Not at all. A control flow has no objects, just events (the arrival of tokens), an object flow has by definition object tokens and events (the arrival of those tokens). So you can model:

1) Events alone (Control Flows)
2) Events with Objects (Object Flows) <- Which is the scenario you describe.
3) Combinations of the two - thus allowing control to transfer on a different event to the arrival of the object token(s). 

The only thing not covered by these two is the availability of objects without events, but then that's not a flow. Object's which are always available (values) would be properties of the owning classifier (in this case probably a Block)

I concede SysML doesn't use particularly intuitive names when it comes to Control Flow and Object Flow (since both actually influence the transition of control), but the semantics you describe are available, and actually you could model everything just using Object Flows if you defined your own Control Token Block.

Remy Fannader

unread,
Jun 18, 2018, 9:56:10 PM6/18/18
to sysml...@googlegroups.com
"Event" meaning some change of state, "event with object" is by definition a control flow. There should be no argument here because it's not a matter of opinion but of semantic consistency.

--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+unsubscribe@googlegroups.com.
To post to this group, send email to sysml...@googlegroups.com.
Visit this group at https://groups.google.com/group/sysmlforum.
Reply all
Reply to author
Forward
0 new messages