Learning the process makes much of your class design and implementation "no-brainer". This frees up your brain to work on the parts that really are difficult and you can usually re-use the code you've already written and tested.
Later, you may find a method that works better for you, but learn this one first before you try to use your own.
At each step, if you can't think of anything more, or aren't clear what to do, skip it and go back to it later. In other words, don't let yourself get stuck. If it's not essential, skip it! Also, try to make your design match the way people think about it in real life.
Ok, enough pep talk - let's get started!
Write down all the nouns. Don't analyze them, this step is more like brainstorming!
Double check it with hasa - a class hasa data member.
If it's not clear, skip it for now!
Write the code for the methods (in the .cpp file or the .java file).
A typical access
function just returns the data member/instance variable.
Ok, time for a small test program! Make sure you test every constructor and every access function. Fix any errors before going on.
Next are the "in-between" steps:
A good name for this member function would be print() or trace().
Now, time for more testing! Make sure it's perfect before you go on!
The goal is that by working on the nouns first you have worked out many of the details of how your class should work and maybe even done most of the work (and tested it) already.
Ok, time to do the verbs - usually the hard part! Write down all the verbs (or verb phrases).
Finish up your main program. Don't forget your test plan and you're done!