Currently, I'm a student and I can tackle all my assignments which only require, at most, 3-5 classes to implement.  Now, I'm wanting to develop programs on a bigger scale but I am having a really difficult time figuring out how to design the program from a higher level.The real world example I am working on is a group project to build an RSS reader.  So far so good and I have a very basic prototype working that uses an RSS framework plus a few classes I created myself.  Using the prototype as an example and the requirements document (well over 50 requirements, as of now) I need to build the actual program.  I feel like I know a lot of the principles but I am not sure how to apply them to varying contexts such as this.I'm hung up on how to break this simple RSS reader into multiple components, classes, etc and what those should even be. I would really like to know how I can/should go about wrapping my head around this project.  I want to be able to step back and visualize the different pieces of the program so I have some structure before writing any code.Extra kudos if you have a link to an article or blog that actually shows, by example, how you can take a concept and break it down at a high level.  Sort of a from concept to production type article instead of just abstract information as available at sites like SourceMaking.
As a novice, how can I best overcome the complexity of larger projects?
design;modeling
Designing the architecture of your project is the real assignment and they surely taught you the general principles, or they want you to learn those by yourself, practicing.Anyway, a first approach could be:Study your specs.Underline specific nouns in blue. They are probably your classes/objects/properties.Underline specific verbs in red. They are probably your main methods.Underline specific adjectives in green. They are probably your constraints.Write each identified word in its own box (post-it).Move those boxes around on a white dashboard.Related boxes should stay close to each other.Draw lines between boxes to see relationships.Add notes (stapled post-its) to the boxes.At some point you'll realize that you need a new set of boxes.Draw them while looking at those on the dashboard.Add properties to boxes stapled to where they belong.Take a picture of the dashboard.Remove the old boxes and store them in a bag, just in case.Repeat from 3 until you like what you have on the dashboard.