Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
54 views31 pages

4 Prototyping

The document discusses software prototyping, which involves rapidly building scaled-down working versions of a system to validate requirements. It describes different types of prototyping including evolutionary, throw-away, and incremental. Evolutionary prototyping aims to deliver a working system through refinement, while throw-away prototyping discards the prototype after validating requirements. Rapid visual programming techniques can speed prototyping by reusing pre-built components.

Uploaded by

vimcloudsim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views31 pages

4 Prototyping

The document discusses software prototyping, which involves rapidly building scaled-down working versions of a system to validate requirements. It describes different types of prototyping including evolutionary, throw-away, and incremental. Evolutionary prototyping aims to deliver a working system through refinement, while throw-away prototyping discards the prototype after validating requirements. Rapid visual programming techniques can speed prototyping by reusing pre-built components.

Uploaded by

vimcloudsim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Prototyping

Rapid software
development to validate
requirements
Aim and Objectives

Aim
 To understand Prototyping

 Objectives
To understand
 What a Prototype is
 Prototype process
 Horizontal Prototype
 Vertical Prototype
 Throw-away Prototype
 Evolutionary Prototype
Prototyping

 Designing and building a scaled down but functional


version of a desired system is known as PROTOTYPING
 Prototyping could replace the System Development Life
Cycle
 Alternatively Prototyping could augment the System
Development Life Cycle
 Prototypes can be built using Programming Languages or
development tools
Uses of system prototypes

 The principal use is to help customers and developers


understand the requirements for the system
 Requirements elicitation. Users can experiment with a
prototype to see how the system supports their work
 Requirements validation. The prototype can reveal errors
and omissions in the requirements
 Prototyping can be considered as a risk reduction
activity which reduces requirements risks
Prototyping process

Establish Define
Develop Evaluate
prototype prototype
prototype prototype
objectives functionality

Prototyping Outline Executable Evaluation


plan definition prototype report
Prototype process

 Analyst works with the user to determine the initial


requirements.
 The analyst then quickly builds a prototype.
 When the prototype is built the user works with it and
tells the analyst
 What they like
 What they don’t like
 The analyst uses this feedback to improve the prototype
 New version is reviewed by the customer
Prototyping benefits

 Large extent to which the user is involved in the


requirement process.
 Ability to capture the requirements in a concrete rather
than an abstract or verbal form
 Improved system usability
 Closer match to the system needed
 Improved design quality
 Improved maintainability
 Reduced overall development effort
Prototyping in the software process
•Rapid Throwaway Prototyping
•Evolutionary Prototyping
•Incremental Prototyping
•Extreme Prototyping

 Evolutionary prototyping
 An approach to system development where an initial
prototype is produced and refined through a number of
stages to the final system
 Throw-away prototyping
 A prototype which is usually a practical implementation of
the system is produced to help discover requirements
problems and then discarded. The system is then
developed using some other development process
Prototyping objectives

 The objective of evolutionary prototyping is to deliver


a working system to end-users. The development starts
with those requirements which are best understood.
 The objective of throw-away prototyping is to validate
or derive the system requirements. The prototyping
process starts with those requirements which are poorly
understood
Approaches to prototyping

Evolutionary Delivered
prototyping system
Outline
Requirements
Throw-away Executable Prototype +
Prototyping System Specification
Evolutionary prototyping

Develop abstract Build prototype Use prototype


specification system system

Refine
N
Until
Acceptable
Deliver YES System
system adequate?
Evolutionary prototyping

 A key aspect of this approach is that the prototype


becomes the actual production system
 Start with the parts of the system that are most difficult and
uncertain
 If the difficult parts can be modelled then the rest of the
system should follow without much difficulty.
 If the difficult parts can not be modelled then consider
cancelling the project.
 Must be used for systems where the specification cannot be
developed in advance e.g. user interface systems
 Specification, design and implementation are inter-twined
 Techniques for rapid system development are used such as
