I understand the idea behind abstraction and modularization. However, when faced with a problem I tend to draw a blank and it appears that there could be many possible solutions.

1. Is there a particular methodology, that can be followed? Can anybody refer me to any websites which explains the best way to approach abstraction and modularization?
2. Also, any websites that have exercises and solutions involving abstraction and modularization?