Ciclo di vita dello sviluppo del software
Il ciclo di vita dello sviluppo del software, in breve SDLC, è una sequenza ben definita e strutturata di fasi dell'ingegneria del software per sviluppare il prodotto software previsto.
Attività SDLC
SDLC fornisce una serie di passaggi da seguire per progettare e sviluppare un prodotto software in modo efficiente. Il framework SDLC include i seguenti passaggi:
Comunicazione
Questo è il primo passaggio in cui l'utente avvia la richiesta di un prodotto software desiderato. Contatta il fornitore di servizi e cerca di negoziare i termini. Inoltra la sua richiesta per iscritto all'organizzazione che fornisce il servizio.
Raccolta dei requisiti
In questo passaggio il team di sviluppo software lavora per portare avanti il progetto. Il team tiene discussioni con varie parti interessate dal dominio del problema e cerca di fornire quante più informazioni possibili sulle loro esigenze. I requisiti sono contemplati e separati in requisiti dell'utente, requisiti di sistema e requisiti funzionali. I requisiti vengono raccolti utilizzando una serie di pratiche fornite:
- studiare il sistema e il software esistenti o obsoleti,
- condurre interviste a utenti e sviluppatori,
- riferendosi al database o
- raccogliere risposte dai questionari.
Studio di fattibilità
Dopo la raccolta dei requisiti, il team presenta un piano approssimativo del processo software. In questa fase il team analizza se un software può essere realizzato per soddisfare tutti i requisiti dell'utente e se esiste la possibilità che il software non sia più utile. Si scopre se il progetto è finanziariamente, praticamente e tecnologicamente fattibile per l'organizzazione. Sono disponibili molti algoritmi che aiutano gli sviluppatori a concludere la fattibilità di un progetto software.
Analisi del sistema
A questo punto gli sviluppatori decidono una roadmap del loro piano e cercano di far apparire il miglior modello di software adatto al progetto. L'analisi del sistema include la comprensione dei limiti del prodotto software, i problemi relativi al sistema di apprendimento o le modifiche da apportare in anticipo ai sistemi esistenti, l'identificazione e la gestione dell'impatto del progetto sull'organizzazione e sul personale, ecc. Il team di progetto analizza l'ambito del progetto e pianifica il programma e risorse di conseguenza.
Progettazione software
Il passaggio successivo consiste nel ridurre l'intera conoscenza dei requisiti e dell'analisi sulla scrivania e progettare il prodotto software. Gli input degli utenti e le informazioni raccolte nella fase di raccolta dei requisiti sono gli input di questo passaggio. Il risultato di questo passaggio si presenta sotto forma di due modelli; progettazione logica e progettazione fisica. Gli ingegneri producono metadati e dizionari di dati, diagrammi logici, diagrammi di flusso di dati e in alcuni casi pseudo codici.
Codifica
Questo passaggio è noto anche come fase di programmazione. L'implementazione della progettazione del software inizia in termini di scrittura del codice del programma nel linguaggio di programmazione appropriato e sviluppo efficiente di programmi eseguibili privi di errori.
Test
Una stima dice che dovrebbe essere testato il 50% dell'intero processo di sviluppo del software. Gli errori possono rovinare il software dal livello critico alla sua rimozione. Il test del software viene eseguito durante la codifica da parte degli sviluppatori e il test approfondito viene condotto da esperti di test a vari livelli di codice come test del modulo, test del programma, test del prodotto, test interno e test del prodotto presso l'utente. La scoperta precoce degli errori e il loro rimedio è la chiave per un software affidabile.
Integrazione
Potrebbe essere necessario integrare il software con le librerie, i database e altri programmi. Questa fase dell'SDLC è coinvolta nell'integrazione del software con entità del mondo esterno.
Implementazione
Ciò significa installare il software sulle macchine degli utenti. A volte, il software necessita di configurazioni post-installazione da parte dell'utente. Il software viene testato per la portabilità e l'adattabilità e i problemi relativi all'integrazione vengono risolti durante l'implementazione.
Funzionamento e manutenzione
Questa fase conferma il funzionamento del software in termini di maggiore efficienza e minori errori. Se necessario, gli utenti vengono formati o aiutati con la documentazione su come utilizzare il software e su come mantenerlo operativo. Il software viene mantenuto tempestivamente aggiornando il codice in base ai cambiamenti in atto nell'ambiente o nella tecnologia dell'utente finale. Questa fase può affrontare sfide da bug nascosti e problemi non identificati del mondo reale.
Disposizione
Con il passare del tempo, il software potrebbe diminuire sul fronte delle prestazioni. Potrebbe diventare completamente obsoleto o potrebbe richiedere un aggiornamento intenso. Da qui nasce una pressante necessità di eliminare una parte importante del sistema. Questa fase include l'archiviazione dei dati e dei componenti software richiesti, la chiusura del sistema, la pianificazione dell'attività di smaltimento e la chiusura del sistema all'ora di fine sistema appropriata.
Paradigma dello sviluppo del software
Il paradigma di sviluppo del software aiuta lo sviluppatore a selezionare una strategia per sviluppare il software. Un paradigma di sviluppo software ha un proprio insieme di strumenti, metodi e procedure, che sono espressi chiaramente e definiscono il ciclo di vita dello sviluppo del software. Alcuni paradigmi di sviluppo software o modelli di processo sono definiti come segue:
Modello a cascata
Il modello a cascata è il modello più semplice del paradigma di sviluppo del software. Dice che tutte le fasi dell'SDLC funzioneranno una dopo l'altra in modo lineare. Cioè, quando la prima fase è terminata, inizierà solo la seconda e così via.
Questo modello presuppone che tutto sia svolto e si sia svolto perfettamente come pianificato nella fase precedente e non è necessario pensare ai problemi passati che potrebbero sorgere nella fase successiva. Questo modello non funziona correttamente se nel passaggio precedente sono rimasti alcuni problemi. La natura sequenziale del modello non ci consente di tornare indietro e annullare o ripetere le nostre azioni.
Questo modello è più adatto quando gli sviluppatori hanno già progettato e sviluppato software simile in passato e sono a conoscenza di tutti i suoi domini.
Modello iterativo
Questo modello guida il processo di sviluppo del software in iterazioni. Proietta il processo di sviluppo in modo ciclico ripetendo ogni passaggio dopo ogni ciclo del processo SDLC.
Il software viene prima sviluppato su scala molto piccola e vengono seguiti tutti i passaggi che vengono presi in considerazione. Quindi, ad ogni iterazione successiva, più funzionalità e moduli vengono progettati, codificati, testati e aggiunti al software. Ogni ciclo produce un software, che è completo in sé e ha più caratteristiche e capacità di quello del precedente.
Dopo ogni iterazione, il team di gestione può lavorare sulla gestione del rischio e prepararsi per l'iterazione successiva. Poiché un ciclo include una piccola porzione dell'intero processo software, è più facile gestire il processo di sviluppo ma consuma più risorse.
Modello a spirale
Il modello a spirale è una combinazione di entrambi, il modello iterativo e uno del modello SDLC. Può essere visto come se si scelga un modello SDLC e lo si combini con un processo ciclico (modello iterativo).
Questo modello considera il rischio, che spesso non viene notato dalla maggior parte degli altri modelli. Il modello inizia con la determinazione degli obiettivi e dei vincoli del software all'inizio di un'iterazione. La fase successiva è la prototipazione del software. Ciò include l'analisi del rischio. Quindi un modello SDLC standard viene utilizzato per creare il software. Nella quarta fase viene preparato il piano della prossima iterazione.
V - modello
Il principale svantaggio del modello a cascata è che si passa alla fase successiva solo quando quella precedente è terminata e non c'era alcuna possibilità di tornare indietro se si riscontrano problemi nelle fasi successive. V-Model fornisce mezzi per testare il software in ogni fase in modo inverso.
In ogni fase, vengono creati piani di test e casi di test per verificare e convalidare il prodotto in base ai requisiti di quella fase. Ad esempio, nella fase di raccolta dei requisiti il team di test prepara tutti i casi di test in corrispondenza dei requisiti. Successivamente, quando il prodotto viene sviluppato ed è pronto per il test, i casi di test di questa fase verificano la validità del software rispetto ai requisiti in questa fase.
Ciò fa sì che la verifica e la convalida procedano in parallelo. Questo modello è noto anche come modello di verifica e convalida.
Modello Big Bang
Questo modello è il modello più semplice nella sua forma. Richiede poca pianificazione, molta programmazione e molti fondi. Questo modello è concettualizzato attorno al big bang dell'universo. Come dicono gli scienziati, dopo il big bang molte galassie, pianeti e stelle si sono evoluti come un evento. Allo stesso modo, se mettiamo insieme un sacco di programmazione e fondi, potresti ottenere il miglior prodotto software.
Per questo modello è richiesta una pianificazione minima. Non segue alcun processo, oa volte il cliente non è sicuro dei requisiti e delle esigenze future. Quindi i requisiti di input sono arbitrari.
Questo modello non è adatto per grandi progetti software, ma buono per l'apprendimento e la sperimentazione.
Per una lettura approfondita su SDLC e sui suoi vari modelli, clicca qui.