Anil Kumar.Arikepudi
– A Software prototype is
rapid development of a
– It is intended for the user
requirements and not for the
deign validation.
To describe the use of software
 To discuss the process of prototyping
 To discuss evolutionary, throw-away
prototyping techniques and about the
tools and techniques available.
 To know the advantages and
disadvantages of prototyping
To reduce cost and to improve the quality of
final product.
 Useful for risk assessment and as a means
for validation to end users.
 To demonstrate the feasibility of the system
early in the life cycle.
 The principal use is to help customers and
developers understand the requirements for
Prototyping process
Phases of prototyping
1.Prototyping Plan:
 To gain further specification
requirements from the customer.
 Convey about the ideas to the
customers, what the developers
believe will be vital aspects of the
 Knowing the more risky aspects of the
project, if any
Phases of prototyping (contd..)
2.Outline definition
 This stage focuses in determining the level
of functionality of the prototype and
documenting these decisions.
 We can use a GUI with no functionality if our
intention is only to demonstrate the intended
design. Whereas if the goal is to get the
customer to consider more functionality it
may be necessary to implement large parts
of the existing functionality
Phases of prototyping (contd…)
3. Executable Prototype:
 This stage is the development of the
prototype; this will generally involve the
use of some form of prototyping tool
such as Visual Basic to allow the
prototype to be constructed quickly.
 The length of this stage will be greatly
dependent on the required functionality
of the prototype
Phases of prototyping (contd…)
4.Evaluation report:
At this point feedback will be gathered from both
management and the customer thus allowing the
prototype to be evaluated. Three main events may
happen after this stage
The customer will be happy with the prototype and
the development of the actual system will
The project will be deemed unfeasible and the
project will not continue.
The customer lists more requirements and the
Specification will be amended to include these
1. Evolutionary prototyping
Evolutionary prototype life cycle
considers to first deliver an initial fielded
prototype ,subsequent modifications and
enhancements result in delivery of further
more mature prototypes.
Objective :To deliver a working system to endusers. The development starts with those
requirements which are best understood.
Evolutionary prototyping
2.Throw-away prototyping
Software developer develops a working prototype to
clarify and define the specifications with the help of
the customer. The prototype is not part of the final
product, so it is not necessary to maintain, and its
structure is also not important as it should not
influence the final product
Objective :To validate or derive the system
requirements. The prototyping process starts with
those requirements
which are poorly understood
Throw-Away Prototyping
Advantages of Evolutionary and
Throw-Away prototypes
1.Evolutionary prototype:
The most needed functionality will be produced
first, thereby solving the user’s basic needs.
This model establishes user engagement with the
2.Throw-Away Prototype:
Unlike upfront specifications, these can be used to
allow the customer to further define the product as
it is being developed.
The throw away prototypes can be written in a
language other than what is used for the final
system to speed up the process of creating the
The prototype is not documented and it is not
intended to be part of the final product
Disadvantages of Evolutionary and
Throw-Away prototypes
1.Evolutionary prototype:
 Existing management processes assume a waterfall
model of development
 Continual change tends to corrupt system structure so
long-term maintenance is expensive
 Specialist skills are required which may not be available
in all development teams
2.Throw-Away Prototype:
Finding it difficult to turn away the prototypes as
prototypes are not part of the final product .
 Makes software maintenance very difficult and costly
Tools and techniques available
1. Low-tech tools
Power point
2. High-Tech tools
Visual basic
Easy pilot
3. Fourth generation
4. Evolutionary prototyping
Benefits of prototyping
Misunderstandings between software users
and developers are exposed
Missing services may be detected
Confusing services may be identified
A working system is available early in the
The prototype may serve as a basis for
deriving a system specification
Can give training to users before productionquality system had been delivered.
Disadvantages of prototyping
Non-functional requirements such as those
concerning reliability, robustness and safety cannot
be adequately expressed in a prototype
The user may not use the prototype in the same
way as an operational system.
Time spent on the prototype may take away from
time spent solving other serious problems.
Developers may be forced to endlessly refine the
specifications and create many prototypes as
customers continually have more wants for the
project as inspired by the prototype