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

Lecture 2

This document discusses different approaches to software prototyping including evolutionary prototyping, throw-away prototyping, and operational prototyping. Evolutionary prototyping involves refining an initial prototype through several stages to create the final system. Throw-away prototyping creates a prototype to help discover requirements but then discards it to develop the actual system separately. Operational prototyping builds a throw-away prototype on top of an evolutionary prototype.

Uploaded by

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

Lecture 2

This document discusses different approaches to software prototyping including evolutionary prototyping, throw-away prototyping, and operational prototyping. Evolutionary prototyping involves refining an initial prototype through several stages to create the final system. Throw-away prototyping creates a prototype to help discover requirements but then discards it to develop the actual system separately. Operational prototyping builds a throw-away prototype on top of an evolutionary prototype.

Uploaded by

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

SET212: Software Engineering (2)

Software Prototyping
Approaches to prototyping

Evolutionary Delivered
prototyping system
Outline
Requirements
Throw-away Executable Prototype +
Prototyping System Specification
Types of 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
 Operational prototyping
• A throw-away prototype built over an evolutionary prototype
Evolutionary prototyping

Develop abstract Build prototype Use prototype


specification system system

Deliver YES System


system adequate?
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
 Specification, design and implementation are
inter-twined
 The system is developed as a series of
increments that are delivered to the customer
 Techniques for rapid system development are
used such as CASE tools and 4GLs
Evolutionary Prototyping Disadvantages

 Availability of specialist skills


• Specialist skills are required which may not be available in all
development teams
 Maintenance over long term
• Continual change tends to corrupt system structure so long-term
maintenance is expensive
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
Throw-away prototyping
 Used to reduce requirements risk
 The prototype is developed from an initial
specification, delivered for experiment then
discarded
 The throw-away prototype should NOT be
considered as a final system
• Some system characteristics may have been left out
• There is no specification for long-term maintenance
• The system will be poorly structured and difficult to maintain
Throw-away prototyping

Outline Develop Evaluate Specify


requirements prototype prototype system

Reusable
components

Delivered
Develop Validate software
software system system
Prototype delivery
 Developers may be pressurized 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 undocumented
• Normal organizational quality standards may not have been
applied
Operational Prototyping

 Used when requirements are either critical and understood or not


critical and poorly understood .

 Throw away prototypes are selectively built on top of evolutionary


prototype
Prototyping benefits
 Improved system usability
 Closer match to the system needed
 Improved maintainability
 Reduced overall development effort
 One can have a working system in beforehand
 It brings the user to get involved in the system
design
Problems of Software Prototyping

 Developers may loose the focus on real purpose of prototype and


comprise with the quality of system .

 Prototyping will not reveal the non functional requirements like


robustness, safety etc .
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
High-level languages
 Some languages offer excellent UI development
facilities
 Some languages have an integrated support
environment whose facilities may be used in the
prototype
Database programming languages
 Domain specific languages for business systems
 Normally include a database query language, a screen
generator, a report generator and a spreadsheet.
 May be integrated with a CASE toolset
 It is sometimes known as a fourth-generation language
(4GL)
 Cost-effective for small to medium sized business
systems
Database programming

Interface
generator Spreadsheet

DB Report
programming generator
language

Database management system

Fourth-gener ation language


Component and application assembly
 Prototypes can be created quickly from a set of
reusable components plus some mechanism to
‘glue’ these component together
 The composition mechanism must include control
facilities and a mechanism for component
communication
 The system specification must take into account
the availability and functionality of existing
components
User interface prototyping
 Prototyping is essential for parts of the system such as
the user interface which cannot be effectively pre-
specified. Users must be involved in prototype evaluation
 It is impossible to pre-specify the look and feel of a user
interface in an effective way.
 UI development consumes an increasing part of overall
system development costs.

You might also like