Originariamente inviato da MisterBean
In generale i passi da seguire sono:
1) Analizzo il problema che mi è dato, e preparo una lista di requisiti che l'applicazione deve soddisfare (senza pensare a come implementarli!).
2) Comincio a creare la struttura del progetto e a pensare alle varie classi che possono servire per implementare le funzionalità.
3) Scrivo codice.
4) Testo il corretto funzionamento del tutto.
I punti 2 e 3 sono soggettivi, si affidano in gran parte all'esperienza e alle capacità di ognuno nel problem-solving.
Esistono però delle best practices chè è opportuno seguire, come concentrarsi sull'estendibilità del codice (in sostanza, cercare di sfruttare al massimo ereditarietà e polimorfismo) e sulla sua manutenibilità (quindi prestare attenzione alla modularità).
Se ti è chiaro ciò che devi realizzare, inizia a preoccuparti di come strutturarlo in maniera "furba", in modo che sia facilmente estendibile. La stesura di un class diagram allora verrà naturale, ma è solo la conclusione di un percorso di progettazione, non l'inizio.