spiral development is particularly useful when dealing with new or unfamiliar features or technologies it' helpful to "get your hands dirtywith quick prototype just to see what you can do as novice programmereverything may seem new to youso prototyping might prove useful if full-blown top-down design does not seem to be working for youtry some spiral development the art of design it is important to note that spiral development is not an alternative to top-down design ratherthey are complementary approaches when designing the prototypeyou will still use top-down techniques in you will see yet another approach called object-oriented design there is no "one true wayof design the truth is that good design is as much creative process as science designs can be meticulously analyzed after the factbut there are no hard and fast rules for producing design the best software designers seem to employ variety of techniques you can learn about techniques by reading books like this onebut books can' teach how and when to apply them that you have to learn for yourself through experience in designas in almost anythingthe key to success is practice summary computer simulation is powerful technique for answering questions about real-world processes simulation techniques that rely on probabilistic or chance events are known as monte carlo simulations computers use pseudo random numbers to perform monte carlo simulations top-down design is technique for designing complex programs the basic steps are express an algorithm in terms of smaller problems develop an interface for each of the smaller problems express the algorithm in terms of its interfaces with the smaller problems repeat the process for each of the smaller problems top-down design was illustrated by the development of program to simulate the game of racquetball unit-testing is the process of trying out each component of larger program independently unit-testing and bottom-up implementation are useful in coding complex programs spiral development is the process of first creating simple version (prototypeof complex program and gradually adding more features prototyping and spiral development are often useful in conjunction with top-down design design is combination of art and science practice is the best way to become better designer