Bookmark Topic Watch Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Jeanne Boyarsky
  • Liutauras Vilda
Sheriffs:
  • Rob Spoor
  • Bear Bibeault
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:
  • Frits Walraven
  • Himai Minh
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
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:


  • http://www.awprofessional.com/articles/article.asp?p=30664&rl=1 describes an approach of finding objects in requirements documentation.
  • Test Driven Development uses tests to help you come up with a testable, and thereby well decoupled design.

  •  
    You had your fun. Now it's time to go to jail. Thanks for your help tiny ad.
    Thread Boost feature
    https://coderanch.com/t/674455/Thread-Boost-feature
      Bookmark Topic Watch Topic
    • New Topic