CASE tools and 4GLs
 User interfaces are usually developed using a GUI
development toolkit
Evolutionary prototyping advantages

 Accelerated delivery of the system


 Rapid delivery and deployment are sometimes more
important than functionality or long-term software
maintainability
 User engagement with the system
 Not only is the system more likely to meet user
requirements, they are more likely to commit to the use
of the system
Evolutionary prototyping
problems

 Management problems
 Existing management processes assume a waterfall model
of development
 Specialist skills are required which may not be available in
all development teams
 Maintenance problems
 Continual change tends to corrupt system structure so
long-term maintenance is expensive
 Contractual problems
 No detailed system specification on which to base a
contract.
Evolutionary prototyping
problems
 Prototypes are designed to handle typical cases.
 It is reckoned that 90% of system design handles
exceptional cases.
 Though prototyping is good at developing easy to see
functionality, there are a lot of other areas that
could be missed because they are not easily viewed
such as:-
 Facilitating database access
 Database integrity
 System security
 Multi-platform support
 Scalability
Throw-away prototyping

 Used to reduce requirements risk


 The prototype is developed from an initial specification,
delivered for experiment then discarded

Outline Develop Evaluate Specify


requirements prototype prototype system

Reusable
components

Delivered
Develop Validate software
software system system
Throwaway prototyping

 Never any intention to keep the prototype


 Developed quickly to demonstrate
 some aspects of a system design that is unclear
 Help users decide between different features or interface
characteristics
 When the uncertainity of the requirements are reduced
the prototype can be discarded
 The principles of the prototype can then be applied to
the design specification
Prototype delivery

 Developers may be pressurised to deliver a throw-away


prototype as a final system
 This is not recommended
 It may be impossible to tune the prototype to meet non-
functional requirements
 The prototype is inevitably undocumented
 The system structure will be degraded through changes
made during development
 Normal organisational quality standards may not have been
applied
Incremental development

 System is developed and delivered in increments after


establishing an overall architecture
 Requirements and specifications for each increment
may be developed
 Users may experiment with delivered increments while
others are being developed. therefore, these serve as a
form of prototype system
 Intended to combine some of the advantages of
prototyping but with a more manageable process and
better system structure
Incremental development
process
Define system
deliverables

Design system Specify system Build system Validate


architectur e increment increment increment

NO

Deliver final System Validate Integrate


system complete? system increment
YES
Rapid prototyping techniques

 Various techniques may be used for rapid development


 High-level language development
 Database programming
 Component and application assembly
 These are not exclusive techniques - they are often
used together
 Visual programming is an inherent part of most
prototype development systems
Visual programming

 Languages such as Visual Basic support visual


programming where the prototype is developed by
creating a user interface from standard items and
associating components with these items
 A large library of components exists to support this type
of development
 These may be tailored to suit the specific application
requirements
Visual programming with
reuse
Hypertext
Date component display component

File Edit Views Layout Options Help


General
12th January 2000 Index
Range checking 3.876
script
User prompt
component +
Draw canvas script
component

Tree display
component
 Where to use:
 Small project
 No parallel (no large number of modules)
 Else increase risk
 No updation
 Testing
 Poor documentation
Summary
Prototype - Designing and building a scaled down but functional version of a desired system
Horizontal Prototype
 Horizontal prototypes demonstrate a broad spectrum of the product's features, but
without extensive functionality behind each function.
Vertical Prototype
 Vertical prototyping involves testing the exact functionality of a small section of your
site.
Evolutionary prototyping
 An initial prototype is produced and refined through a number of stages to the final
system
Throw-away prototyping
 A prototype which is usually a practical implementation of the system is produced to
help discover requirements problems and then discarded. The system is then
developed using some other development process
Prototype process -
Establish Define
Develop Evaluate
prototype prototype
prototype prototype
objectives functionality

Prototyping Outline Executable Evaluation


plan definition prototype report

You might also like