modello V
![](https://cdn.codegym.cc/images/article/e2c9e51b-1975-449f-9136-ff3eaed338dd/800.jpeg)
Il principio del modello a forma di V è per molti versi simile al modello a cascata. Molto spesso viene utilizzato in sistemi in cui il funzionamento ininterrotto è estremamente importante. Questo è un software per mantenere il supporto vitale dei pazienti in istituti medici, sistemi di blocco di emergenza e software simili.
Una caratteristica di questo modello è che si concentra sul test del software che si trova nelle prime fasi di sviluppo, compresa la progettazione. Il test avviene in parallelo con il processo di sviluppo, ad esempio i test unitari vengono eseguiti durante la scrittura del codice.
Quando dovrebbe essere applicato il modello a V?
- Se un prodotto software necessita di test rigorosi, i principi del modello V (convalida e verifica) sono più giustificati in questa situazione.
- Per progetti di piccole e medie dimensioni, con requisiti ben definiti.
- Alla presenza di un gran numero di collaudatori qualificati.
modello incrementale
![](https://cdn.codegym.cc/images/article/a732d322-07b8-4d4a-977f-c8729ccccd89/800.jpeg)
La particolarità del modello incrementale è che in esso i requisiti per il software dipendono dall'assieme specifico. Poiché un prodotto viene costruito in più fasi, il suo sviluppo passa attraverso più iterazioni. L'intero ciclo di vita può essere definito una "multi-cascata".
Il ciclo di costruzione è suddiviso in moduli piccoli e semplici. Ognuno passa attraverso requisiti rigorosi, progettazione, codifica, implementazione e test.
Il processo di sviluppo secondo il modello incrementale inizia con il rilascio di una versione base del prodotto con funzionalità minime. Poi c'è una “crescita” di funzioni, che si chiamano “incrementi”. Il flusso di lavoro continua fino a quando tutte le funzioni pianificate in precedenza non vengono integrate nel sistema.
Modello iterativo
Un modello iterativo, chiamato anche modello iterativo, non necessita di una specifica completa dei requisiti nella fase iniziale. Lo sviluppo inizia con la creazione di determinate funzionalità, che poi diventano la base per l'aggiunta di nuove funzioni.
Il processo di creazione delle funzioni "in parti" viene ripetuto più e più volte, fino a quando non viene completato secondo il piano approvato. Il lavoro continua fino a quando non viene ricevuta una versione funzionante del prodotto.
Nel diagramma qui allegato, puoi vedere lo "sviluppo" iterativo del ritratto della Gioconda. Nella prima iterazione vedi solo uno schizzo di un ritratto di una ragazza, nella seconda iterazione puoi già vedere i colori, la terza iterazione diventa più dettagliata e satura. Processo completato.
![](https://cdn.codegym.cc/images/article/dcb8ed9b-7bf2-4270-8c69-c79844b5a0d0/800.jpeg)
Se ricordiamo il modello incrementale, il ritratto verrà scritto su di esso in un modo completamente diverso: pezzo per pezzo, da parti separate.
Un esempio dello sviluppo di un modello iterativo può essere il riconoscimento vocale. La ricerca scientifica su questo argomento è iniziata molto tempo fa, prima sotto forma di idee, poi è iniziata l'implementazione pratica. Ogni nuova iterazione ha migliorato la qualità del riconoscimento vocale. Tuttavia, anche ora il riconoscimento non può essere definito perfetto. Quindi l'attività non è ancora completata.
Qual è il momento migliore per utilizzare il modello iterativo?
- Se i requisiti per il sistema sono chiaramente definiti e comprensibili a tutti.
- Il progetto ha una portata molto ampia.
- L'obiettivo principale è definito, ma i dettagli di implementazione possono cambiare nel corso del lavoro.
modello a spirale
![](https://cdn.codegym.cc/images/article/e73407c3-576b-47d5-be0c-98736d844601/800.jpeg)
Il "modello a spirale" è simile al modello incrementale, ma ha una caratteristica sotto forma di analisi del rischio. Di solito viene utilizzato per processi mission-critical in cui il fallimento è semplicemente inaccettabile.
Il modello a spirale comprende quattro fasi di lavoro:
- pianificazione;
- analisi del rischio;
- lavorare sulla progettazione del software;
- controllando il risultato e passando a una nuova fase.
GO TO FULL VERSION