When do statemachine changes become effective

When do statemachine changes become effective

From: Jörg Pleumann ^lt;joerg@pleumann.de>
Date: Wed 11 May 2005 - 10:53:28 BST
Message-ID: <4281D618.6000302@pleumann.de>

I have a question regarding UML statemachines: When does a change caused 
by an action of a triggered transition become effective? My intuition 
says "immediately", that is, in the same run-to-completion step, as soon 
as the action is being executed. Thus, the following transition,


with an initial value of x=0, should result in y being 5 afterwards.

In the original Harel statecharts, changes became effective in the next 
step only, if I read the classical semantics paper from '96 correctly. 
Therefore, the above example would have yielded a value of y=0, because 
the second expression relies on the original value of x, not the new 
one. In particular, it should have been possible to use something like this


to exchange variables (which looks rather strange from a programmer's 
point of view).

I'm pretty sure the UML dropped this delayed visibility of changes, 
because it doesn't seem to make sense in the world of oo/prodedural 
programming, in particular once you allow to invoke methods from a 
transition. I just can't find a corresponding reference in the spec. Can 
someone point me to a statement that says exactly this or allows to 
deduce it?

Regards, Jörg

PS: I aware that the situation is somewhat different when it comes to 
guards and junction/choice points, but that's not what I'm asking for.

Dipl.-Inform. Joerg Pleumann      Fon : (+49) 0231/755-4712
Universitaet Dortmund             Fax : (+49) 0231/755-2061
Software-Technologie              Mail: joerg.pleumann@uni-dortmund.de
Baroper Strasse 301               Web : ls10-www.cs.uni-dortmund.de
D-44221 Dortmund                  ICQ : 137170325
Received on Wed May 11 10:53:45 2005