Podrías ver algo de el tema "ciclos de vida del software":
http://html.rincondelvago.com/el-cic...-software.html
También podes ver algo de uml:
http://www.mundomanuales.com/program...nzado-197.html
Pero por lo menos yo suelo empezar haciendo un documento detallando bien el problema a resolver y las necesidades del sistema, todos los alcances y limitaciones del mismo etc.
Esto ayuda para que sepas bien que vas a necesitar y luego no tengas que borrar campos de la base, o ver que le erraste algo al sistema y tenes que agregar o quitar cosas. Sobre todo si tu aplicación es para un cliente, esto te evitará que te digan que querían otra cosa
Luego suelo hacer el diagrama de la base de datos, crear la base, meterle unas pruebas a la base para que ver que pueda obtener los datos que necesito y luego creo el esquema de las clases. Pero te digo por experiencia, si vas hacer un sistema para un cliente, nunca dejes de hacer la documentacion inicial para que lo valides con el cliente y el mismo sepa lo que va a tener en un futuro, para que despues no tengas problemas
También todo depende de la situación y la forma de mirar las cosas. Ya seguro te dan otra opiniones