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

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)
54 views21 pages

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

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