Software Engineering - Prototyping Model
Software Engineering - Prototyping Model
The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models).This model is used when the customers do not know the
exact project requirements beforehand. In this model, a prototype of the end product is
first developed, tested and refined as per customer feedback repeatedly till a final
acceptable prototype is achieved which forms the basis for developing the final product.
In this process model, the system is partially implemented before or during the analysis
phase thereby giving the customers an opportunity to see the product early in the life
cycle. The process starts by interviewing the customers and developing the incomplete
high-level paper model. This document is used to build the initial prototype supporting
only the basic functionality as desired by the customer. Once the customer figures out
the problems, the prototype is further refined to eliminate them. The process continues
till the user approves the prototype and finds the working model to be satisfactory.
There are 2 approaches for this model:
Advantages –
The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
New requirements can be easily accommodated as there is scope for refinement.
Missing functionalities can be easily figured out.
Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
The developed prototype can be reused by the developer for more complicated
projects in the future.
Flexibility in design.
Disadvantages –
Costly w.r.t time as well as money.
There may be too much variation in requirements each time the prototype is
evaluated by the customer.
Poor Documentation due to continuously changing customer requirements.
It is very difficult for the developers to accommodate all the changes demanded by
the customer.
There is uncertainty in determining the number of iterations that would be required
before the prototype is finally accepted by the customer.
After seeing an early prototype, the customers sometimes demand the actual
product to be delivered soon.
Developers in a hurry to build prototypes may end up with sub-optimal solutions.
The customer might lose interest in the product if he/she is not satisfied with the
initial prototype.
Use –
The Prototyping Model should be used when the requirements of the product are not
clearly understood or are unstable. It can also be used if requirements are changing
quickly. This model can be successfully used for developing user interfaces, high
technology software-intensive systems, and systems with complex algorithms and
interfaces. It is also a very good choice to demonstrate the technical feasibility of the
product.
Iterative Development – Once the customer approves the prototype, the actual
software is developed using the iterative waterfall approach. In spite of the availability of
a working prototype, the SRS document is usually needed to be developed since the
SRS Document is invaluable for carrying out tractability analysis, verification and test
case design during later phases.
The code for the prototype is usually thrown away. However, the experience gathered
from developing the prototype helps a great deal in developing the actual software. By
constructing the prototype and submitting it for user evaluation, many customer
requirements get properly defined and technical issues get resolved by experimenting
with the prototype. This minimises later change requests from the customer and the
associated redesign costs.
Advantages of Prototyping Model – This model is most appropriate for the projects
that suffer from technical and requirements risks. A constructed prototype helps to
overcome these risks.
Disadvantages of Prototyping Model –
Cost of the development of the software by using prototyping model can increase
in various cases where the risks are very less.
It may take more time to develop a software by using Prototyping model.
The Prototyping model is effective only for those projects for which the risks can be
identified before the development starts. Since the prototype is developed at the
start of the project, so the Prototyping model is ineffective for risks that identified
after the development phase starts.