MathewWi / umple

Automatically exported from code.google.com/p/umple
0 stars 0 forks source link

Support for concurrent state machines in state table generation #671

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
THIS IS RELATED TO #670

If you run the following

class Student
{

  status {

    CrossingGuard {
      power -> Off;

      Walk {
        push -> DontWalk;
      }
      DontWalk { 
        push -> DontWalk; 
      }
      ||
        Green { 
          carAppraoch -> Red;
        }
      Red { 
         carApproach -> Green;
      }
    }
    Off { power -> CrossingGuard; }
  }

}

The state table doesn't support two things that it should.  First, much like 
nested state machines, it should show the events related to the parent state 
(which should be solved by #670).  Second, the display of the actual tables 
should keep the states together to show the concurrency

Original issue reported on code.google.com by aforw...@gmail.com on 17 Jan 2015 at 11:17

GoogleCodeExporter commented 9 years ago
I am trying to think of a way to deal with this. In the example there are two 
sets of concurrent states: Walk/DontWalk and Green/Red. The statemachine can 
independently switch between the concurrent states, leaving us with 4 possible 
positions in the state machine (Walk-Green, Walk-Red, DontWalk-Green, 
DontWalk-Red). My first thought re: "keep the states together to show the 
concurrency" is to have these 4 possible positions as headers. So instead of 4 
independent states, there are 4 combined states.

Here's how the example would work:
https://docs.google.com/spreadsheets/d/1ouxNcw7KutWN6E0_54euOnfF3PJyvmirMpVXb0nq
iAg/edit?usp=sharing

Original comment by CraigBry...@gmail.com on 1 Mar 2015 at 4:29

GoogleCodeExporter commented 9 years ago

Original comment by CraigBry...@gmail.com on 1 Mar 2015 at 4:30