In the class we learn about various software development methods. The
one we focused on, and used to develop our project, was the waterfall
method.
Probabilmente hai imparato il classico modello Waterfall, che la persona attribuita introducendolo nel mondo dello sviluppo del software dichiarato dall'inizio era inappropriato per lo sviluppo di sistemi software su larga scala. Probabilmente ti interesserebbe leggere il documento di Winston Royce intitolato Managing the Developemt of Large Software Systems per saperne di più i 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 mentre si passa e può dedicare del tempo all'apprendimento e all'esecuzione dei requisiti di ingegneria, progettazione architettonica, progettazione dettagliata, implementazione, test e manutenzione in fasi molto chiare e distinte.
In our class diagrams, we had to list ALL properties and methods
including private ones. I have read a few books, namely Clean Code,
that say to keep functions as short and focused as possible. It seems
tedious to list every little function in our diagrams if they don't
help other developers out (they're private, no one else will use
them). Plus, I may not think of every tiny function when designing the
program, they may come along when refactoring.
Questi sono tutti punti molto validi.
Elencare tutte le proprietà e i metodi durante la fase di progettazione, anche quando si usa Waterfall, è probabilmente eccessivo. Dovresti assolutamente elencare tutto ciò che è pubblico, insieme alle proprietà essenziali. In realtà, tutto il resto è un dettaglio di implementazione che è possibile ottenere eseguendo il reverse engineering della propria implementazione in diagrammi.
Il consiglio di Clean Code (non l'ho mai letto - sto solo passando per quello che hai postato) sembra essere giusto e applicabile anche quando si utilizza la metodologia Waterfall. Puoi progettare le tue classi e i tuoi metodi in base al principio di responsabilità singola , separazione delle preoccupazioni e altri principi di SOLID . La cascata non ti dice come progettare, solo quando hai bisogno di farlo. Detto questo, è più difficile capire come si impara e pensare a modi migliori per farlo durante l'implementazione.
Penso che questo evidenzi il fatto che ci deve essere un'iterazione tra design e implementazione molto chiaramente - un problema che la cascata tradizionale non tiene in considerazione.