Vous êtes sur la page 1sur 37

Prototypingisatechniqueforbuildingaquickandroughversion

ofadesiredsystemorpartsofasystem
In interaction design it can be (among other things):
a series of screen sketches
a storyboard, i.e. a cartoon-like series of scenes
a PowerPoint slide show
a video simulating the use of a system
a cardboard mock-up
a piece of software with limited functionality
written in the target language or in another
language
PrototypingJTBOctober2004

Allows users to try out the system and detect


problems or flaws
Prototypes are very useful when the
information requirements are not fully
understood
Prototype can be used to explore and solidify
the functions and design

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.

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 considered as a risk


reduction activity which reduces
requirements risks
4

MenuBar

Scroll
Bar
Opening
Contents

Secondary
Menu

PrototypingJTBOctober2004

PrototypingJTBOctober2004

Pulldown
menu

PrototypingJTBOctober2004

Establish
prototype
objectives

Define
prototype
functionality

Develop
prototype

Evaluate
prototype

Prototyping
plan

Outline
definition

Executable
prototype

Evaluation
report

Improved system usability


Closer match to the system needed
Improved design quality
Improved maintainability
Reduced overall development effort

Evolutionary
prototyping

Delivered
system

Throw-away
Prototyping

Executable Prototype +
System Specification

Outline
Requirements

10

Evolutionary prototyping
An approach to system development where an
initial prototype is produced and refined
through a number of stages to the final system
The objective of evolutionary prototyping is to
deliver a working system to end-users. The
development starts with those requirements
which are best understood.

11

Must be used for systems where the


specification cannot be developed in
advance e.g. AI systems and 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.

12

Develop abstract
specification

Build prototype
system

Use prototype
system

N
Deliver
system

YES

System
adequate?

13

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

14

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
User interfaces are usually developed using
a GUI development toolkit

15

Management problems
Existing management processes assume a
waterfall model of development
Specialist skills are required which may not be
available in all development teams

Maintenance problems
Continual change tends to corrupt system
structure so long-term maintenance is expensive

Contractual problems

16

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

The objective of throw-away prototyping is to


validate or derive the system requirements. The
prototyping
process
starts
with
those
requirements which are poorly understood.

17

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

18

Outline
requirements

Develop
prototype

Evaluate
prototype

Specify
system

Reusable
components

Develop
software

Validate
system

Delivered
software
system

19

Aims to collect information on requirements


and the adequacy of possible designs
Recognises that requirements are likely to
be inaccurate when first specified
The emphasis is on evaluating the design
before discarding it

20

Final product is built as separate components one


at a time
There is one overall design for the system
It is partitioned into independent and smaller
components
Final product is released as a series of products
Eg : General student details data module the students
assessment profile module

21

Smalltalk, Java, Delphi (Boland)


Object-oriented, interactive

LISP, Scheme
List-based, interactive

Perl, Python, Tcl/tk


String processing, scripting language, graphical toolkits

Visual Basic
HTML+Javascript, HTML+Java
Web browser as graphical display

22

Domain specific languages for business systems


based around a database management system
Normally include a database query language, a
screen generator, a report generator and a
spreadsheet.
May be integrated with a CASE toolset
The language + environment is sometimes
known as a fourth-generation language (4GL)
Cost-effective for small- to medium-sized
business systems

23

Interface
generator

Spreadsheet

DB
programming
language

Report
generator
Database management system

Fourth-gener ation language

24

Application level development


Entire application systems are integrated with the
prototype so that their functionality can be shared
For example, if text preparation is required, a standard
word processor can be used
E.g., Microsofts OLE (Object Linking and Embedding)

Component level development


Individual components are integrated within a
standard framework to implement the system
Framework can be a scripting language or an
integration framework such as CORBA (Common Object
Request Broker Architecture)

25

Users understand and react to prototypes far


better than with paper specifications
Usually quicker to build prototype than paper
specs.
Reality testing is introduced into project at
early stage.
Prototyping can help avoid systems with
inadequate or wrong features.
It encourages creative input from users
It enables errors and weaknesses to be caught
before expensive design and programming are
done.

Quick, rough design may replace wellthoughout design


Prototype may encourage users to change
minds about requirements--prototype may
never converge!
Users expectations may be too high
Users may not want to go from prototype to
production system--may want to keep
prototype
User may not work hard enough to identify
flaws in prototype

A prototype can be used to give end-users a


concrete impression of the systems 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

28

Rapid development of prototypes is essential.


This may require leaving out functionality or
relaxing non-functional constraints
Prototyping techniques include the use of very
high-level languages, database programming and
prototype construction from reusable components
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

29

Outsourcing the strategic use of outside resources to perform


activities traditionally handled by internal staff
and resources Dave Griffiths

Why Outsource?
Provide services that are scalable, secure, and
efficient, while improving overall service and
reducing costs

Major outsourcing in the manufacturing industry


Associated loss of blue-collar jobs in many industrial
sectors

Work outsourcing primarily to East Asian countries


of Taiwan, China, South Korea, and Malaysia

Reasons:

Low costs of manufacturing


Availability of skilled labor
Promotion of business friendly environment
Existence of production and supply networks in those
countries

Outsourcing of White Collar Jobs

Software sector was first to go


Other non-manufacturing sectors
telecommunications, retail trade, finance,
banking and insurance

What caused this major burst of


outsourcing in the late 1990s?

Creation and quick distribution of the internet


Transnational networks set up by immigrants in
the U.S.
Liberalization of emerging market economies

Traditional role - reaction to


problem

Reduction and control of costs


Avoid large capital investment costs
Insufficient resources available

Modern role business strategy

Allows company to focus on their core


competencies
Keeping up with cutting-edge technology
Creating value for the organization and its
customers
Building partnerships

system integration
data network
mainframe data center
voice network,
internet/intranet
maintenance/repair
applications development
e-commerce
end-user support system

Program initiation

Opinions and ideas shared to form draft


contract

Program implementation

Transferring staff
Service Level Agreement (SLA)
Establish communications between
partners
Actual transfer of the service
Establish management procedures

Contract agreement

Contract fulfillment

Loss of Control
Increased cash outflow
Confidentiality and security
Selection of supplier
Too dependent on service
provider
Loss of staff or moral problems
Time consuming
Provider may not understand
business environment
Provider slow to react to
changes in strategy

Vous aimerez peut-être aussi