SDLC - Panoramica

Software Development Life Cycle (SDLC) è un processo utilizzato dall'industria del software per progettare, sviluppare e testare software di alta qualità. L'SDLC mira a produrre un software di alta qualità che soddisfi o superi le aspettative dei clienti, raggiunga il completamento entro tempi e stime dei costi.

  • SDLC è l'acronimo di Software Development Life Cycle.

  • Viene anche chiamato Processo di sviluppo software.

  • SDLC è un framework che definisce le attività eseguite in ogni fase del processo di sviluppo del software.

  • ISO / IEC 12207 è uno standard internazionale per i processi del ciclo di vita del software. Vuole essere lo standard che definisce tutte le attività richieste per lo sviluppo e la manutenzione del software.

Cos'è SDLC?

SDLC è un processo seguito per un progetto software, all'interno di un'organizzazione software. Consiste in un piano dettagliato che descrive come sviluppare, mantenere, sostituire e alterare o migliorare software specifico. Il ciclo di vita definisce una metodologia per migliorare la qualità del software e il processo di sviluppo complessivo.

La figura seguente è una rappresentazione grafica delle varie fasi di un tipico SDLC.

Un tipico ciclo di vita dello sviluppo del software è costituito dalle seguenti fasi:

Fase 1: pianificazione e analisi dei requisiti

L'analisi dei requisiti è la fase più importante e fondamentale nell'SDLC. Viene eseguita dai membri senior del team con input dal cliente, dal reparto vendite, indagini di mercato ed esperti di dominio nel settore. Queste informazioni vengono quindi utilizzate per pianificare l'approccio di base del progetto e per condurre uno studio di fattibilità del prodotto nelle aree economiche, operative e tecniche.

Anche la pianificazione per i requisiti di garanzia della qualità e l'identificazione dei rischi associati al progetto viene eseguita nella fase di pianificazione. Il risultato dello studio di fattibilità tecnica è quello di definire i vari approcci tecnici che possono essere seguiti per implementare con successo il progetto con rischi minimi.

Fase 2: definizione dei requisiti

Una volta eseguita l'analisi dei requisiti, il passaggio successivo consiste nel definire e documentare chiaramente i requisiti del prodotto e farli approvare dal cliente o dagli analisti di mercato. Questo viene fatto tramite un fileSRS (Software Requirement Specification) documento che consiste in tutti i requisiti del prodotto da progettare e sviluppare durante il ciclo di vita del progetto.

Fase 3: progettazione dell'architettura del prodotto

SRS è il riferimento per gli architetti di prodotto che escogitano la migliore architettura per il prodotto da sviluppare. Sulla base dei requisiti specificati in SRS, di solito più di un approccio di progettazione per l'architettura del prodotto viene proposto e documentato in un DDS - Design Document Specification.

Questo DDS viene esaminato da tutte le parti interessate importanti e sulla base di vari parametri come valutazione del rischio, robustezza del prodotto, modularità del design, budget e vincoli di tempo, viene selezionato il miglior approccio di progettazione per il prodotto.

Un approccio progettuale definisce chiaramente tutti i moduli architettonici del prodotto insieme alla sua comunicazione e rappresentazione del flusso di dati con i moduli esterni e di terze parti (se presenti). Il design interno di tutti i moduli dell'architettura proposta dovrebbe essere chiaramente definito con il più piccolo dei dettagli in DDS.

Fase 4: creazione o sviluppo del prodotto

In questa fase di SDLC inizia lo sviluppo vero e proprio e il prodotto viene costruito. Il codice di programmazione viene generato come da DDS durante questa fase. Se la progettazione viene eseguita in modo dettagliato e organizzato, la generazione del codice può essere eseguita senza troppi problemi.

Gli sviluppatori devono seguire le linee guida di codifica definite dalla loro organizzazione e strumenti di programmazione come compilatori, interpreti, debugger, ecc. Vengono utilizzati per generare il codice. Per la codifica vengono utilizzati diversi linguaggi di programmazione di alto livello come C, C ++, Pascal, Java e PHP. Il linguaggio di programmazione viene scelto rispetto al tipo di software che si sta sviluppando.

Fase 5: test del prodotto

Questa fase è solitamente un sottoinsieme di tutte le fasi poiché nei moderni modelli SDLC, le attività di test sono per lo più coinvolte in tutte le fasi dell'SDLC. Tuttavia, questa fase si riferisce all'unica fase di test del prodotto in cui i difetti del prodotto vengono segnalati, tracciati, riparati e testati nuovamente, fino a quando il prodotto non raggiunge gli standard di qualità definiti nell'SRS.

Fase 6: distribuzione nel mercato e manutenzione

Una volta che il prodotto è stato testato e pronto per essere distribuito, viene rilasciato formalmente nel mercato appropriato. A volte la distribuzione del prodotto avviene in fasi secondo la strategia aziendale di tale organizzazione. Il prodotto può essere prima rilasciato in un segmento limitato e testato nell'ambiente di lavoro reale (UAT - Test di accettazione dell'utente).

Quindi, in base al feedback, il prodotto può essere rilasciato così com'è o con miglioramenti suggeriti nel segmento di mercato di destinazione. Dopo che il prodotto è stato immesso sul mercato, la sua manutenzione viene eseguita per la base di clienti esistente.

Modelli SDLC

Esistono vari modelli del ciclo di vita dello sviluppo del software definiti e progettati che vengono seguiti durante il processo di sviluppo del software. Questi modelli sono indicati anche come modelli di processo di sviluppo software ". Ogni modello di processo segue una serie di passaggi unici per il suo tipo per garantire il successo nel processo di sviluppo software.

Di seguito sono riportati i modelli SDLC più importanti e popolari seguiti nel settore:

  • Modello a cascata
  • Modello iterativo
  • Modello a spirale
  • V-Model
  • Modello Big Bang

Altre metodologie correlate sono Agile Model, RAD Model, Rapid Application Development e Prototyping Models.