Hi there, apprentice (still?).
Though I am just a bit late :-), I think I have a piece of sensible advice to help people with this often seen general approach. Here goes:
No need to write everything down if your goals are not to ambitious, but if they are: write down the key-findings.
- Step one. Ask yourself: what should this application do. What specific value would somebody (conciously or without even noticing your contribution) get from using it. The requirements you state are non-functional: they describe the environment in which it should do its job, they describe structural aspect, but... what is the substance. In other words: you seem to know the big picture (and not yet the details, but the other posts allready give usefull hints on those) of what you are going to apply, but what are you going to apply all of this to. What should it - your application - do. Discuss this whith somebody who is supposed to be a candidate user.
- Step two. Detail the result from step one and ask yourself: Which duties, responsabilities are necesary to make this happen. From this you can get a rough idea which objects you are going to need.
- Step three. Work out several scenario's of how people are going to use your application. Confront this with the findings of the earlier steps.
You can do this in your mind only or write it down too, but the point is: do it in your mind at least.
Now you are ready to start designing your application and maybe hack a simplistic version - to find out what you may have missed in the above steps.
HTH,
Danny