sdlc phases
Cos'è il ciclo di vita dello sviluppo del software (SDLC)? Impara fasi, metodologie, processi e modelli di SDLC
Il Software Development Life Cycle (SDLC) è un framework che definisce i passaggi coinvolti nello sviluppo del software in ogni fase. Copre il piano dettagliato per la creazione, la distribuzione e la manutenzione del software.
SDLC definisce il ciclo completo di sviluppo, ovvero tutte le attività coinvolte nella pianificazione, creazione, test e distribuzione di un prodotto software.
Cosa imparerai:
- Processo del ciclo di vita dello sviluppo del software
- Ciclo SDLC
- Fasi SDLC
- Modelli del ciclo di vita dello sviluppo software
- Conclusione
Processo del ciclo di vita dello sviluppo del software
SDLC è un processo che definisce le varie fasi coinvolte nello sviluppo del software per fornire un prodotto di alta qualità. Le fasi SDLC coprono il ciclo di vita completo di un software, ovvero dall'inizio al ritiro del prodotto.
L'adesione al processo SDLC porta allo sviluppo del software in modo sistematico e disciplinato.
Scopo:
Lo scopo di SDLC è fornire un prodotto di alta qualità che sia conforme alle esigenze del cliente.
SDLC ha definito le sue fasi come raccolta dei requisiti, progettazione, codifica, test e manutenzione. È importante aderire alle fasi per fornire il Prodotto in modo sistematico.
Per esempio, Deve essere sviluppato un software e un team è diviso per lavorare su una caratteristica del prodotto e può lavorare come vuole. Uno degli sviluppatori decide di progettare prima mentre l'altro decide di codificare prima e l'altro sulla parte della documentazione.
Ciò porterà al fallimento del progetto a causa del quale è necessario avere una buona conoscenza e comprensione tra i membri del team per fornire un prodotto previsto.
Ciclo SDLC
SDLC Cycle rappresenta il processo di sviluppo del software.
Di seguito la rappresentazione schematica del ciclo SDLC:
Fasi SDLC
Di seguito sono riportate le varie fasi:
- Raccolta e analisi dei requisiti
- Design
- Implementazione o codifica
- Test
- Distribuzione
- Manutenzione
# 1) Raccolta e analisi dei requisiti
Durante questa fase, tutte le informazioni rilevanti vengono raccolte dal cliente per sviluppare un prodotto secondo le sue aspettative. Eventuali ambiguità devono essere risolte solo in questa fase.
Analista aziendale e Project Manager hanno organizzato un incontro con il cliente per raccogliere tutte le informazioni come ciò che il cliente vuole costruire, chi sarà l'utente finale, qual è lo scopo del prodotto. Prima di costruire un prodotto è molto importante una comprensione o una conoscenza di base del prodotto.
Per esempio, Un cliente desidera avere un'applicazione che coinvolga transazioni di denaro. In questo caso, il requisito deve essere chiaro come il tipo di transazione che verrà eseguita, come verrà eseguita, in quale valuta verrà eseguita, ecc.
Una volta effettuata la raccolta dei requisiti, viene eseguita un'analisi per verificare la fattibilità dello sviluppo di un prodotto. In caso di ambiguità, viene istituito un invito per ulteriori discussioni.
Una volta compreso chiaramente il requisito, viene creato il documento SRS (Software Requirement Specification). Questo documento dovrebbe essere compreso a fondo dagli sviluppatori e dovrebbe anche essere rivisto dal cliente per riferimento futuro.
# 2) Design
In questa fase, il requisito raccolto nel documento SRS viene utilizzato come input e viene derivata l'architettura software utilizzata per l'implementazione dello sviluppo del sistema.
# 3) Implementazione o codifica
L'implementazione / codifica inizia una volta che lo sviluppatore ottiene il documento di progettazione. Il design del software viene tradotto in codice sorgente. In questa fase vengono implementati tutti i componenti del software.
come aprire un file torrent su mac
# 4) Test
Il test inizia una volta completata la codifica e i moduli vengono rilasciati per il test. In questa fase, il software sviluppato viene testato a fondo e gli eventuali difetti riscontrati vengono assegnati agli sviluppatori per farli riparare.
Ripetendo il test, il test di regressione viene eseguito fino al punto in cui il software è conforme alle aspettative del cliente. I tester fanno riferimento al documento SRS per assicurarsi che il software sia conforme allo standard del cliente.
# 5) Distribuzione
Una volta che il prodotto è stato testato, viene distribuito nell'ambiente di produzione o prima UAT (test di accettazione dell'utente) viene eseguito in base alle aspettative del cliente.
Nel caso di UAT, viene creata una replica dell'ambiente di produzione e il cliente insieme agli sviluppatori esegue il test. Se il cliente trova l'applicazione come previsto, il cliente fornisce la firma per essere pubblicata.
# 6) Manutenzione
Dopo l'implementazione di un prodotto nell'ambiente di produzione, la manutenzione del prodotto, ovvero se si verificano problemi e devono essere risolti o è necessario apportare miglioramenti, gli sviluppatori si occupano di.
Modelli del ciclo di vita dello sviluppo software
Un modello del ciclo di vita del software è una rappresentazione descrittiva del ciclo di sviluppo del software. I modelli SDLC potrebbero avere un approccio diverso, ma le fasi e l'attività di base rimangono le stesse per tutti i modelli.
# 1) Modello a cascata
Modello a cascata è il primo modello utilizzato in SDLC. È anche noto come modello sequenziale lineare.
In questo modello, il risultato di una fase è l'input per la fase successiva. Lo sviluppo della fase successiva inizia solo quando la fase precedente è completa.
- In primo luogo, viene eseguita la raccolta e l'analisi dei requisiti. Una volta che il requisito è congelato, può iniziare solo la progettazione del sistema. Qui, il documento SRS creato è l'output per la fase Requirement e funge da input per il System Design.
- In System Design Software architecture and Design, vengono creati documenti che fungono da input per la fase successiva, ad esempio implementazione e codifica.
- Nella fase di implementazione, viene eseguita la codifica e il software sviluppato è l'input per la fase successiva, ovvero il test.
- Nella fase di test, il codice sviluppato viene testato accuratamente per rilevare i difetti nel software. I difetti vengono registrati nello strumento di tracciamento dei difetti e vengono nuovamente testati una volta risolti. La registrazione dei bug, la ripetizione del test, i test di regressione continuano fino al momento in cui il software è in stato di go-live.
- Nella fase di implementazione, il codice sviluppato viene spostato in produzione dopo che il cliente ha fornito l'approvazione.
- Eventuali problemi nell'ambiente di produzione vengono risolti dagli sviluppatori che rientrano in manutenzione.
Vantaggi del modello a cascata:
- Il modello a cascata è il modello semplice e facilmente comprensibile ed è quello in cui tutte le fasi vengono svolte passo dopo passo.
- I risultati finali di ciascuna fase sono ben definiti e questo non comporta complessità e rende il progetto facilmente gestibile.
Svantaggi del modello Waterfall:
- Il modello a cascata richiede tempo e non può essere utilizzato nei progetti di breve durata poiché in questo modello non è possibile avviare una nuova fase fino al completamento della fase in corso.
- Il modello a cascata non può essere utilizzato per i progetti che hanno requisiti incerti o in cui il requisito continua a cambiare poiché questo modello si aspetta che il requisito sia chiaro nella stessa fase di raccolta e analisi dei requisiti e qualsiasi cambiamento nelle fasi successive porterebbe a costi più alti sarebbero necessarie modifiche in tutte le fasi.
# 2) Modello a forma di V.
Modello V è anche noto come modello di verifica e convalida. In questo modello, la verifica e la convalida vanno di pari passo, ovvero lo sviluppo e il test vanno parallelamente. Il modello V e il modello a cascata sono gli stessi, tranne per il fatto che la pianificazione e il test dei test iniziano in una fase iniziale in V-Model.
a) Fase di verifica:
(i) Analisi dei requisiti:
In questa fase vengono raccolte e analizzate tutte le informazioni richieste. Le attività di verifica includono la revisione dei requisiti.
(ii) Progettazione del sistema:
Una volta che il requisito è chiaro, viene progettato un sistema, ovvero architettura, i componenti del prodotto vengono creati e documentati in un documento di progettazione.
(iii) Progettazione di alto livello:
Il design di alto livello definisce l'architettura / design dei moduli. Definisce la funzionalità tra i due moduli.
(iv) Progettazione di basso livello:
Il design di basso livello definisce l'architettura / il design dei singoli componenti.
(v) Codifica:
Lo sviluppo del codice viene eseguito in questa fase.
b) Fase di convalida:
(i) Test unitario:
Test di unità viene eseguito utilizzando gli unit test case progettati e viene eseguito nella fase di progettazione di basso livello. Lo unit test viene eseguito dallo sviluppatore stesso. Viene eseguito su singoli componenti che portano alla diagnosi precoce dei difetti.
(ii) Test di integrazione:
Test d'integrazione viene eseguito utilizzando casi di test di integrazione nella fase di progettazione di alto livello. Il test di integrazione è il test che viene eseguito sui moduli integrati. Viene eseguito da tester.
(iii) Test del sistema:
Test di sistema viene eseguito nella fase di System Design. In questa fase viene testato l'intero sistema, ovvero viene testata l'intera funzionalità del sistema.
(iv) Test di accettazione:
Il test di accettazione è associato alla fase di analisi dei requisiti e viene eseguito nell'ambiente del cliente.
Vantaggi del modello V:
- È un modello semplice e facilmente comprensibile.
- L'approccio V –model è utile per i progetti più piccoli in cui il requisito è definito e si blocca nella fase iniziale.
- È un modello sistematico e disciplinato che si traduce in un prodotto di alta qualità.
Svantaggi del modello V:
- Il modello a forma di V non va bene per i progetti in corso.
- Il cambiamento dei requisiti nella fase successiva costerebbe troppo alto.
# 3) Modello prototipo
Il modello prototipo è un modello in cui il prototipo viene sviluppato prima del software vero e proprio.
I modelli prototipo hanno capacità funzionali limitate e prestazioni inefficienti rispetto al software effettivo. Le funzioni fittizie vengono utilizzate per creare prototipi. Questo è un meccanismo prezioso per comprendere le esigenze dei clienti.
I prototipi software vengono costruiti prima del software vero e proprio per ottenere un feedback prezioso dal cliente. I feedback vengono implementati e il prototipo viene nuovamente esaminato dal cliente per eventuali modifiche. Questo processo continua fino a quando il modello non viene accettato dal cliente.
Una volta completata la raccolta dei requisiti, viene creato il design rapido e viene costruito il prototipo che viene presentato al cliente per la valutazione.
Il feedback del cliente e il requisito raffinato vengono utilizzati per modificare il prototipo e vengono nuovamente presentati al cliente per la valutazione. Una volta che il cliente approva il prototipo, viene utilizzato come requisito per la creazione del software vero e proprio. Il software attuale è costruito utilizzando l'approccio del modello Waterfall.
Vantaggi del modello prototipo:
- Il modello prototipo riduce i costi e i tempi di sviluppo poiché i difetti vengono rilevati molto prima.
- Una caratteristica o funzionalità mancante o un cambiamento nei requisiti possono essere identificati nella fase di valutazione e possono essere implementati nel prototipo raffinato.
- Il coinvolgimento di un cliente sin dalla fase iniziale riduce qualsiasi confusione nei requisiti o nella comprensione di qualsiasi funzionalità.
Svantaggi del modello prototipo:
- Poiché il cliente è coinvolto in ogni fase, il cliente può modificare il requisito del prodotto finale che aumenta la complessità dell'ambito e può aumentare i tempi di consegna del prodotto.
# 4) Modello a spirale
Il modello a spirale include un approccio iterativo e prototipo.
Le fasi del modello a spirale sono seguite nelle iterazioni. I loop nel modello rappresentano la fase del processo SDLC, ovvero il loop più interno è di raccolta e analisi dei requisiti che segue la pianificazione, l'analisi dei rischi, lo sviluppo e la valutazione. Il ciclo successivo è la progettazione, seguita dall'implementazione e quindi dai test.
Il modello a spirale ha quattro fasi:
- Pianificazione
- Analisi del rischio
- Ingegneria
- Valutazione
(i) Pianificazione:
La fase di pianificazione include la raccolta dei requisiti in cui tutte le informazioni richieste vengono raccolte dal cliente e vengono documentate. Il documento di specifica dei requisiti software viene creato per la fase successiva.
(ii) Analisi dei rischi:
In questa fase viene selezionata la soluzione migliore per i rischi coinvolti e l'analisi viene effettuata costruendo il prototipo.
Per esempio , il rischio connesso all'accesso ai dati da un database remoto può essere che la velocità di accesso ai dati potrebbe essere troppo lenta. Il rischio può essere risolto costruendo un prototipo del sottosistema di accesso ai dati.
(iii) Ingegneria:
Una volta eseguita l'analisi del rischio, vengono eseguiti la codifica e il test.
(iv) Valutazione:
Il cliente valuta il sistema sviluppato e pianifica la successiva iterazione.
Vantaggi del modello a spirale:
- L'analisi dei rischi viene eseguita ampiamente utilizzando i modelli prototipo.
- Qualsiasi miglioramento o modifica della funzionalità può essere eseguita nella successiva iterazione.
Svantaggi del modello a spirale:
- Il modello a spirale è più adatto solo per grandi progetti.
- Il costo può essere elevato in quanto potrebbe richiedere un gran numero di iterazioni che possono portare a un tempo elevato per raggiungere il prodotto finale.
# 5) Modello incrementale iterativo
Il modello incrementale iterativo divide il prodotto in piccoli blocchi.
Per esempio , La caratteristica da sviluppare nell'iterazione viene decisa e implementata. Ogni iterazione passa attraverso le fasi vale a dire Analisi dei requisiti, progettazione, codifica e test. La pianificazione dettagliata non è richiesta nelle iterazioni.
Una volta completata l'iterazione, un prodotto viene verificato e consegnato al cliente per la valutazione e il feedback. Il feedback del cliente viene implementato nella prossima iterazione insieme alla nuova funzionalità aggiunta.
Quindi, il prodotto aumenta in termini di funzionalità e una volta completate le iterazioni, la build finale contiene tutte le funzionalità del prodotto.
Fasi del modello di sviluppo iterativo e incrementale:
- Fase iniziale
- Fase di elaborazione
- Fase di costruzione
- Fase di transizione
(i) Fase di lancio:
La fase iniziale include i requisiti e l'ambito del progetto.
(ii) Fase di elaborazione:
Nella fase di elaborazione, viene consegnata l'architettura di lavoro di un prodotto che copre il rischio identificato nella fase di avvio e soddisfa anche i requisiti non funzionali.
(iii) Fase di costruzione:
Nella fase di costruzione, l'architettura viene compilata con il codice pronto per essere distribuito e viene creato attraverso l'analisi, la progettazione, l'implementazione e il test del requisito funzionale.
(iv) Fase di transizione:
Nella fase di transizione, il prodotto viene distribuito nell'ambiente di produzione.
Vantaggi del modello iterativo e incrementale:
- Qualsiasi modifica al requisito può essere eseguita facilmente e non costerebbe in quanto è possibile incorporare il nuovo requisito nella successiva iterazione.
- Il rischio viene analizzato e identificato nelle iterazioni.
- I difetti vengono rilevati in una fase iniziale.
- Poiché il prodotto è suddiviso in parti più piccole, è facile gestirlo.
Svantaggi del modello iterativo e incrementale:
- Il requisito completo e la comprensione di un prodotto sono necessari per scomporre e costruire in modo incrementale.
# 6) Modello Big Bang
Big Bang Model non ha alcun processo definito. Il denaro e gli sforzi vengono messi insieme quando l'input e l'output arrivano come un prodotto sviluppato che potrebbe essere o non essere lo stesso di cui il cliente ha bisogno.
Il modello Big Bang non richiede molta pianificazione e programmazione. Lo sviluppatore esegue l'analisi e la codifica dei requisiti e sviluppa il prodotto secondo la sua comprensione. Questo modello è utilizzato solo per piccoli progetti. Non esiste un team di test e non viene eseguito alcun test formale, e questo potrebbe essere una causa del fallimento del progetto.
Vantaggi del modello Big Bang:
- È un modello molto semplice.
- Sono richieste meno pianificazione e programmazione.
- Lo sviluppatore ha la flessibilità di creare il proprio software.
Svantaggi del modello Big Bang:
- I modelli Big Bang non possono essere utilizzati per progetti grandi, in corso e complessi.
- Alto rischio e incertezza.
# 7) Modello Agile
Il modello agile è una combinazione del modello iterativo e incrementale. Questo modello si concentra maggiormente sulla flessibilità durante lo sviluppo di un prodotto piuttosto che sui requisiti.
In Agile, un prodotto viene suddiviso in piccole build incrementali. Non è sviluppato come prodotto completo in una volta sola. Ogni build aumenta in termini di funzionalità. La build successiva si basa sulle funzionalità precedenti.
Nelle iterazioni agili vengono definite sprint. Ogni sprint dura 2-4 settimane. Alla fine di ogni sprint, il product owner verifica il prodotto e, dopo la sua approvazione, viene consegnato al cliente.
Il feedback dei clienti viene preso per il miglioramento e i suoi suggerimenti e miglioramenti vengono elaborati nello sprint successivo. I test vengono eseguiti in ogni sprint per ridurre al minimo il rischio di eventuali guasti.
Vantaggi del modello Agile:
- Consente una maggiore flessibilità per adattarsi ai cambiamenti.
- La nuova funzionalità può essere aggiunta facilmente.
- Soddisfazione del cliente poiché feedback e suggerimenti vengono presi in ogni fase.
Svantaggi:
- Mancanza di documentazione.
- Agile necessita di risorse esperte e altamente qualificate.
- Se un cliente non è chiaro su come esattamente desidera che sia il prodotto, il progetto fallirà.
Conclusione
Il rispetto di un ciclo di vita adeguato è molto importante, per il buon esito del progetto. Questo, a sua volta, semplifica la gestione.
I diversi modelli del ciclo di vita dello sviluppo software hanno i propri pro e contro. Il modello migliore per qualsiasi progetto può essere determinato da fattori come Requisito (chiaro o non chiaro), Complessità del sistema, Dimensione del progetto, Costo, Limitazione delle competenze, ecc.
Esempio, in caso di requisiti poco chiari, è preferibile utilizzare i modelli Spiral e Agile poiché la modifica richiesta può essere facilmente adattata in qualsiasi fase.
Il modello Waterfall è un modello di base e tutti gli altri modelli SDLC si basano solo su questo.
Spero che tu abbia acquisito una conoscenza immensa di SDLC.
Lettura consigliata
- Modello a spirale: che cos'è il modello a spirale SDLC?
- Cos'è il modello a cascata SDLC?
- Che cos'è il ciclo di vita dei test software (STLC)?
- Lavoro assistente QA test software
- 10 MIGLIORI società e servizi di sviluppo software personalizzato nel 2021
- Test pratico del software - Nuovo eBook GRATUITO (Download)
- Onsite - Modello offshore di progetti di test del software (e come farlo funzionare per te)
- Perché il software presenta bug?