CSE232 - Lecture9 - SoftwarePrototyping
CSE232 - Lecture9 - SoftwarePrototyping
Engineering
Software Prototyping
Software Prototyping
⚫ Rapid software development to validate
requirements
Objectives
⚫ To describe the use of prototypes in different
types of software projects
⚫ To discuss different kinds of prototyping
⚫ To explain the need for user interface prototyping
Topics covered
⚫ Prototyping in software process
⚫ Prototyping techniques
⚫ User interface prototyping
System prototyping
⚫ Prototyping is the rapid development of a system
⚫ In the past, the developed system was normally
thought of as inferior in some way to the required
system so further development was required
⚫ Now, the boundary between prototyping and
normal system development is blurred and many
systems are developed using an evolutionary
approach
What is Software Prototyping
⚫ what is software prototyping ?
It is the process of implementing the presumed software
requirements with an intention to learn more about the actual
requirements or alternative design that satisfies the actual set of
requirements.
Establish Define
Develop Evaluate
prototype prototype
prototype prototype
objectives functionality
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
Throw away prototyping
⚫ Objective - Derive end system requirements
⚫ Throw away prototyping is an approach where
an initial prototype is built mainly focusing on the
poorly understood requirements
⚫ Once the requirements are understood
requirements document is updated and a
conventional development process is followed to
build the system
Evolutionary Prototyping
⚫ Objective – Deliver a working system
⚫ Evolutionary prototyping is the one in which a
system is built using the well understood requirements.
Evolutionary prototyping
⚫ Must be used for systems where the specification
cannot be developed in advance e.g. user
interface systems
⚫ Based on techniques which allow rapid system
iterations
⚫ Verification is impossible as there is no
specification. Validation means demonstrating
the adequacy of the system
Evolutionary prototyping
⚫ Disadvantages –
NO
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 inevitably undocumented
• The system structure will be degraded through changes made
during development
• Normal organizational quality standards may not have been
applied
Operational Prototyping
Interface
generator Spreadsheet
DB Report
programming generator
language
Reusable Component
software Executable
composition
prototype
components framework
Control and
integration code
Compound documents
⚫ For some applications, a prototype can be created by
developing a compound document
⚫ This is a document with active elements (such as a
spreadsheet) that allow user computations
⚫ Each active element has an associated application which
is invoked when that element is selected
⚫ The document itself is the integrator for the different
applications
Application linking in compound documents
Compound document
Tree display
component
Problems with visual development
⚫ Difficult to coordinate team-based development
⚫ No explicit system architecture
⚫ Complex dependencies between parts of the
program can cause maintainability problems
User interface prototyping
⚫ It is impossible to pre-specify the look and feel of a user
interface in an effective way. prototyping is essential
⚫ UI development consumes an increasing part of overall
system development costs
⚫ User interface generators may be used to ‘draw’ the
interface and simulate its functionality with components
associated with interface entities
⚫ Web interfaces may be prototyped using a web site editor
Key points
⚫ A prototype can be used to give end-users a concrete
impression of the system’s capabilities
⚫ Prototyping is becoming increasingly used for system
development where rapid development is essential
⚫ Throw-away prototyping is used to understand the
system requirements
⚫ In evolutionary prototyping, the system is developed by
evolving an initial version to the final version