Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
07/04/10 05:24
Read: times


 
#177092 - Using a tool like that........
Responding to: ???'s previous message
Murray:

It is my experience that once one gains the skill of thinking of a problem in a state type design the coding of the implementation into C code is quite easy. There is generally no requirement for a tool of the type you describe.

One problem I have seen with the demo's of such tools that I've tried is that they get tied to a rather tight and rigid structure for the resulting code that they generate. Since, in my personal experience, every time I've ever coded up a new state machine for a problem I find that it ends up being coded in a way that closely fits the problem at hand. Sometimes this is done to make the implementation more efficient and other times it is done to make the state machine more extensible and maintainable. So from this experience I'd once again say I see little real value to such tools.

There is maybe one unique case where a tool of the sort that you mention may be of some value. If one is coding a state machine that had say greater than 30 or 40 states then there may be value to a graphical way to maintain the state machine as opposed to doing it at the C code level.

One more negative for machine auto generated code is that if you go to do an update to a state machine by inserting additional logic into the graphical tool and generating a new code set then it is necessary to fully unit test and validate every state and path through the state machine. On the other hand if you are adding a few things to an already hand built C code state machine it may be OK to just unit test the new states that were added or modified. (This is of course valid for scenarios where the code and the unit tester are the same person). If your business operation uses another validation methodology then it is most likely best to fully re-test the state machine with each change that is released.

Michael Karas



List of 29 messages in thread
TopicAuthorDate
Uart user menu via switch/case state machine            01/01/70 00:00      
   State machine can be small.            01/01/70 00:00      
   My take....            01/01/70 00:00      
   asked and answered            01/01/70 00:00      
      Broken and Fixed            01/01/70 00:00      
         excellent            01/01/70 00:00      
            My experience as well....            01/01/70 00:00      
               My experience as well....            01/01/70 00:00      
               But you're the writer...            01/01/70 00:00      
                  out of context            01/01/70 00:00      
                     Yes, Chances are no one else will see your code            01/01/70 00:00      
                        male cow manure            01/01/70 00:00      
                           Don't be too over confident            01/01/70 00:00      
                  Just Concepts            01/01/70 00:00      
                     Don't think own code is the best            01/01/70 00:00      
                     exactly            01/01/70 00:00      
                        what I have done a lot of lately is            01/01/70 00:00      
   Protothreads???            01/01/70 00:00      
   A case for a CASE tool?            01/01/70 00:00      
      Using a tool like that........            01/01/70 00:00      
         Thanks Michael...            01/01/70 00:00      
            Pencil and paper            01/01/70 00:00      
      Pros and Cons            01/01/70 00:00      
         Analysis/Design            01/01/70 00:00      
            Enterprise Architect            01/01/70 00:00      
               RE: Enterprise Architect            01/01/70 00:00      
                  Reverse State Tables            01/01/70 00:00      
                     RE: "Reverse-engineering"            01/01/70 00:00      
                        php and html when documenting            01/01/70 00:00      

Back to Subject List