SDLC - Modello prototipo software
Il Software Prototyping si riferisce alla creazione di prototipi di applicazioni software che mostrano la funzionalità del prodotto in fase di sviluppo, ma potrebbero non contenere la logica esatta del software originale.
La prototipazione software sta diventando molto popolare come modello di sviluppo software, poiché consente di comprendere i requisiti dei clienti in una fase iniziale di sviluppo. Aiuta a ottenere un feedback prezioso dal cliente e aiuta i progettisti di software e gli sviluppatori a capire cosa ci si aspetta esattamente dal prodotto in fase di sviluppo.
Cos'è la prototipazione software?
Il prototipo è un modello funzionante di software con alcune funzionalità limitate. Il prototipo non contiene sempre la logica esatta utilizzata nell'applicazione software effettiva ed è uno sforzo aggiuntivo da considerare nella stima dello sforzo.
La prototipazione viene utilizzata per consentire agli utenti di valutare le proposte degli sviluppatori e provarle prima dell'implementazione. Aiuta anche a comprendere i requisiti che sono specifici dell'utente e che potrebbero non essere stati considerati dallo sviluppatore durante la progettazione del prodotto.
Di seguito è illustrato un approccio graduale per progettare un prototipo di software.
Identificazione dei requisiti di base
Questo passaggio implica la comprensione dei requisiti di base del prodotto, soprattutto in termini di interfaccia utente. I dettagli più complessi del design interno e gli aspetti esterni come le prestazioni e la sicurezza possono essere ignorati in questa fase.
Sviluppo del prototipo iniziale
Il prototipo iniziale viene sviluppato in questa fase, in cui vengono presentati i requisiti di base e vengono fornite le interfacce utente. Queste funzionalità potrebbero non funzionare esattamente allo stesso modo internamente nel software effettivamente sviluppato. Mentre, le soluzioni alternative vengono utilizzate per dare lo stesso aspetto e sensazione al cliente nel prototipo sviluppato.
Revisione del prototipo
Il prototipo sviluppato viene quindi presentato al cliente e agli altri importanti stakeholder del progetto. Il feedback viene raccolto in modo organizzato e utilizzato per ulteriori miglioramenti nel prodotto in fase di sviluppo.
Rivedi e migliora il prototipo
Il feedback ei commenti di revisione vengono discussi durante questa fase e alcune negoziazioni avvengono con il cliente in base a fattori quali: vincoli di tempo e budget e fattibilità tecnica dell'attuazione effettiva. Le modifiche accettate vengono nuovamente incorporate nel nuovo prototipo sviluppato e il ciclo si ripete fino a soddisfare le aspettative del cliente.
I prototipi possono avere dimensioni orizzontali o verticali. Un prototipo orizzontale mostra l'interfaccia utente del prodotto e offre una visione più ampia dell'intero sistema, senza concentrarsi sulle funzioni interne. Un prototipo verticale sull'altro lato è un'elaborazione dettagliata di una funzione specifica o di un sottosistema nel prodotto.
Lo scopo del prototipo orizzontale e verticale è diverso. I prototipi orizzontali vengono utilizzati per ottenere maggiori informazioni sul livello di interfaccia utente e sui requisiti aziendali. Può anche essere presentato nelle demo di vendita per ottenere affari nel mercato. I prototipi verticali sono di natura tecnica e vengono utilizzati per ottenere dettagli sull'esatto funzionamento dei sottosistemi. Ad esempio, i requisiti del database, l'interazione e l'elaborazione dei dati vengono caricati in un determinato sottosistema.
Prototipazione software - Tipi
Esistono diversi tipi di prototipi di software utilizzati nel settore. Di seguito sono riportati i principali tipi di prototipazione software ampiamente utilizzati:
Usa e getta / Prototipazione rapida
La prototipazione usa e getta è anche chiamata prototipazione rapida o chiusa. Questo tipo di prototipazione utilizza pochissimi sforzi con un'analisi dei requisiti minimi per costruire un prototipo. Una volta compresi i requisiti effettivi, il prototipo viene scartato e il sistema effettivo viene sviluppato con una comprensione molto chiara dei requisiti dell'utente.
Prototipazione evolutiva
La prototipazione evolutiva, chiamata anche prototipazione breadboard, si basa sulla costruzione di prototipi funzionali effettivi con funzionalità minime all'inizio. Il prototipo sviluppato costituisce il cuore dei futuri prototipi su cui è costruito l'intero sistema. Utilizzando la prototipazione evolutiva, i requisiti ben compresi sono inclusi nel prototipo e i requisiti vengono aggiunti come e quando vengono compresi.
Prototipazione incrementale
La prototipazione incrementale si riferisce alla costruzione di più prototipi funzionali dei vari sottosistemi e quindi all'integrazione di tutti i prototipi disponibili per formare un sistema completo.
Prototipazione estrema
La prototipazione estrema viene utilizzata nel dominio dello sviluppo web. Consiste di tre fasi sequenziali. Innanzitutto, un prototipo di base con tutte le pagine esistenti viene presentato nel formato HTML. Quindi l'elaborazione dei dati viene simulata utilizzando un livello di servizi prototipo. Infine, i servizi vengono implementati e integrati al prototipo finale. Questo processo è chiamato Extreme Prototyping utilizzato per attirare l'attenzione sulla seconda fase del processo, in cui viene sviluppata un'interfaccia utente completamente funzionale con pochissimo riguardo ai servizi effettivi.
Prototipazione software - Applicazione
La prototipazione software è molto utile nello sviluppo di sistemi con un alto livello di interazioni utente come i sistemi online. I sistemi che richiedono agli utenti di compilare moduli o passare attraverso varie schermate prima che i dati vengano elaborati possono utilizzare la prototipazione in modo molto efficace per dare l'aspetto esatto anche prima che il software reale venga sviluppato.
Il software che comporta un'eccessiva elaborazione dei dati e la maggior parte delle funzionalità è interna con un'interfaccia utente molto ridotta di solito non beneficia della prototipazione. Lo sviluppo del prototipo potrebbe essere un sovraccarico aggiuntivo in tali progetti e potrebbe richiedere molti sforzi aggiuntivi.
Prototipazione software - Pro e contro
La prototipazione del software viene utilizzata nei casi tipici e la decisione dovrebbe essere presa con molta attenzione in modo che gli sforzi spesi nella costruzione del prototipo aggiungano un valore considerevole al software finale sviluppato. Il modello ha i suoi pro e contro discussi come segue.
I vantaggi del modello di prototipazione sono i seguenti:
Maggiore coinvolgimento dell'utente nel prodotto anche prima della sua implementazione.
Poiché viene visualizzato un modello funzionante del sistema, gli utenti ottengono una migliore comprensione del sistema in fase di sviluppo.
Riduce tempi e costi poiché i difetti possono essere rilevati molto prima.
È disponibile un feedback più rapido degli utenti che porta a soluzioni migliori.
Le funzionalità mancanti possono essere identificate facilmente.
È possibile identificare funzioni confuse o difficili.
Gli svantaggi del modello di prototipazione sono i seguenti:
Rischio di un'analisi dei requisiti insufficiente a causa dell'eccessiva dipendenza dal prototipo.
Gli utenti possono confondersi nei prototipi e nei sistemi reali.
In pratica, questa metodologia può aumentare la complessità del sistema poiché l'ambito del sistema può espandersi oltre i piani originali.
Gli sviluppatori possono provare a riutilizzare i prototipi esistenti per costruire il sistema reale, anche quando non è tecnicamente fattibile.
Lo sforzo investito nella costruzione di prototipi potrebbe essere eccessivo se non viene monitorato adeguatamente.