Spiral vs Throwaway Prototype vs Evolutionary Prototype

brainless picture brainless · Aug 13, 2010 · Viewed 11.1k times · Source

What is the difference between spiral model and prototype model in software engineering?

And also state some differences between throwaway and evolutionary prototyping.

Answer

Thomas Owens picture Thomas Owens · Aug 13, 2010

I've never heard of a "Prototype" software development life cycle. Prototyping is often used in the iterative and incremental models, which include the spiral model and the Agile methodologies.

The spiral model as defined by Barry Boehm consists of defining the requirements as much as possible, creating a design that helps you to identify risks and explore possible solutions, prototyping your design, and then producing a release. Once you release, you begin the process again to produce the next release.

There are two kinds of prototypes that you might use.

A throwaway prototype is made quickly with the intention of discarding it after you have learned from it. It's not well designed nor well implemented. Your goal is to get something in front of you client so they can see it and respond to it in order to help you refine your requirements and move toward a system the client wants. However, this is risky since the client sees a system and might equate that with a working system - you need to stress that it's just a prototype.

In evolutionary prototype, you take more care when developing the prototype as you will be refactoring and expanding your prototype into the final product. You can actually deliver an evolutionary prototype to your client and have them use it just as they would the actual system - you slowly refine the prototype into a final product that is delivered.