Lecture 11
Lecture 11
LECTURE # 11
Prototyping
Why Prototyping in General
Uses of Prototyping
The Prototyping Process
Types of Prototyping
Throwaway
Evolutionary
Horizontal
Vertical
User Interface
Objectives of Throwaway & Evolutionary Prototyping
Low Fidelity Prototype
High Fidelity Prototype
Wizard of OZ Prototyping
Requirements Prototype
What to Prototype
Results Evaluation of Prototype
Requirements Re-use
4 Requirements Elicitation Techniques
Interviews
Questionnaires
Background Reading
Introspection
Social Analysis
Requirements Workshops
Brainstorming and Idea Reduction
Story Boarding
Role Playing
Prototyping
Requirements Reuse
Prototyping
5
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 used in situations where the users are unable to express their
requirements
The prototype may be used for user training before a final system is delivered
For example, if your project risk is based primarily on the feasibility of the
technology approach- its simply never have been done this way before and you
are uncertain whether the applicable technology can achieve the performance
or throughput goals- you may wish to develop an architectural prototype that
primarily demonstrates the feasibility of the technology to be used
Throwaway Prototyping
10
Throwaway implies that the purpose of the effort is only to establish feasibility and
you will use whatever shortcuts, alternative technologies, or whatever to achieve
your goals
When you built prototype then simply throwaway the result, keeping only the
knowledge learned in the exercise
The system is then developed using some other development process
The throw-away prototype should NOT be considered as a final system
Throwaway Prototyping
11
Evolutionary Prototyping
12
Horizontal implies that we will attempt to construct the wide range of the system’s
requirements
Horizontal Prototyping keeps the features but eliminates the depth of functionality
Prototyping may use very high level languages such as Smalltalk or Java or may
include prolog and lisp mostly used in artificial intelligence
User interface generators may be used to “draw” the interface and mimic its
functionality
User Interface Prototyping
18
The aim is to highlight strengths and weaknesses of the interface usability and
aesthetics.
In a GUI application, it would be expected that this form of prototyping
would include detailed icons, fonts, color scheme, interaction styles (e.g. single click,
double click, rollover, short-cuts), use of audio (e.g. click sounds, warning sounds, etc).
The outcome of interface prototyping may highlight potential weaknesses, such as:
lack of short-cuts for expert users
awkward/confusing features (e.g. icon doesn't relate well to the function)
The user thinks they are interacting with a computer, but a developer is
responding to output rather than the system.
As an elicitation tool such a prototype can serves its role in number of ways:
Built by the developer, it can be used to obtain customer confirmation that the developer
understands the requirements
Built by the developer, it can be used as a facilitator to encourage the customer
of yet more requirements
What to Prototype?
23
Well understood requirements are those requirements which might be obvious from the context
of the application domain and the user’s and team’s experience with systems of that type
For example if we are simply extending an existing system, it’s clear what most of the new functionality
needs to be
The well understood and well known requirements need not to be prototyped unless they are
necessary to help visualize the context of other user needs; building them will consume scarce
resources, but since they are already well understood, little will be learned from seeing them
What to Prototype?
24
The unknown requirements, however are the “undiscovered ruins” that we are going to
wish we knew later
Unfortunately we cannot really prototype those either, for if we could, they would not be
unknown
That leaves us as the target for prototyping the “fuzzy” part in the middle
These Fuzzy requirements are those that may be known, but they are poorly defined
and poorly understood
Building the Prototype
25
For example, the choice for a throwaway GUI prototype is driven simply by whatever
technology provides the fastest, cheapest way to implement the sample GUI‟s
If an evolutionary prototype is selected, you must choose the implementation language and
development environment that you will use in the production device
Result Evaluation
26
In the field of software engineering reusing the requirements of the existing system
is the common method of requirement elicitation
Using the existing knowledge to develop the new product has many advantages
including low cost and less time
Requirements Reuse
29
Through each product has their own types of stakeholders and users, there is still number of
situations that the reuse of requirements takes place e.g.
User interface design of the application domain information
Now a days in software industries the more than half of the requirements for the new project
requirements are acquired from the existing projects
Although there is need to check the requirements before they are used in the proposed
product, the reuse requirements are already validated and analyzed thus reducing the time
for testing
Requirements Reuse
30
The various questions that helps us to find the reusable requirements are::
What are the problems in the existing product?
What the proposed product should provide to overcome the difficulties in the existing
product?
Who are the users and stakeholders of the existing and proposed products?
It is difficult to say the proposed product is completely different from the existing
product because it is easy to find reused requirements in any project requirement
specification
Finding and using the reusable requirements for the projects is the best way for
Requirements Elicitation
For any query Feel Free to ask
31