Nella classe apprendiamo vari metodi di sviluppo del software. Quello su cui ci siamo concentrati, e utilizzato per sviluppare il nostro progetto, era il metodo a cascata.
Probabilmente hai appreso il classico modello Waterfall, che la persona attribuita con l'introduzione nel mondo di sviluppo del software ha dichiarato fin dall'inizio inappropriato per lo sviluppo di sistemi software su larga scala. Probabilmente saresti interessato a leggere l'articolo di Winston Royce intitolato Gestione dello sviluppo di sistemi software di grandi dimensioni per saperne di più sui problemi con quello che molte persone considerano il modello Waterfall.
Tuttavia, il modello Waterfall è utile per insegnare il ciclo di vita dello sviluppo del software man mano che si procede e può trascorrere del tempo a conoscere ed eseguire ingegneria dei requisiti, progettazione architettonica, progettazione dettagliata, implementazione, test e manutenzione in fasi molto chiare e distinte.
Nei nostri diagrammi di classe, abbiamo dovuto elencare TUTTE le proprietà e i metodi, compresi quelli privati. Ho letto alcuni libri, in particolare Clean Code, che dicono di mantenere le funzioni più brevi e mirate possibile. Sembra noioso elencare ogni piccola funzione nei nostri diagrammi se non aiutano altri sviluppatori (sono privati, nessun altro li userà). Inoltre, potrei non pensare a tutte le minuscole funzioni durante la progettazione del programma, ma potrebbero presentarsi durante il refactoring.
Questi sono tutti punti molto validi.
Elencare tutte le proprietà e i metodi durante la fase di progettazione, anche quando si utilizza Waterfall, è probabilmente eccessivo. Dovresti assolutamente elencare tutto ciò che è pubblico, insieme alle proprietà essenziali. In realtà, tutto il resto è un dettaglio dell'implementazione che è possibile ottenere eseguendo il reverse engineering dell'implementazione in diagrammi.
Il consiglio di Clean Code (non l'ho mai letto - sto solo seguendo quello che hai pubblicato) sembra essere giusto e applicabile anche quando si utilizza la metodologia Waterfall. È possibile progettare le classi e i metodi rispetto al principio di responsabilità singola , alla separazione delle preoccupazioni e ad altri principi di SOLID . Waterfall non ti dice come progettare, proprio quando devi farlo. Detto questo, è più difficile in anticipo mentre impari e pensi a modi migliori per farlo durante l'implementazione.
Penso che ciò evidenzi il fatto che ci deve essere un'iterazione tra progettazione e implementazione molto chiaramente - un problema che Waterfall tradizionale non tiene conto.