Top Down vs. Bottom Up Design & Coding
Many projects needs a bottom up testing approach to verify that "low level" details will indeed work in the real world! However, this does not exclude the usage of State Diagrams to control high level flow of your final application:
Objective Technology developed HPC-09 v6 over a period of 8 years: This is a system with many complex calculations that we needed to verify before we could finally "stitch" it all together. Among these technologies where our own mathematical model developed in Mathematica, and Finite Element Modeling tools.
When all the low level verification was done, we had a better understanding of what was possible, and how things could be done. We then sat down and Designed our first State Diagram (*) for the High Level Flow of our Model's response to User Input and Calculation Results: Thus, in this case we used a State Diagram as both a Controller and a kind of Mediator that "stitched" the GUI and Model parts together!
During the initial testing phases, we used live State Diagram execution (LabView's State Diagram Toolkit) to home in on bugs: This turned out to be much more efficient than debugging at the coding level: The State Diagram provided High Level Identification of the State in which wrong decisions were made, and then we used "low level" debugging to find the exact spot of the bug!
Approximately 80% of the first State Diagram has remained unchanged since it was created. There has been a few changes due to bugs, and the rest has been adding States to cover new functionality!
Thus, High Level State Diagrams does not exclude bottom up testing and coding, on the contrary they work in perfect harmony!
The VcaSde documentation contains a "State Diagram Design Tips" section. Download a VcaSde (30 day trial) with the documentation.
Start Reaping the Benefits of VcaSde!