I favour the idea of treating components as communicating state machines (see my explanation of Harel’s paper https://guitarvydas.github.io/2020/12/09/StateCharts.html).

In electronic designs, sometimes a pulse (an edge) is used to signal an event.

An edge contains even less information than a Boolean.

I also studied Physics.

Physicists create a “notation” to describe a problem and, then, to describe its solution.

I think that flow-based vs. EE-thinking is just a difference in notation, e.g. flow-based is good for data-centric applications while EE-thinking is good for control-centric applications.

[One of the differences would be the attitude towards fan-out, flow-based thinking forbids fan-out, whereas a control app uses it all over the place. If the roots are the same, then it is just a question of which notation is more convenient to use].

See Also


Statecharts again

The Bare Essence