You are on page 1of 31

lecture duration: 180’

Instructor: Dao, Nguyen Thi Anh


International School - DTU
Email: nguyenthianhdao@duytan.edu.vn

1 © by CMU Dao Nguyen


Contents

1. Concept of prototyping
2. Process of software prototypig
3. Types of prototyping

2 © by CMU Dao Nguyen


Prototype

• Sƒ takeholders often find it difficult to express their real needs.


• ƒSoftware Engineers often find it difficult to predict how a final
system will affect the working environment.
• ƒIt is also difficult to know how the final system will impact other
systems during operation.
• ƒRequirement models and reviews can help reduce some
uncertainty.
• ƒThere is a technique to trying out a requirement before building
it called “Prototyping”.

3 © by CMU Dao Nguyen


Definition

• ƒA prototype is an initial version of a software system, which is


used to demonstrate concepts, trying out design options and
generally finding out more about the problem and its possible
solutions.
• ƒA prototype typically simulates only a few aspects of the
functions of the proposed system and may be different from the
actual implementation.
• ƒThe main purpose of a prototype is to allow users to review the
requirements for the system by actually trying them out, rather
than having to articulate the requirements based on their ideas.

4 © by CMU Dao Nguyen


Software Prototyping

ƒ Software prototyping supports:


• Requirements elicitation: Prototypes allow users to
experiment to see how systems support their work. They get
new ideas for requirements and can find what is working or
not working in the software, then they can rewrite the
requirements.

5 © by CMU Dao Nguyen


Software Prototyping

ƒ Software prototyping supports:


• Requirements validation: Prototypes may reveal errors
and omissions in the
requirements which have been proposed. A feature seems well
defined but when used with others, stakeholders may find that
their view maybe incorrect or incomplete, leading to changing
the requirements.

6 © by CMU Dao Nguyen


Benefits

• Mƒ isunderstanding between stakeholders and Software Engineers


can be identified quickly as proposed functions are
demonstrated.
• ƒSoftware Engineers may find incomplete or inconsistent
requirements as the prototype is developed.
• ƒA limited working system is available quickly to demonstrate the
feasibility and usefulness of
• the proposed system to management personnel.
• ƒThe prototype may be used as a basis for writing the
specification for the system.

7 © by CMU Dao Nguyen


Other Benefits

ƒ A prototype can be used for:


• User training before the system is built.
• Improving system usability.
• Improving design quality.
• Improving maintainability.
• Reducing development effort.
• Accelerating delivery of system.

8 © by CMU Dao Nguyen


Throwaway Prototype

T ƒ hrowaway (Rapid Prototyping) is the process of creation of a


model that will be discarded after requirements gathering is
accomplished.
 ƒThrowaway is a simple working model of the system to visually
show stakeholders what their requirements may look like when
implemented into a finished system.
 ƒThrowaway model is very informal and acts as the starting point
from which users can re-examine their expectations and clarify
their requirements.
• For example: A screen display menu option.
• A set of buttons, each represents a function.

9 © by CMU Dao Nguyen


Throwaway Prototype

10 © by CMU Dao Nguyen


Evolutionary Prototype

E ƒ volutionary prototyping is building a very robust prototype in


a structured manner, constantly refining it.
 ƒThe evolutionary prototype forms the heart of the proposed
system, and is based on the improvements and continual
refinement while the real system is built.
 ƒSoftware Engineers only build based on requirements that are
well understood and continually verified with stakeholders.

11 © by CMU Dao Nguyen


Evolutionary Prototyping

12 © by CMU Dao Nguyen


Best Practices -1

 Iƒn this prototyping technique, rather than focus on the entire


system, Software Engineers start building a unit of the system,
then uses the unit that has been built to inform and serve as a
starting point for other units.
 ƒSoftware Engineers start the process with freeform exploration
unconstrained by any specific technology.
 ƒBy asking question—“Is this what users want? Is this what the
business needs?” The engineer continues to refine the idea and
allows it to manifest until they can come up with a set of concrete
realities of the actual system requirements.

13 © by CMU Dao Nguyen


Best Practices -2

W ƒ hen prototyping using the evolutionary method, the actual


system and prototype become intertwined. If you’re prototyping
a new application or product, the prototype is essentially a rough
draft of the actual application. However, when updating the
design of an existing application, the production version can
serve as the starting point for the prototype of the new solution.
 ƒThe true power of prototyping really emerges during iteration
when users can interact with the prototype.
 ƒThe first static prototype idea always seems simple and elegant
but when users are able to interact with the prototype, Software
Engineers often discover a problem that went unnoticed when
they started the prototype.
14 © by CMU Dao Nguyen
Best Practices -3

Oƒ nce users provide feedback and Software Engineers begin


work on the next iteration, Software Engineers must ask: “How
fast will our team be able to iterate?” The longer an iteration
takes, the less valuable your prototype.
 ƒThe best lesson is to have a many small-step approach and
continue to involve users in evaluation to provide quick
feedback.
 ƒDo not start a large prototype because the complexity makes it
harder for users to experience the system and difficult to create
requirements.

15 © by CMU Dao Nguyen


Operational Prototype

O ƒ perational is a prototype built to demonstrate that the system


can satisfy user needs.
 ƒUnlike throwaway that clarifies ambiguous requirements,
operational tests the feasibility of portions of the system, and
allows users to test quality attributes.
 ƒOperational is most often used to minimize risk in large complex
systems.
 ƒTo demonstrate how a portion of the software system will work
