SDLC - Modello a cascata

Il modello Waterfall è un modello SDLC classico ampiamente conosciuto, compreso e comunemente utilizzato. È stato introdotto da Royce nel 1970 ed è tuttora seguito come approccio comune per lo sviluppo del software in varie organizzazioni del settore.

Nel modello Waterfall, ogni fase del ciclo di vita può iniziare solo dopo il completamento della precedente fase del ciclo di vita. Quindi, è un modello lineare senza loop di feedback.

Modello a cascata - Punti di forza

I punti di forza del modello Waterfall sono:

  • Facile da capire, facile da usare.
  • Fornisce struttura al team di sviluppo inesperto.
  • Le pietre miliari sono ben comprese.
  • Imposta la stabilità dei requisiti.
  • Ideale per il controllo di gestione (pianificazione, monitoraggio, reporting).
  • Funziona bene quando la qualità è più importante del costo o della pianificazione.

Modello a cascata - Debolezze

I punti deboli o gli svantaggi del modello Waterfall sono:

  • Idealizzato: non corrisponde bene alla realtà.

  • Non realistico: non è possibile aspettarsi requisiti precisi all'inizio del progetto.

  • Non riflette la natura iterativa dello sviluppo esplorativo che è più comune.

  • Difficile e costoso apportare modifiche.

  • Il software viene consegnato solo alla fine del progetto. A causa di questo -

    • Ritarda la scoperta di difetti gravi.

    • Possibilità di consegna di requisiti obsoleti.

  • Significativo sovraccarico di gestione, che può essere costoso per piccoli team e progetti.

  • Richiede risorse esperte in ogni fase: analisti, designer, sviluppatori, tester.

  • Il test inizia solo dopo che lo sviluppo è stato completato e i tester non sono coinvolti in nessuna delle fasi precedenti.

  • La competenza dei team interfunzionali non è condivisa poiché ogni fase viene eseguita in silos.

Quando utilizzare il modello a cascata?

Puoi usare il modello Waterfall se:

  • I requisiti sono ben noti.

  • La definizione del prodotto è stabile.

  • La tecnologia è ben compresa.

  • Nuova versione di un prodotto esistente.

  • Portare un prodotto esistente su una nuova piattaforma.

  • Grande organizzazione con team interfunzionali strutturati.

  • I canali di comunicazione sono ben consolidati all'interno dell'organizzazione e anche con il cliente.

Modello di prototipazione evolutiva

Nello sviluppo del software utilizzando il modello di prototipazione evolutiva, gli sviluppatori costruiscono un prototipo durante la fase dei requisiti. Gli utenti finali quindi valutano il prototipo e forniscono un feedback. Il feedback può essere correzioni al prototipo o funzionalità aggiuntive. Sulla base del feedback, gli sviluppatori perfezionano ulteriormente il prototipo.

Pertanto, il prodotto si evolve attraverso Prototype → Feedback → Refined Prototype Cycles e da qui il nome Evolutionary Prototyping. Quando l'utente è soddisfatto della funzionalità e del funzionamento del prodotto, il codice del prototipo viene portato agli standard richiesti per la consegna del prodotto finale.

Modello di prototipazione evolutiva - Punti di forza

I punti di forza oi vantaggi di un modello di prototipazione evolutiva sono:

  • I clienti / utenti finali possono visualizzare i requisiti di sistema man mano che vengono raccolti guardando il prototipo.

  • Gli sviluppatori imparano dai clienti e quindi nessuna ambiguità riguardo al dominio o all'ambiente di produzione.

  • Consente progettazione e sviluppo flessibili.

  • L'interazione con il prototipo stimola la consapevolezza delle funzionalità aggiuntive necessarie.

  • I requisiti imprevisti e le modifiche dei requisiti sono facilmente soddisfacenti.

  • Vengono prodotti segni di progresso costanti e visibili.

  • Consegna di un prodotto finale accurato e manutenibile.

Modello di prototipazione evolutiva - Punti deboli

I punti deboli o gli svantaggi del modello di prototipazione evolutiva sono i seguenti:

  • Tendenza ad abbandonare lo sviluppo strutturato nello sviluppo code-and-fix, sebbene non sia ciò che è prescritto dal modello.

  • Questo modello ha ricevuto una cattiva reputazione per i metodi rapidi e sporchi.

  • La manutenibilità complessiva può forse essere trascurata.

  • Il cliente può eventualmente chiedere la consegna del prototipo come finale, non dando la possibilità agli sviluppatori di eseguire la fase finale, ovvero la standardizzazione del prodotto finale.

  • Il progetto può continuare all'infinito (con un continuo scivolamento dell'ambito) e la direzione potrebbe non apprezzarlo.

Quando utilizzare il modello di prototipazione evolutiva?

Puoi utilizzare il modello di prototipazione evolutiva -

  • Quando i requisiti sono instabili o devono essere chiariti
  • Come fase di chiarimento dei requisiti di un modello a cascata
  • Sviluppare interfacce utente
  • Per dimostrazioni di breve durata
  • Per sviluppo nuovo o originale
  • Per implementare una nuova tecnologia