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

12

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

Comprendo che la prototipazione "a perdere" viene sviluppata da un profilo di una specifica, i vari prototipi vengono consegnati e modificati finché il cliente non è soddisfatto della sua funzionalità.

Dall'altro e prototipi evolutivi sono costruiti partendo dai 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 cliente non è soddisfatto.

È corretto? Ci sono definizioni migliori di prototipo di lancio e di evoluzione?

    
posta Thomas Owens 19.09.2011 - 18:43
fonte

2 risposte

11

Entrambi i metodi di prototipazione sono usati quando c'è qualche aspetto del sistema che non capisci del tutto. Tuttavia, la differenza principale è la metodologia del ciclo di vita che si utilizza. Con la prototipazione evolutiva, di solito capisci alcuni aspetti del sistema e non sei sicuro degli 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 ci sono 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 come prototipo di lancio. 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 esempio).

Se ti interessano argomenti di ingegneria generale del software e l'ampiezza di SE, ti consiglio caldamente di prendere in mano il libro di Sommerville che cito. E 'davvero buono per coprire l'ampiezza degli argomenti. Se sei più interessato ai modelli e alle metodologie di processo e come puoi applicarli a vari progetti, ti consiglio il libro di 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 al articolo di Wikipedia sulla prototipazione del software . Alcune parti di esso sono un po 'strane (almeno nella mia lettura veloce), ma non sembra esserci nulla di cui io sia completamente in disaccordo. Alcuni di questi sono un po 'concentrati su un aspetto particolare, ma non è sbagliato di fatto che io veda. Preferisco le definizioni di seguito, ma potrebbe essere una lettura interessante su vari tipi di prototipazione.

Prototipazione evolutiva

Exploratory development where the objective of the process is to work with the customer to explore their requirements and deliver a final system. The development starts with the parts of the system that are understood. The system evolves by adding new features proposed by the customer. (Sommerville: Software Engineering, 8th Edition)

Evolutionary Prototyping is a lifecycle model in which the system is developed in increments so that it can readily be modified in response to end-user and customer feedback. Most evolutionary-prototyping efforts begin by prototyping the user interface and then evolving the completed system from that, but prototyping can start with any high-risk area. Evolutionary Prototyping is not the same as Throwaway Prototyping, and making the right choice about whether to develop an evolutionary prototype or a throwaway prototype is one key to success. Other keys to success include using experienced developers, managing schedule and budget expectations, and managing the prototyping activity itself. (McConnell: Rapid Development: Taming Wild Software Schedules)

Prototipazione Throwaway:

Throwaway prototyping is where the objective of the evolutionary development process is to understand the customer's requirements and hence develop a better requirements definition for the system. The prototype concentrates on experimenting with the customer requirements that are poorly understood. (Sommerville: Software Engineering, 8th Edition)

With Throwaway Prototyping, code is developed to explore factors critical to the system's success, and then that code is thrown away. The prototyping implementation uses programming languages or development practices or both that are much faster than the target language and practices. The user interface is prototyped far more commonly than any other part of the system, but other parts of some systems can also benefit from being prototyped. When used as a requirementsspecification aid, the Throwaway Prototyping practice can accelerate projects based on traditional lifecycle models, such as DoD projects. It can be initiated at either a management or technical level. (McConnell: Rapid Development: Taming Wild Software Schedules)

    
risposta data 20.09.2011 - 02:26
fonte
-2

Prototipazione Throwaway - con questa piccola parte del sistema viene sviluppata e quindi fornita ai clienti e agli utenti finali per tentare di valutarla. L'utente fornisce il feedback che può essere rapidamente integrato nello sviluppo del sistema principale

Prototipazione Evolutiva - è un modello di ciclo di vita in cui il Sistema è sviluppato in incrementi in modo che possa essere prontamente modificato in risposta agli utenti finali e al feedback dei Clienti

    
risposta data 30.09.2017 - 11:46
fonte

Leggi altre domande sui tag