Modelli di Sviluppo Software: Caratteristiche e Metodologie Operative
Classificato in Informatica
Scritto il in
italiano con una dimensione di 4,98 KB
Modello a Cascata (Waterfall)
Il modello a cascata presuppone che le esigenze di un problema siano ben comprese e stabili all'interno delle fasi generiche dell'Ingegneria del Software.
Caratteristiche principali:
- I documenti di regia vengono generati in ogni singola fase.
- Gli stadi non si sovrappongono.
- Le revisioni sono effettuate dopo ogni fase; si passa alla successiva solo se la fase precedente è stata completata con successo.
Vantaggi:
- Consigliato per i prodotti che hanno una definizione stabile.
- Indicato quando si lavora con metodologie conosciute.
- Aiuta a minimizzare i costi di progettazione, poiché permette una gestione lineare di tempo e risorse.
Svantaggi:
- È difficile indicare chiaramente i requisiti di un progetto in un primo momento, prima di iniziare la progettazione e la scrittura del codice.
- Piccole omissioni nella definizione di solito comportano grandi cambiamenti nelle diverse fasi del modulo.
- Gli errori nei requisiti vengono spesso rilevati solo in fase di costruzione o di distribuzione.
Modello Incrementale
Questo approccio è per sua natura un modello iterativo che combina elementi del modello a cascata applicati in modo ripetitivo.
Caratteristiche principali:
- Applica una sequenza lineare sfalsata nel tempo.
- Si basa sulla consegna di incrementi funzionali del software.
Vantaggi:
- Molto utile quando la disponibilità di personale è scarsa.
- Gli incrementi sono utili per ridurre il rischio tecnico del progetto.
Svantaggi:
- Presenta svantaggi simili a quelli descritti per il modello a cascata, sebbene in misura minore.
Conclusione:
- Raccomandato per progetti che possono essere implementati a rate o in modo modulare.
- Indicato per progetti con requisiti stabili.
Modello RAD (Rapid Application Development)
Il modello RAD è un adattamento ad alta velocità del modello a cascata, focalizzato sulla costruzione rapida.
Caratteristiche:
- È un modello di processo incrementale.
- Approccio basato sulla costruzione a componenti software e sulla generazione automatica di codice.
Vantaggi:
- Consigliato quando il progetto può essere separato in moduli indipendenti.
- Indicato quando sono ben noti i tempi di implementazione di ogni singolo modulo.
- Ideale quando il progetto prevede la realizzazione di componenti riutilizzabili.
Svantaggi:
- Richiede risorse sufficienti per formare diverse squadre di lavoro.
- Richiede un forte impegno da parte degli sviluppatori per rispettare i tempi; in caso contrario, si possono creare colli di bottiglia.
- Presenta difficoltà quando il sistema non può essere facilmente suddiviso in moduli.
Conclusione:
- Consigliato per progetti che comprendono la realizzazione di componenti specifici.
- Ideale per progetti con tempi di implementazione certi e dove si lavora con tecnologie conosciute.
Modello Prototipo
Questo modello è orientato al debug dei requisiti e permette un alto grado di interazione con l'utente finale.
Caratteristiche:
- Permette al cliente di visualizzare rapidamente i risultati preliminari.
- Si focalizza sulla comprensione delle necessità reali prima della produzione finale.
Vantaggi:
- Inizialmente non viene fatta una gestione complessa del progetto, evitando perdite di tempo in documentazione eccessiva o controllo qualità formale nelle fasi embrionali.
- Può mostrare segni di progresso immediati perché si inizia subito a codificare.
- Utile per piccoli progetti di breve durata che saranno sostituiti o rimossi rapidamente.
- Aiuta a comprendere le reali esigenze del progetto.
Svantaggi:
- È quasi impossibile conoscere all'inizio il tempo complessivo di attuazione del progetto.
- Numero imprecisato di iterazioni da eseguire.
- I tempi effettivi di attuazione finale sono difficili da determinare.
Conclusione:
- Consigliato per progetti che presentano una forte incertezza nella definizione delle proprie specifiche tecniche.