Space

- Conclusion -



PURPOSE:

This is a wrap up for the entire design/implementation process.

THOUGHTS:

Designing and implementing a semi-large system such as Space has taken a lot of effort. As you have noticed quite a lot of aspects of the system have changed since the first designs, or even the working design I used to start implementation with. Even in the final moments of implementation new design choices were made which revamped the was a particular subsytem worked. Some questions we might ask ourselves about this are: Is design a one-time process? Should one design then implement or do the two go hand in hand? Can you really design a system fully without starting the implementation?

As I have witnessed one never really stops designing the system while one implements it. The more time you spend working with your system the better you get to know it, the more insight you have into it. As you get to know your system on this intimate level, if you will, you start to be able to create more and more abstractions of it. As this occurs your design changes and maybe becomes more extensible and simpler.

What Space has taught me is that by making things general rather than specific one's design becomes simpler and easier to understand. One example is how I used to have button classes for all of the actions that could be performed on the ship. I also had almost identical key classes to do the same thing. these ended up beng simplified into ShipManipulator classes with only one generic key and mouse class. This saved me four classes and made my program easier to add to when the program specification changed on me.

Finally, by documenting my design as I went along I was able to see and understand how my system was evolving. By witnessing this I was able to intuit future changes which might be made, like having to add an extra base capability to all ships. By actively planning ahead for future changes to the system we help ourselves to create better systems which are simple to modify when need be.


This page was last updated by Shoe on 03/05/98.
Comments or suggestions, should be sent to: ahs@cs.brown.edu
Space is copyright 1996-1998 by Andrew H. Schulak