Miért nem lehet a YAKINDU-ban ortogonális régiók között eseményeket továbbítani?

+1 vote
asked Mar 18, 2013 in MDSD by mvince (70 points)  

Ha két ortogonális (tehát nem egymásba ágyazott) régió között eseményekkel próbálunk kommunikálni, akkor előfordulhat, hogy az esemény nem kerül feldolgozásra az fogadó oldalon. A pontos esetben a jobb oldali régió invokál egy eseményt, aminek a bal oldali régióban egy tranzíciót kellene tüzelnie, de ez mégsem történik meg.

1 Answer

+1 vote
answered Mar 18, 2013 by mvince (70 points)  
selected Mar 18, 2013 by mvince
 
Best answer

A választ ez a thread tartalmazza:

  1. Orthogonal regions allow modeling independent spaces of state. Orthogonality is not interpreted in the sense of 'multithreading'. Since many people confuse parallelism with multithreading we use the term of orthogonality.

  2. In this sense an execution order must be defined to make the statechart behavior deterministic. For example is you have states in two orthogonal regions that defines a reaction e / a+=1 in one region and e / a *=2 in the second the execution order is relevant. You can define this order in the property sheet for the statechart of by graphically ordering the regions within a state.

  3. Events are just visible within a single run-to-completion-step. So it is possible to react on outgoing and local events only in lower order regions.

  4. We apply single step execution semantics. This means a run-to-completion-step just performs a transition from one state configuration to the next.

  5. A cycle bases approach is implemented what means that it is possible to react to multiple events with in a run-to-completion-step in contrast to a pure event driven approach where one event is processed after another.

Ezek szerint tehát a probléma valamennyire áthidalható úgy, hogy az eseményt invokáló régió kerül bal oldalra (kipróbáltam, működik). Ez természetesen kétirányú kommunikációt nem tesz lehetővé.

Másik lehetőség kommunikációs változók és az active() függvény használata, az egyik régióból a másikba vezető tranzíció azonban rendellenes működéshez vezet.

...