Fasi SDLC [spiegato]: come creare un ottimo software nel 2021
Pubblicato: 2019-10-02Sommario
Comprendere il processo SDLC
Struttura del processo di sviluppo del software
Modelli SDLC
Incartare
Il settore dello sviluppo software è in piena espansione. Continuiamo a produrre enormi quantità di codice ogni anno.
Al centro del settore c'è il ciclo di vita dello sviluppo del software (SDLC), il processo che guida i team di software come strutturare e pianificare il proprio lavoro.
Quindi facciamo un viaggio attraverso il terreno infido dello sviluppo del software.
Vedremo cos'è effettivamente SDLC e ne ripercorreremo l'evoluzione. Vedremo quali sono i principali modelli utilizzati dall'industria.
Scopriremo le fasi SDLC, attraverso le quali un pezzo di software passa prima di vedere la luce del giorno - e gli attori chiave in ognuna di esse.
In definitiva, ti daremo una visione a volo d'uccello dell'intero processo.
Comprendere il processo SDLC
La creazione di software è un processo. Come tale ha bisogno di un obiettivo ben definito, mezzi per realizzarlo e modi per misurare, mantenere e migliorare i risultati. I diversi approcci allo sviluppo del software forniscono tutto questo. Tuttavia, non sono tutti realizzati con la stessa stoffa. A seconda delle circostanze, potrebbe essere necessario optare per approcci completamente diversi.
Questo dipende da molte variabili, come ad esempio:
- industria
- dimensione dell'organizzazione
- squadra e progetto
- periodo di tempo stimato
- e il budget stanziato.
La cosa comune è che ogni pezzo di software segue un determinato flusso di processo SDLC .
Questo quadro definisce le fasi necessarie per il completamento, le risorse necessarie e le attività da svolgere lungo il percorso.
Il processo SDLC è in definitiva un programma ben strutturato di ciò che deve essere realizzato. Decide il miglior approccio allo sviluppo del software entro i limiti di tempo e costi stimati.
L'SDLC è spesso considerato un sottoinsieme del termine più ampio "ciclo di vita dello sviluppo dei sistemi" - il quadro più antico per lo sviluppo di sistemi informativi.
È apparso nei primi anni '60 come risposta alla necessità di sistemi aziendali in grado di elaborare grandi quantità di dati. Il primo framework SDLC ben documentato è il paradigma di programmazione strutturata del 1969.
Negli anni '90 sono emerse diverse metodologie di sviluppo del software. Alcuni di questi sono la programmazione orientata agli oggetti, Scrum e Rational Unified Process. L'Agile Unified Process è emerso nel 2005.
Struttura del processo di sviluppo del software
Lo sviluppo di un prodotto software è una sequenza di fasi ben coordinate. A seconda dell'approccio di sviluppo selezionato, il numero delle fasi SDLC può variare.
Esamineremo i gusti a 5 e 7 stadi dell'SDLC.
La versione a 5 stadi
La versione in 5 fasi del processo di sviluppo del software funziona così:
Requisiti e analisi
Questa è una fase cruciale in cui l'interazione con il cliente e gli stakeholder è essenziale. Devono determinare il risultato atteso, ovvero l'obiettivo del prodotto software. Oltre alle esigenze del cliente, ci sono molti altri fattori da tenere in considerazione. Questi includono:
- Architettonico
- Funzionale
- Non funzionale
- Prestazione
- E quelli legati al design
Per completare con successo questa fase, viene sviluppato un documento chiamato "specifica dei requisiti software". È il fondamento di tutto ciò che avverrà da questo momento in poi.
Il successo di un progetto di sviluppo dipende molto dall'analisi dei requisiti. L'attore chiave in questa fase è il Business Analyst (BA). Gestisce tutta la comunicazione per raccogliere i requisiti aziendali, eseguire un'analisi approfondita e, soprattutto, tradurre tali informazioni tra le parti interessate e gli sviluppatori.
Design
La progettazione del software si basa su requisiti stabiliti. Qui è dove scopriamo l'ambiente di sviluppo, i linguaggi di programmazione, il framework architetturale, l'hardware, ecc. È anche il momento di determinare la strategia di test che verrà utilizzata. Il ruolo dell'architetto di sistema è qui essenziale. Devono considerare tutti i prerequisiti del documento "specifica dei requisiti" e fornire un documento di progettazione da utilizzare nella fase successiva.
Fase di codifica
Ormai, gli sviluppatori sono già ben consapevoli delle specifiche di progettazione. Il lavoro viene suddiviso in moduli e inizia la codifica. Anche il cliente dovrebbe essere coinvolto in questa fase. Si assicurano che tutte le misure siano prese affinché il prodotto soddisfi le loro aspettative. La produzione di un software funzionante è il risultato finale in questa fase.
test
Ora che abbiamo un prodotto funzionante, la fase di test può iniziare. A seconda della strategia di test delineata nel documento delle specifiche di progettazione, ciò può avvenire in vari modi.
Gli obiettivi, tuttavia, rimangono gli stessi. Innanzitutto, verifica che tutti i requisiti iniziali siano soddisfatti e, in secondo luogo, determina se sono presenti bug nel codice. I tester sono gli attori chiave qui. Il risultato dei loro sforzi è un software completamente funzionante, pronto per essere lanciato.
Manutenzione
Non esiste un prodotto software perfetto. Ecco perché il servizio clienti svolge un ruolo enorme nel processo di sviluppo. Una volta consegnati al cliente finale, emergono problemi in tempo reale che devono essere risolti. La manutenzione continua è un must se vuoi avere clienti soddisfatti.
La versione a 7 stadi
Ora, il sapore in 7 fasi di questo processo è leggermente diverso. Ha alcune fasi in più, che inevitabilmente cambiano anche la natura delle altre. Diamo un'occhiata:
Pianificazione
Un altro modo per avviare il processo SDLC è con una fase di pianificazione. Precede la raccolta dei requisiti e cerca principalmente feedback. Il contributo delle parti interessate, dei partner commerciali, degli ingegneri e dei clienti finali determina l'ambito del progetto. Questa fase risponde a domande come:
- Cosa si deve fare?
- Quali risorse sono necessarie?
- Quanto tempo ci vorrebbe?
- Quanto costerà?
Requisiti e analisi
Qui, gli analisti aziendali compilano un elenco di requisiti, in base al feedback del cliente. Quindi, li danno in pasto agli ingegneri del software. La comunicazione è essenziale.
Questa fase dovrebbe produrre un documento che delinea tutti i requisiti e funge da base per la fase successiva.
Progettazione di sistemi
I requisiti software ora trovano la loro strada nell'architettura del sistema. A questo punto possiamo determinare i mezzi funzionali e le operazioni di cui abbiamo bisogno per consegnare il progetto. Una volta preparato, il piano di progettazione viene presentato all'azienda. Incorporiamo tutti i feedback prima che inizi la programmazione effettiva.
Sviluppo software
Una volta che i requisiti sono chiari, gli ingegneri del software possono iniziare a lavorare. L'obiettivo in questa fase è un programma di lavoro, pronto per essere testato. Questo è anche l'inizio della produzione nel processo SDLC .
test
Il ruolo del team di assicurazione della qualità è verificare se i requisiti aziendali iniziali sono stati soddisfatti. Ispezionano la qualità del codice del software. I bug vengono corretti. C'è un intero elenco di metodi di test del software da seguire: funzionali, di integrazione, test delle prestazioni e così via.
I test di automazione sono un modo per automatizzare il processo di esecuzione di test ripetitivi tramite l'uso di software esterni, come Bamboo e Jenkins.
Implementazione
Una volta che il codice ha superato la fase di test, è pronto per essere distribuito nell'ambiente di produzione. A seconda della politica aziendale, questo processo potrebbe richiedere l'approvazione; tuttavia, nella maggior parte dei casi si tratta di un passaggio automatizzato nel ciclo di vita dello sviluppo del software .
Manutenzione e operazioni
Una volta che il software viene rilasciato in produzione, possono sorgere tutti i tipi di problemi. Attraverso il monitoraggio, possono essere identificati e risolti. Nuove funzionalità possono anche trovare la loro strada nel prodotto. Questa è la fase in cui le prestazioni possono essere misurate e migliorate.
Modelli SDLC
Il processo di sviluppo di un software è in gran parte universale. C'è spazio per aggiungere più fasi o semplificare quelle esistenti, ma è per lo più la stessa cosa.
Questo non è vero quando guardiamo ai metodi di sviluppo . Sebbene tutti osservino il processo, lo fanno in modi molto diversi.
Per scegliere quello più adatto, ci sono diversi fattori chiave da considerare. È sempre un equilibrio tra le esigenze del cliente ei dettagli pratici dello sviluppo del software. Ci sono fattori, come:
- la complessità del progetto
- la tecnologia selezionata
- e la dimensione della squadra.
Tutti questi determinano quale approccio potrebbe funzionare meglio. Faremo una panoramica di alcune delle metodologie SDLC più conosciute e utilizzate .
Cascata
Il modello a cascata è un processo di progettazione sequenziale lineare. È la più antica metodologia conosciuta utilizzata nell'ingegneria del software. Ha origine nell'industria manifatturiera e delle costruzioni negli anni '70.
L'avanzamento di un progetto di sviluppo che segue il modello a cascata va rigorosamente lungo il tubo SDLC. Una progressione è possibile solo quando la precedente fase del SDLC è stata completata con successo. Non esiste un processo definito per tornare indietro.
La cascata SDLC è un approccio molto strutturato. Funziona bene quando:
- i requisiti e le attività sono ben definiti e compresi
- la tecnologia è affidabile
- il team di supporto è disponibile e si stima un progetto a breve termine
Lo svantaggio del metodo è legato alla sua mancanza di flessibilità. Non è possibile implementare requisiti emergenti lungo il percorso. Poiché non viene prodotto alcun prodotto tangibile fino a una fase avanzata del processo di sviluppo, il rischio e l'incertezza sono elevati. Potrebbe rivelarsi un approccio molto costoso, se dovessi decidere di modificare al volo i requisiti o l'ambito del progetto.
Iterativo
Questo metodo si basa sulla nozione che il software può essere costruito attraverso una sequenza di cicli ripetitivi. Si inizia con un semplice insieme di requisiti. Ad ogni turno, gli ingegneri imparano dal comportamento delle versioni precedenti del software e sono in grado di migliorarne le funzionalità.
Il più grande vantaggio di questo approccio è che un prototipo funzionante del software viene prodotto dopo il completamento di ogni ciclo. Ciò semplifica l'implementazione delle modifiche e l'identificazione dei rischi. Il test SDLC è relativamente più semplice se eseguito ad ogni iterazione.
Gli svantaggi del modello iterativo di sviluppo del software si riducono alle risorse e ai costi. Aumentare il numero di iterazioni consuma più risorse. La scadenza per il completamento del progetto è indeterminata, così come il rischio. Pertanto, affinché questo metodo funzioni, sono necessari esperti altamente qualificati che eseguano l'analisi dei rischi.
La metodologia non è adatta per progetti più piccoli.
Agile
L'approccio Agile allo sviluppo del software è relativamente nuovo. Tuttavia, ha rapidamente guadagnato popolarità in tutto il mondo.
L' agile SDLC si basa sulla fornitura di piccole porzioni di software funzionante e sulla ricerca di un feedback immediato dal cliente. Al centro di questo approccio c'è la forte collaborazione e la comunicazione continua tra i team. Ogni ciclo dura da una a tre settimane, a quel punto il modulo/funzione di lavoro viene consegnato al cliente. Il processo quindi si ripete.
Il test viene eseguito ad ogni iterazione, il che consente di risolvere i problemi in anticipo. Incoraggia la dimostrazione della funzionalità del software e l'acquisizione di feedback. Il modello fornisce una chiara visibilità dei risultati. Sostiene il lavoro di squadra e offre flessibilità agli ingegneri del software.
Poiché non ci sono requisiti per una documentazione pesante, c'è il rischio di dipendenza da determinati individui. Questa può anche essere una sfida quando si tratta di trasferire le conoscenze a nuovi membri del team.
Pendere
La metodologia di sviluppo software Lean è considerata parte del metodo di sviluppo software Agile. Il Processo SDLC che segue la metodologia Lean si compone di sette principi:
- Eliminate lo spreco
- Amplifica l'apprendimento
- Decidi il più tardi possibile
- Consegna il più velocemente possibile
- Potenzia la squadra
- Costruisci integrità
- Guarda il quadro generale
La chiave per comprendere questo modello è attraverso questi principi. Ciò porterebbe a trasformarli in pratiche agili funzionali e alla loro implementazione nel processo lavorativo.
I principi lean sono organizzati attorno all'idea di produrre quanto più valore aggiunto possibile per gli utenti finali, ottimizzando la qualità, la velocità, i costi e le aspettative aziendali. A tal fine vengono eliminate alcune attività (documentazione pesante) e altre ottimizzate (frequenza delle riunioni).
DevOps
Il modello DevOps è parzialmente basato su Agile e Lean . È un approccio emergente che si lega a una stretta collaborazione tra lo sviluppo del software ei team operativi durante l'intero ciclo di vita dello sviluppo.
L'aspetto chiave di questa metodologia è l'enfasi sull'automazione del processo di sviluppo. L'obiettivo finale è abbreviare l'SDLC e, allo stesso tempo, fornire risultati innovativi e di alta qualità, in linea con i requisiti aziendali.
Con questo approccio, gli sviluppatori, i team operativi e i membri del controllo qualità sono tutti sulla stessa pagina. Usano gli stessi strumenti e seguono gli stessi processi. Questo migliora la comunicazione e porta a risultati migliori e più tempestivi.
Spirale
Questa è una combinazione di sviluppo iterativo e alcune delle nozioni del modello a cascata. Consente rilasci parziali del software ad ogni ciclo iterativo.
Le quattro fasi e le ripetizioni sono chiamate “spirali”. Le Fasi SDLC sono: pianificazione e raccolta dei requisiti; design; sviluppo e test.
L'analisi dei rischi ha un ruolo fondamentale. Ad ogni spirale, viene eseguita un'analisi dei rischi in modo da poter identificare eventuali rischi potenziali, evitarli o superarli. È adatto a progetti di grandi dimensioni, anche se la gestione e il processo stesso possono essere complessi.
Incartare
La scelta del giusto approccio allo sviluppo del software richiede una ricerca significativa. Definendo l'ambito, i requisiti e l'obiettivo del tuo progetto, puoi determinare le fasi SDLC a cui il tuo prodotto dovrebbe essere sottoposto.
La tua metodologia di scelta non è solo un processo per lo sviluppo di un prodotto funzionale. È un modo per allineare i valori della tua organizzazione e dei tuoi team per creare un ambiente di lavoro armonioso.
FAQ
A seconda della metodologia scelta, il software attraverserà un numero variabile di fasi. Le seguenti attività dovrebbero farne parte in ogni caso:
- Pianificazione, raccolta dei requisiti e analisi
- Concordare un progetto o un'architettura di sistema
- Generazione del codice
- Testare il codice prodotto
- Distribuzione del codice in un ambiente di produzione
- Manutenzione e miglioramento continui
piallatura; Requisiti e analisi; Design; Sviluppo; test; Implementazione; Manutenzione.
Dipende dal tuo progetto! La tua analisi del settore, l'obiettivo del progetto, le capacità e le risorse disponibili, le metriche di tempi e costi sarebbero i fattori guida nella selezione della migliore metodologia SDLC.