Io per la programmazione a oggetti:
1) suddivido ogni sotto problema e lo "assegno" a una classe (es gestione io/memoria, connessione, ecc)
2)definisco l'interfaccia necessaria
3)in un grafico definisco l'utilizzo di ogni classe (es
http://developer.android.com/images/appwidgets/appwidget_collections.png
4)implemento le classi
5)descrivo in modo preciso input,output e "a cosa serve?" di ogni metodo e variabile statica
Ho studiato solo come autodidatta e ti rispondo come tale, ma con questo metodo mi sono sempre trovato bene