Quali sono le differenze tra prototipi usa e getta e prototipi evolutivi?


12

Ho note su vari metodi di prototipazione e ho trovato diverse definizioni su Internet, ma vorrei confermare ciò che ho appreso.

Capisco che la prototipazione usa e getta è sviluppata da uno schema di una specifica, vari prototipi vengono consegnati e modificati fino a quando il cliente è soddisfatto della sua funzionalità.

Dall'altro, i prototipi evolutivi sono costruiti sulla base dei requisiti di base raccolti dagli utenti finali. Un prototipo iniziale viene presentato agli utenti e valutato. Il prototipo viene modificato in base al feedback fino a quando il client non è soddisfatto.

È corretto? Esistono definizioni migliori di prototipi evolutivi e usa e getta?


2
Più spesso allora non sembra che il prototipo si evolva nel prodotto finito. Non avevo mai sentito parlare prima del lancio rispetto a quello evolutivo.
itsmatt,

1
Ciao Mifas, mi dispiace che questo sia stato migrato, ma se hai ottenuto le tue definizioni dal web, chiedere al web di confermare se le definizioni sono corrette è circolare e non proprio sull'argomento qui.

1
@MarkTrapp Se rimuovessimo le definizioni, potremmo riaprire? Entrambe le definizioni nel post e la risposta esistente sono errate in termini di definizione formale della frase. Ci sono duplicati su Stack Overflow, ma nessuno che io possa trovare qui e penso che sia essenziale, per lo meno, non mettere più informazioni false su Internet.
Thomas Owens

@Mifas Se rimuovi le definizioni, non c'è nessun corpo alla domanda, vero? Se Mifas dovesse seguire la domanda qui e aggiornarla per spiegare cosa sta cercando di fare, questo lo sta facendo chiedere queste definizioni, sarebbe una domanda perfettamente valida.

1
@Mark Fantastic. Grazie. Sto lavorando alla mia risposta ora.
Thomas Owens

Risposte:


11

Entrambi i metodi di prototipazione sono usati quando c'è qualche aspetto del sistema che non capisci del tutto. Tuttavia, la differenza fondamentale è la metodologia del ciclo di vita che si utilizza. Con la prototipazione evolutiva, in genere capisci alcuni aspetti del sistema e non sei sicuro di altri. Nella prototipazione usa e getta, hai una generale mancanza di comprensione che devi completare prima di poter costruire un sistema pronto per la produzione.

Si noti che esistono molti tipi di prototipazione usa e getta e nessuno dei due è limitato all'intero sistema. Ad esempio, l'utilizzo di schizzi su carta o lavagna di un'interfaccia utente può essere considerato la prototipazione usa e getta. Sì, potresti passare attraverso diverse iterazioni e buttare via un progetto precedente, ma non utilizzerai nemmeno il prototipo finale nel sistema (non è fisicamente possibile, per uno).

Se sei interessato ad argomenti di ingegneria generale del software e all'ampiezza di SE, ti consiglio vivamente di prendere il libro di Sommerville che cito. È davvero buono per coprire l'ampiezza degli argomenti. Se sei più interessato ai modelli e alle metodologie di processo e al modo in cui puoi applicarli a vari progetti, consiglierei il libro McConnell: ha un intero capitolo dedicato alla prototipazione evolutiva e un altro capitolo dedicato alla prototipazione usa e getta.

Ho anche dato una rapida occhiata all'articolo di Wikipedia sulla prototipazione del software . Alcune parti sono un po 'strane (almeno sulla mia lettura veloce), ma non sembra esserci nulla con cui non sono assolutamente d'accordo. In parte è un po 'focalizzato su un aspetto particolare, ma non è effettivamente sbagliato che io veda. Preferisco le definizioni seguenti, ma potrebbe essere una lettura interessante su vari tipi di prototipazione.


Prototipazione evolutiva

Sviluppo esplorativo in cui l'obiettivo del processo è lavorare con il cliente per esplorare le loro esigenze e fornire un sistema finale. Lo sviluppo inizia con le parti del sistema che sono comprese. Il sistema si evolve aggiungendo nuove funzionalità proposte dal cliente. (Sommerville: Ingegneria del software, ottava edizione)


Il prototipo evolutivo è un modello del ciclo di vita in cui il sistema viene sviluppato in incrementi in modo da poter essere facilmente modificato in risposta al feedback dell'utente finale e del cliente. La maggior parte degli sforzi di prototipazione evolutiva inizia prototipando l'interfaccia utente e quindi evolvendo il sistema completo da quello, ma la prototipazione può iniziare con qualsiasi area ad alto rischio. Il prototipo evolutivo non è lo stesso del prototipo usa e getta e fare la scelta giusta se sviluppare un prototipo evolutivo o un prototipo usa e getta è la chiave del successo. Altre chiavi del successo includono l'utilizzo di sviluppatori esperti, la gestione delle aspettative di pianificazione e budget e la gestione dell'attività di prototipazione stessa. (McConnell: Rapid Development: Pianificazioni di software per domare Wild)


Prototipazione usa e getta:

La prototipazione usa e getta è dove l'obiettivo del processo di sviluppo evolutivo è comprendere i requisiti del cliente e quindi sviluppare una migliore definizione dei requisiti per il sistema. Il prototipo si concentra sulla sperimentazione delle esigenze del cliente che sono capite male. (Sommerville: Ingegneria del software, ottava edizione)


Con Throwaway Prototyping, il codice viene sviluppato per esplorare i fattori critici per il successo del sistema, quindi il codice viene eliminato. L'implementazione del prototipo utilizza linguaggi di programmazione o pratiche di sviluppo o entrambi molto più veloci della lingua e delle pratiche target. L'interfaccia utente è prototipata molto più comunemente rispetto a qualsiasi altra parte del sistema, ma anche altre parti di alcuni sistemi possono trarre vantaggio dalla prototipazione. Se utilizzata come ausilio per la specifica dei requisiti, la pratica del prototipo Throwaway può accelerare i progetti basati su modelli di ciclo di vita tradizionali, come i progetti DoD. Può essere avviato a livello gestionale o tecnico. (McConnell: Rapid Development: Pianificazioni di software per domare Wild)


-2

Prototipazione usa e getta: in questo modo viene sviluppata una piccola parte del sistema, che viene poi fornita ai clienti e agli utenti finali per provare a valutarlo. L'utente fornisce il feedback che può essere rapidamente integrato nello sviluppo del sistema principale

Prototipazione evolutiva - è un modello del ciclo di vita in cui il sistema è sviluppato in incrementi in modo che possa essere facilmente modificato in risposta agli utenti finali e al feedback dei clienti


1
Questa domanda è stata posta nel 2011. La tua risposta non aggiunge molto alle risposte già fornite.
Jan Doggen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.