JavaRanch Home
 
 
This page:         last edited 03 October 2005         What's Changed?         Edit

How To Design   

I have gathered the requirements from my users/my customer. How do I find out which classes, methods etc. I will need?

Coming up with a good design is far from trivial. A good design will need to solve the customers problem, run with acceptable performance on the target platform, communicate to the development team and be flexible enough accommodate for future changes.

There is no simple formula that if just applied correctly will give you a good design. Designing a software system needs a lot of creativity and experience. In fact, even the most experienced designer won't come up with the perfect design in one big swoop for anything but the most trivial of systems. A good team will converge on a good design iteratively; some even call it evolutionary.

If you don't have that experience, among the best things you can do to learn are:

  • collaborate closely with a more experienced designer
  • practice a lot
  • discuss your designs with others
  • use tests to help you adapt the design in the future without breaking things
  • learn how to refactor your design to incorporate new learning

Having said that, there are some guidelines that can help you come up with classes:


JavaRanchAbout us — Copyright © 1998-2009 Paul Wheaton