once it is operational and demonstrates whether known
requirements will satisfy users.

16 © by CMU Dao Nguyen


User Interface Prototype

 ƒA user interacts with a software system mostly through the user


interface, making it helpful to spend a significant amount of time
during requirements to ensure that the user interface makes
sense, that all functionality is included, and that the most
commonly used functionality is easily accessible. The easiest way
of doing this is using a screen prototype.
 ƒA “working” prototype can lead users to believe that the system
is nearly complete and that development should not take very
long. This may lead users to believe that changes to the
prototype are costly, therefore reluctant to make necessary
suggestions to improve the program.

17 © by CMU Dao Nguyen


User Interface Prototype

18 © by CMU Dao Nguyen


Prototype Tools

E ƒ fficiently using prototyping requires that organizations have


proper tools and a staff trained to use those tools.
 ƒTools used in prototyping can vary from individual tools, like 4th
generation programming languages used for rapid prototyping,
to complex integrated CASE tools.
 ƒ4th generation programming languages like Visual Basic and
ColdFusion are frequently used since they are cheap, well known
and relatively easy and fast to use.
 ƒCode Generators are tools that allow you to model the domain
model, then drag and drop the User Interfaces. They allow
engineers to run the prototype and use basic database
functionality.
19 © by CMU Dao Nguyen
User Interface Prototype

G ƒ raphical user interface effort is a major part of software


development costs.
 ƒThe dynamic nature of user interfaces do not work well with
textual descriptions and diagrams, therefore it is recommended
that Software Engineers use evolutionary prototyping with end
user involvement to develop graphical user interfaces for the
proposed software system.
 ƒInterface generators are graphical screen design tools where
interface components such as menus, fields, icons, and buttons
can be selected from a menu and positioned on an interface for
users to select and use.

20 © by CMU Dao Nguyen


User Interface Prototype

21 © by CMU Dao Nguyen


User Interface Prototype

B ƒ ecause the widespread availability of web browsers and the


power of hypertext markup language (HTML), more and more
user interfaces are being built as web-based interfaces.
 ƒWeb-based user interfaces can be prototyped by using a website
editor which is really a user interface builder.
 ƒScreen design applications allows engineers to draw the screens
and model interactions between screens. Using prototyping tools
allows engineers to enter sample data and allows users to move
between screens by pressing buttons so they can easily
understand the interface and its functionality.
 ƒMost prototyping tools produce the final output in an HTML
format so they can be easily shared.
22 © by CMU Dao Nguyen
Example of Scenario Question

ƒ Question:
• How did you identify user requirements and needs when using
a prototype?
ƒ Answer:
• I started by looking at the prototype system.
• I observed a few users with the prototype to get specific
directions, I watched them while they interacted with the
system and noticed that < add your observation here>.
• After they were done using the prototype, I interviewed them
separately and they answered the predefined questions <add
feedback>.
ƒ
23 © by CMU Dao Nguyen
Example of Scenario Question

ƒ ƒQuestion:
• How did you record your findings?
Answer:
• All my data collection was done by taking notes while watching
users interact with the prototype.
• I noted important features, and problems such as <add your
notes>.
• After the experiment they answered the questionnaires and I
also wrote down all the interesting issues we discussed such as
<Add more notes>.

24 © by CMU Dao Nguyen


Example Of Scenario Question

ƒ ƒ uestion:
Q
• What are the needs of each user?
ƒ Answer:
• The user needs are:
• <Add each users’ needs>

25 © by CMU Dao Nguyen


Example Of Scenario Question

ƒ Question:
• How do you identify requirements based on users needs?
ƒ Answer:
• I identify the requirements for each user by listing as many
requirements as necessary. Most requirements will be
functional and use a template to write them down:
ƒ

26 © by CMU Dao Nguyen


Example Of Scenario Question

ƒ ƒRequirement Identification: <REQ # 1.1>


ƒ Requirement Type: <Functional>
ƒ Description: “The system allows user to enter password”
ƒ Rational: “In order for the system to identify user”
ƒ Source: User name ( Scott, Laura, etc.)
ƒ Dependencies: None
ƒ Conflict: None

27 © by CMU Dao Nguyen


Summary

 Pƒ rototypes are used to gather requirements, and are especially


useful in visualizing the look and feel of an application and the
process flow.
 ƒPrototypes are built early in the development lifecycle to provide
insight into the system.
 ƒA prototype represents the shell of an actual proposed system.
 ƒThe useful life of a prototype will vary according to the project
lifecycle model. Some prototypes can be thrown away and some
components can be reused later in the project.
 ƒEvolutionary prototypes can be used as the basis for developing
the final system.

28 © by CMU Dao Nguyen


Class discussion

Can you summarize this within 30 minutes?


Objective:
• The purpose of this exercise is to teach about Prototype
• Tasks:
• Students to design a “screen prototype” of the following software
system (Your choice) using your own drawings and textual
explanations:
A School library catalogue system. The system will contain information
about all the books in the library to be used by library staff and
students. The system should support catalogue reviewing (Browsing),
querying, reserving and borrowing books. Student must identify
different users (Staff and students);
29 © by CMU Dao Nguyen
References

Reference Materials:
• Nguyen, Tam T. T. (2014). Requirements Engineering.
Danang, Vietnam: Duy Tan University, for internal use.
pp. 161-165
Please watch the video at the link below:
• https://www.youtube.com/watch?v=HsV7na-xB8o

30 © by CMU Dao Nguyen


Questions & Answers

31 © by CMU Dao Nguyen

You might also like