0% found this document useful (0 votes)
144 views

Software Engineering - Prototyping Model

The prototyping model is a software development life cycle model where an initial prototype is developed to obtain early customer feedback. This prototype is then iteratively refined based on additional customer feedback until the customer approves it. There are two approaches: rapid throwaway prototyping where each prototype is discarded, and evolutionary prototyping where the prototype is incrementally refined. The prototyping model is useful when requirements are unclear or changing, and helps address technical risks through experimenting with prototypes.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
144 views

Software Engineering - Prototyping Model

The prototyping model is a software development life cycle model where an initial prototype is developed to obtain early customer feedback. This prototype is then iteratively refined based on additional customer feedback until the customer approves it. There are two approaches: rapid throwaway prototyping where each prototype is discarded, and evolutionary prototyping where the prototype is incrementally refined. The prototyping model is useful when requirements are unclear or changing, and helps address technical risks through experimenting with prototypes.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Software Engineering | Prototyping Model

Prototyping is defined as the process of developing a working replication of a product or


system that has to be engineered. It offers a small scale facsimile of the end product
and is used for obtaining customer feedback as described below:

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:

1. Rapid Throwaway Prototyping –


This technique offers a useful method of exploring ideas and getting customer
feedback for each of them. In this method, a developed prototype need not
necessarily be a part of the ultimately accepted prototype. Customer feedback
helps in preventing unnecessary design faults and hence, the final prototype
developed is of a better quality.
2. Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on the
basis of customer feedback till it finally gets accepted. In comparison to Rapid
Throwaway Prototyping, it offers a better approach which saves time as well as
effort. This is because developing a prototype from scratch for every iteration of the
process can sometimes be very frustrating for the developers.

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.

Software Engineering | Phases of Prototyping Model


The Prototyping model is also a popular software development life cycle model. The
prototyping model can be considered to be an extension of the Iterative Waterfall model.
This model suggests building a working Prototype of the system, before the
development of the actual software.
A prototype is a toy and crude implementation of a system. It has limited
functional capabilities, low reliability, or inefficient performance as compared to
the actual software. A prototype can be built very quickly by using several
shortcuts by developing inefficient, inaccurate or dummy functions.
Necessity of the Prototyping Model –
 It is advantageous to develop the Graphical User Interface (GUI) part of a software
using the Prototyping Model. Through prototype, the user can experiment with a
working user interface and they can suggest any change if needed.
 The prototyping model is especially useful when the exact technical solutions are
unclear to the development team. A prototype can help them to critically examine
the technical issues associated with the product development. The lack of
familiarity with a required development technology is a technical risk. This can be
resolved by developing a prototype to understand the issues and accommodate
the changes in the next iteration.
Phases of Prototyping Model –
The Prototyping Model of software development is graphically shown in the figure
below. The software is developed through two major activities – one is prototype
construction and another is iterative waterfall based software development.

Prototype Development – Prototype development starts with an initial requirements


gathering phase. A quick design is carried out and a prototype is built. The developed
prototype is submitted to the customer for evaluation. Based on the customer feedback,
the requirements are refined and the prototype is suitably modified. This cycle of
obtaining customer feedback and modifying the prototype continues till the customer
approves the prototype.

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.

You might also like