Modello incrementale in SDLC: utilizzo, vantaggio e svantaggio
Cos'è il modello incrementale?
Il modello incrementale è un processo di sviluppo del software in cui i requisiti sono suddivisi in più moduli autonomi del ciclo di sviluppo del software. Lo sviluppo incrementale viene eseguito in fasi che vanno dalla progettazione dell'analisi, all'implementazione, al test/verifica, alla manutenzione.
Ogni iterazione passa attraverso il file requisiti, fasi di progettazione, codifica e test. E ogni versione successiva del sistema aggiunge funzionalità alla versione precedente fino a quando tutte le funzionalità progettate non sono state implementate.
Il sistema viene messo in produzione alla consegna del primo incremento. Il primo incremento è spesso un prodotto principale in cui vengono soddisfatti i requisiti di base e negli incrementi successivi vengono aggiunte funzionalità supplementari. Una volta che il prodotto principale viene analizzato dal cliente, viene pianificato lo sviluppo per l'incremento successivo.
Le caratteristiche di un modulo incrementale includono
- Lo sviluppo del sistema è suddiviso in molti mini progetti di sviluppo
- I sistemi parziali vengono successivamente costruiti per produrre un sistema totale finale
- Il requisito con la priorità più alta viene affrontato per primo
- Una volta sviluppato il requisito, i requisiti per quell'incremento vengono congelati
Fasi incrementali | Attività eseguite in fasi incrementali |
---|---|
Analisi dei requisiti |
|
Progettazione |
|
Code |
|
Test |
|
Quando utilizzare i modelli incrementali?
- I requisiti del sistema sono chiaramente compresi
- Quando sorge la richiesta di un rilascio anticipato di un prodotto
- Quando Ingegneria del software la squadra non è molto qualificata o addestrata
- Quando sono coinvolti caratteristiche e obiettivi ad alto rischio
- Tale metodologia è più utilizzata per le aziende basate su applicazioni web e prodotti
Vantaggi e svantaggi del modello incrementale
Vantaggi | Svantaggi |
---|---|
Il software verrà generato rapidamente durante il ciclo di vita del software | Richiede una buona progettazione progettuale |
È flessibile e meno costoso modificare requisiti e ambito | Potrebbero verificarsi problemi a causa dell'architettura del sistema in quanto tale, non tutti i requisiti raccolti in anticipo per l'intero ciclo di vita del software |
Durante le fasi di sviluppo è possibile apportare modifiche | Ogni fase di iterazione è rigida e non si sovrappone alle altre |
Questo modello è meno costoso rispetto ad altri | La correzione di un problema in un'unità richiede la correzione in tutte le unità e richiede molto tempo |
Un cliente può rispondere a ciascun edificio | |
Gli errori sono facili da identificare |