On Sat, Feb 9, 2008 at 9:46 AM, Alan Gauld <[EMAIL PROTECTED]> wrote: > > As I mentioned in an earlier mail it tends to oscillate in practice. > You start off looking at the problem to identify the basic classes. > Then you pick one or two and start designing those in detail and > that identifies lower level classes. When you reach the point of > being able to write some code you do so. The act of writing code > brings up issues that get reflected back up the design - maybe > even identifying new classes. Once you've written as much > code as you can you go back up to the problem level, using > your new found knowledge and design a bit more. Once you > know enough to start coding go back into code mode again. > > This constant iteration between top level class discovery and low > level class construction is what Grady Booch refers to in his book > as "Round Trip Gestalt Design" and in practice is how most > software other than the very biggest projects is built.
I recently found the Grady Booch book: OBJECT ORIENTED DESIGN WITH APPLICATIONS. Benjamin Cummings, 1991. pg. 189: As Heinlein suggests, "When faced with a problem you do not understand, do any part of it you do understand, then look at it again". This is just another way of describing round-trip gestalt design. pg. 517: round-trip gestalt design A style of design that emphasizes the incremental and iterative development of a system, through the refinement of different yet consistent logical and physical views of the system as a whole; the process of object-oriented design is guided by the concepts of round-trip gestalt design: round-trip gestalt design is a recognition of that fact that the big picture of a design affects its details, and that the details often reflect the big picture. Happy Programming. -- b h a a l u u at g m a i l dot c o m Kid on Bus: What are you gonna do today, Napoleon? Napoleon Dynamite: Whatever I feel like I wanna do. Gosh! _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
