Tutti i passi necessari a creare un software in maniera professionale
Lo sviluppo di un software può essere suddiviso in varie fasi comuni e collegate fra loro:
È la fase in cui vengono individuate le specifiche, i vincoli e le funzionalità che il software dovrà avere.
Si può differenziare fra:
I passi per l'individualizzazione dei requisiti sono:
I requisiti si dividono in:
Viene stabilita una struttura del progetto in grado di soddisfare i requisiti.
Dopo averli individuati, li si suddivide definendo dei sottosistemi atomici quanto più indipendenti possibili. Si stabiliscono le interfacce e le interazioni che avverranno fra i sottosistemi.
Nella fase implementativa i modelli del progetto sono tradotti in un programma.
La scrittura di codice potrebbe introdurre errore implementativi.
Per rimuoverli in maniera sistematica, è necessario localizzare il bug, correggere il codice e verificarne la correttezza.
Questo processo può essere automatizzato con gli strumenti di testing.
Bisogna assicurarsi che il software prodotto è conforme alle specifiche e soddisfi le aspettative del cliente.
Si utilizzano processi di revisione e test.
I test possono essere:
Loading diagram...
Uno dei primi processi di sviluppo software, anni '70.
Il focus è sull'ottenere un prodotto completo.
Tutti i passaggi si eseguono in sequenza e in maniera contigua.
Loading diagram...
Al contrario del modello a cascata, il modello evolutivo prevede che il software venga sviluppato in maniera incrementale, con una stretta collaborazione con il cliente.
Vi sono due approcci:
Gli sviluppatori lavorano a stretto contatto con il cliente.
Dai requisiti iniziali, comunque chiari, si prosegue aggiungendo la nuove caratteristiche che il cliente definisce man mano.
Si sviluppa il software in maniera incrementale, senza una progettazione totale.
Si parte da una prima versione e vi si aggiungono features fino a quando il cliente non è soddisfatto.
Loading diagram...
Nel processo di sviluppo Agile ci si concentra su auto-organizzazione, collaborazione e comunicazione fra i membri del team.
Vengono privilegiati:
Tutti i processi di sviluppo che intendono essere Agile devono:
L'XP è un processo di sviluppo Agile che si concentra sulla consegna di software con un numero di funzionalità che viene incrementato con ogni iterazione.
La metodologia Scrum è un framework Agile per lo sviluppo di prodotti complessi.
Nella metodologia Scrum, c'è un Product owner che elenca il lavoro da svolgere tramite un Product backlog. Lo Scrum team effettua una parte del lavoro, incrementando le funzionalità del prodotto, in uno sprint. Ci si confronta quanto più spesso possibile per valutare i progressi e aggiornare il backlog, stabilendo i prossimi sprint.
Tutti i membri del team devono avere una visione chiara del prodotto e del lavoro da svolgere. Le decisioni importanti sono prese sulla base di tre artefatti: Product backlog, Sprint backlog e Incremento.
I progressi vengono valutati in maniera costante durante il corrispettivo evento, per assicurarsi che il prodotto stia procedendo nella direzione giusta.
Se si incontra una criticità nello sviluppo, il processo o ciò che è prodotto deve essere aggiustato. L’aggiustamento si attua subito per evitare ulteriori divergenze