SE Lecture - 3

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

Software Engineering

Tehreem Aslam
FAST-NU
Prototyping Model
 A customer defines a set of general objectives
for software but does not identify detailed
input, processing, or output requirements

 The developer may be unsure of the


efficiency of an algorithm, the adaptability of
an operating system
Prototyping Model
 This model adds prototyping as sub-
process
 A prototype is a partially developed product
that enables customers and developers to
examine some aspect of a proposed system
and decide if it is suitable for a finished
product
Prototyping Model
 Used to explore the risky aspects of the system
o Risk of developing the “wrong” system
o User interface without functionality
o Technical risks

 Prototype may be thrown away or evolve into


product
Software Prototyping
 Software prototyping makes the requirements more real
and closes gaps in understanding of the requirements

 Prototyping puts a mock-up of a new system

 Early feedback on prototypes helps the stakeholders


arrive at a shared understanding of the system’s
requirements
Prototyping - Major Purposes
 Clarify and complete the requirements:
- Used as a requirements tool, the prototype is a preliminary
implementation of a part of the system that’s not well
understood

- User evaluation of the prototype points out problems with


the requirements, which you can correct at low cost before
you construct the actual product
Prototyping - Major Purposes
 Explore design alternatives:
- A prototype lets stakeholders explore different user
interaction techniques, optimize system usability, and
evaluate potential technical approaches

- Prototypes can demonstrate requirements feasibility


through working designs
Prototyping - Major Purposes

 Grow into the ultimate product:


- A prototype is a functional implementation of an initial
subset of the product, which can be elaborated into the
complete product through a sequence of small-scale
development cycles
Prototyping Model (Pros)
 Suitable for large systems for
which there is no manual
process to define the
requirements

 Much feedback from


customer

 Quality of software is
good
Prototyping Model (Cons)
 It may be impossible to tune the
prototype to meet non- functional
requirements

 Lot of time at customer

 The changes made during


prototype development will
probably have degraded the
system structure
Horizontal Prototypes
 Also called behavioral prototype or mock-up

 It doesn’t dive into all the layers of an architecture or into


system details but depicts a portion of the user interface

 This type of prototype lets you explore some specific


behaviors of the intended system, with the goal of
refining the requirements
Vertical Prototypes
 Also known as Structural Prototype

 It implements a slice of application functionality from


the user interface through the technical services
layers

 A vertical prototype works like the real system is


supposed to work because it touches on all levels of the
system implementation
Throwaway Prototypes
 Build a throwaway prototype (or exploratory prototype)
to answer questions, resolve uncertainties, and
improve requirements quality

 Throwaway prototype emphasizes quick implementation


and modification over robustness, reliability,
performance, and long- term maintainability
Throwaway Prototypes
 The throwaway prototype is most appropriate when the
team faces uncertainty, ambiguity, incompleteness, or
vagueness in the requirements

 A prototype that helps users and developers visualize


how the requirements might be implemented can reveal
gaps in the requirements
Evolutionary Prototypes
 An evolutionary prototype provides a solid
architectural foundation for building the product
incrementally as the requirements become clear over
time

 Evolutionary prototyping is a component of the spiral


software development life cycle model and of some
object-oriented software development processes
Evolutionary Prototypes
 In contrast to the quick-and-dirty nature of throwaway
prototyping, an evolutionary prototype must be built
with robust, production-quality code from the outset

 An evolutionary prototype must be designed for easy


growth and frequent enhancement, so developers must
emphasize software architecture and solid design
principles
Prototypes
Gather Use
Requirements
Refine user
requirements Begin next

increment

Develop throwaway Construct Construct vertical


horizontal evolutionary prototype
prototype prototype

Design User Verify and Design Software


Interface deliver architecture
increments

Construct and
verify product

Deliver product

Several possible ways to incorporate prototyping into the software development


process
Spiral Model (Diagram)

Planning

Communication

Start Modeling

Start

Deployment Construction

18
Cost

Progress
Spiral Model (Description)

 Follows an evolutionary approach


 Used when requirements are not well understood and risks are high
 Inner spirals focus on identifying software requirements and project risks; may
also incorporate prototyping
 Outer spirals take on a classical waterfall approach after requirements have been
defined, but permit iterative growth of the software

20
 Operates as a risk-driven model…a go/no-go decision
occurs after each complete spiral in order to react to risk
determinations
 Requires considerable expertise in risk assessment
 Serves as a realistic model for large-scale software
development

You might also like