[IGSTK-Developers] State Machine requirements

Luis Ibanez luis.ibanez at kitware.com
Wed Dec 14 17:21:28 EST 2005


Hi Kevin,

Thanks for pointing this out.

You are right, we have not started to enforce these
requirements for the State Machine.

I just added the requirements to the Wiki page for
Iteration7:

http://public.kitware.com/IGSTKWIKI/index.php/R2_I7_REQ#State_Machine


What we can do immediately is to add a check to the
SetReadyToRun() method in the State Machine, in order
to verify the completeness of the transition table.

If the table is not full, then the SM will report a
fatal error to the logger and refuse to run.

The new macros for observing events, and translating
them into inputs should make easier the implementation
of the AttemptTo pattern.

      igstkEventTransductionMacro()
      igstkLoadedEventTransductionMacro()


We will have to code-review every class in order to identify
where this pattern is missing and should be introduced.


    Luis


-----------------
Kevin Gary wrote:
> At the 1-year review meeting with came away with some decisions w.r.t.
> state machines that I do not see documented in the requirements. 
> Specifically,
> moving all appropriate component state machines to the "AttemptTo" pattern,
> and ensuring all state machine transition tables are fully populated. I do
> not see this in the requirements list - may I add them? Luis, should it be
> you?
> 
> I'm asking because we are working through our requirements for a validation
> tool that includes static structural analysis of IGSTK state machines,
> and these would be two things we check for.
> 
> The fully populated state transition table is a particularly interesting 
> one,
> as to do exhaustive testing, here are some of the numbers for some of 
> our SMs:
> 
> Class        #States        #Inputs        Node    Edge    Path
> View        2        15        1    15    225
> Tracker        10        9        9    90    9^10
> PulseGenerator    4        7        3    28    7^4 (2401)
> Spatial Object    4        10        3    40    10^4 (10k)
> Landmark3DReg.    9        7        8    63    7^9 (> 40M)
> SerialCommun.    11        11        10    121    11^11 (>285M)
> 
> The numbers for node, edge, and path indicate number of test cases 
> required,
> with some assumptions (no loops, path length = #nodes). In practice path
> tests could be much higher. Then if we do scenarios across multiple 
> component
> SMs...
> 
> Thanks,
> Kevin G.
> 
> 
> _______________________________________________
> IGSTK-Developers mailing list
> IGSTK-Developers at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers




More information about the IGSTK-Developers mailing list