Вы находитесь на странице: 1из 39

SoftwarePrototyping

Rapidsoftwaredevelopmentto
validaterequirements

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide1

Objectives

Todescribetheuseofprototypesindifferent
typesofdevelopmentproject
Todiscussevolutionaryandthrowaway
prototyping
Tointroducethreerapidprototypingtechniques
highlevellanguagedevelopment,database
programmingandcomponentreuse
Toexplaintheneedforuserinterfaceprototyping

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide2

Topicscovered

Prototypinginthesoftwareprocess
Prototypingtechniques
Userinterfaceprototyping

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide3

Systemprototyping

Prototypingistherapiddevelopmentofasystem
Inthepast,thedevelopedsystemwasnormally
thoughtofasinferiorinsomewaytotherequired
systemsofurtherdevelopmentwasrequired
Now,theboundarybetweenprototypingand
normalsystemdevelopmentisblurredandmany
systemsaredevelopedusinganevolutionary
approach

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide4

Usesofsystemprototypes

Theprincipaluseistohelpcustomersand
developersunderstandtherequirementsforthe
system

Requirementselicitation.Userscanexperimentwithaprototype
toseehowthesystemsupportstheirwork
Requirementsvalidation.Theprototypecanrevealerrorsand
omissionsintherequirements

Prototypingcanbeconsideredasariskreduction
activitywhichreducesrequirementsrisks

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide5

Prototypingbenefits

Misunderstandingsbetweensoftwareusersand
developersareexposed
Missingservicesmaybedetectedandconfusing
servicesmaybeidentified
Aworkingsystemisavailableearlyintheprocess
Theprototypemayserveasabasisforderivinga
systemspecification
Thesystemcansupportusertrainingandsystem
testing

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide6

sP
tprorojteacbylypivsp
E
h
D
e
f
i
n
e
D
e
v
l
o
p
E
v
a
l
u
t
e
e
p
r
o
t
y
p
p
r
o
t
y
e
p
r
o
t
y
p
f
u
n
c
a
l
i
t
y
teflinoeE
u
iplangdO
tproyabpleE
x
e
c
u
vraelputrion

Prototypingprocess

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide7

Prototypingbenefits

Improvedsystemusability
Closermatchtothesystemneeded
Improveddesignquality
Improvedmaintainability
Reducedoveralldevelopmenteffort

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide8

Prototypinginthesoftwareprocess

Evolutionaryprototyping

Anapproachtosystemdevelopmentwhereaninitialprototype
isproducedandrefinedthroughanumberofstagestothefinal
system

Throwawayprototyping

Aprototypewhichisusuallyapracticalimplementationofthe
systemisproducedtohelpdiscoverrequirementsproblemsand
thendiscarded.Thesystemisthendevelopedusingsomeother
developmentprocess

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide9

Prototypingobjectives

Theobjectiveofevolutionaryprototypingisto
deliveraworkingsystemtoendusers.The
developmentstartswiththoserequirementswhich
arebestunderstood.
Theobjectiveofthrowawayprototypingisto
validateorderivethesystemrequirements.The
prototypingprocessstartswiththose
requirementswhicharepoorlyunderstood

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide10

E
v
o
l
u
t
i
o
n
a
r
y
D
e
l
i
v
e
r
d
p
r
y
p
g
s
y
t
m
tR
leqrim
O
u
netsT
E
x
e
c
u
t
a
b
l
e

P
r
o
t
y
p
e

+
rPotw
h
yapw
y
ysm
S
pcifaion
ingS

Approachestoprototyping

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide11

Evolutionaryprototyping

Mustbeusedforsystemswherethespecification
cannotbedevelopedinadvancee.g.AIsystems
anduserinterfacesystems
Basedontechniqueswhichallowrapidsystem
iterations
Verificationisimpossibleasthereisno
specification.Validationmeansdemonstratingthe
adequacyofthesystem

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide12

D
esvplcoip
fabsitoranctB
uild
sypro
tem
ypeNU
sep
rysoetm
ype
E
SadS
D
esylitvm
erY
sequteam
y
?

Evolutionaryprototyping

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide13

Evolutionaryprototypingadvantages

Accelerateddeliveryofthesystem

Rapiddeliveryanddeploymentaresometimesmoreimportant
thanfunctionalityorlongtermsoftwaremaintainability

Userengagementwiththesystem

Notonlyisthesystemmorelikelytomeetuserrequirements,
theyaremorelikelytocommittotheuseofthesystem

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide14

Evolutionaryprototyping

Specification,designandimplementationare
intertwined
Thesystemisdevelopedasaseriesofincrements
thataredeliveredtothecustomer
Techniquesforrapidsystemdevelopmentare
usedsuchasCASEtoolsand4GLs
UserinterfacesareusuallydevelopedusingaGUI
developmenttoolkit

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide15

Evolutionaryprototypingproblems

Managementproblems

Maintenanceproblems

Existingmanagementprocessesassumeawaterfallmodelof
development
Specialistskillsarerequiredwhichmaynotbeavailableinall
developmentteams
Continualchangetendstocorruptsystemstructuresolongterm
maintenanceisexpensive

Contractualproblems

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide16

Prototypesasspecifications

Somepartsoftherequirements(e.g.safety
criticalfunctions)maybeimpossibletoprototype
andsodontappearinthespecification
Animplementationhasnolegalstandingasa
contract
Nonfunctionalrequirementscannotbe
adequatelytestedinasystemprototype

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide17

Incrementaldevelopment

Systemisdevelopedanddeliveredinincrementsafter
establishinganoverallarchitecture
Requirementsandspecificationsforeachincrementmay
bedeveloped
Usersmayexperimentwithdeliveredincrementswhile
othersarebeingdeveloped.therefore,theseserveasa
formofprototypesystem
Intendedtocombinesomeoftheadvantagesof
prototypingbutwithamoremanageableprocessand
bettersystemstructure

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide18

fD
D
aersclig
id
e
shvnterscay
n
e
tybultreesm
B
u
i
l
d

s
y
t
e
m
V
a
l
i
d
a
t
e
S
p
e
c
i
f
y

s
t
e
m
m
i
n
c
r
e
m
n
n
c
r
e
m
n
n
r
e
m
n
N
O
D
elsiyvetrm
finalY
S
y
s
t
e
m
V
a
l
i
d
a
t
e
I
n
t
e
g
r
a
t
e
c
o
m
p
l
?
s
y
m
i
c
m
n
E
S

Incrementaldevelopmentprocess

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide19

Throwawayprototyping

Usedtoreducerequirementsrisk
Theprototypeisdevelopedfromaninitial
specification,deliveredforexperimentthen
discarded
ThethrowawayprototypeshouldNOTbe
consideredasafinalsystem

Somesystemcharacteristicsmayhavebeenleftout
Thereisnospecificationforlongtermmaintenance
Thesystemwillbepoorlystructuredanddifficulttomaintain

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide20

treqrlm
O
u
icn
eoR
D
e
v
l
o
p
E
v
a
l
u
t
e
S
p
e
c
i
f
y
tm
seu
p
r
o
t
y
e
p
r
o
t
y
p
s
y
t
m
a
b
l
e
p
o
n
t
s
esoylfitvw
earm
d
esofvtw
D
laorpe V
asylidam
teD

Throwawayprototyping

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide21

Prototypedelivery

Developersmaybepressurisedtodelivera
throwawayprototypeasafinalsystem
Thisisnotrecommended

Itmaybeimpossibletotunetheprototypetomeetnon
functionalrequirements
Theprototypeisinevitablyundocumented
Thesystemstructurewillbedegradedthroughchangesmade
duringdevelopment
Normalorganisationalqualitystandardsmaynothavebeen
applied

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide22

Rapidprototypingtechniques

Varioustechniquesmaybeusedforrapid
development

Dynamichighlevellanguagedevelopment
Databaseprogramming
Componentandapplicationassembly

Thesearenotexclusivetechniquestheyare
oftenusedtogether
Visualprogrammingisaninherentpartofmost
prototypedevelopmentsystems

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide23

Dynamichighlevellanguages

Languageswhichincludepowerfuldata
managementfacilities
Needalargeruntimesupportsystem.Not
normallyusedforlargesystemdevelopment
SomelanguagesofferexcellentUIdevelopment
facilities
Somelanguageshaveanintegratedsupport
environmentwhosefacilitiesmaybeusedinthe
prototype

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide24

Prototypinglanguages

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide25

Choiceofprototypinglanguage

Whatistheapplicationdomainoftheproblem?
Whatuserinteractionisrequired?
Whatsupportenvironmentcomeswiththe
language?
Differentpartsofthesystemmaybeprogrammed
indifferentlanguages.However,theremaybe
problemswithlanguagecommunications

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide26

Databaseprogramminglanguages

Domainspecificlanguagesforbusinesssystems
basedaroundadatabasemanagementsystem
Normallyincludeadatabasequerylanguage,ascreen
generator,areportgeneratorandaspreadsheet.
MaybeintegratedwithaCASEtoolset
Thelanguage+environmentissometimesknownas
afourthgenerationlanguage(4GL)
Costeffectiveforsmalltomediumsizedbusiness
systems

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide27

I
n
t
e
r
f
a
c
e
S
p
r
e
a
d
s
h
e
t
g
t
o
r
D
B
R
e
p
o
r
t
prolgnam
iuengD
g
n
a
aF
toub
arthsegem
ann
g
e
m
n
t

s
y
t
e
m
rationlanguage

Databaseprogramming

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide28

Componentandapplicationassembly

Prototypescanbecreatedquicklyfromasetof
reusablecomponentsplussomemechanismto
gluethesecomponenttogether
Thecompositionmechanismmustincludecontrol
facilitiesandamechanismforcomponent
communication
Thesystemspecificationmusttakeintoaccount
theavailabilityandfunctionalityofexisting
components

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide29

Prototypingwithreuse

Applicationleveldevelopment

Entireapplicationsystemsareintegratedwiththeprototypeso
thattheirfunctionalitycanbeshared
Forexample,iftextpreparationisrequired,astandardword
processorcanbeused

Componentleveldevelopment

Individualcomponentsareintegratedwithinastandard
frameworktoimplementthesystem
Frameworkcanbeascriptinglanguageoranintegration
frameworksuchasCORBA

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide30

R
e
u
s
a
b
l
e
C
o
m
p
o
n
e
t
E
x
e
c
u
t
a
b
l
e
scm
ofptw
rnts incftC
ireagonatriw
s
p
r
o
y
p
rolack
node

Reusablecomponentcomposition

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide31

Compounddocuments

Forsomeapplications,aprototypecanbecreated
bydevelopingacompounddocument
Thisisadocumentwithactiveelements(suchas
aspreadsheet)thatallowusercomputations
Eachactiveelementhasanassociatedapplication
whichisinvokedwhenthatelementisselected
Thedocumentitselfistheintegratorforthe
differentapplications

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide32

C
o
m
p
o
u
n
d

o
c
u
m
e
n
t
S
o
u
n
d

1
T
ext1T
T
a
b
l
e

1
T
e
x
t
2
T
x

3
T
e
x
t

4
S
o
u
n
d

2
T
e
x
t

5
a
b
l
e

2
udioplayer
W
ordprocesorS
preadshet A

Applicationlinkingincompounddocuments

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide33

Visualprogramming

ScriptinglanguagessuchasVisualBasicsupport
visualprogrammingwheretheprototypeis
developedbycreatingauserinterfacefrom
standarditemsandassociatingcomponentswith
theseitems
Alargelibraryofcomponentsexiststosupport
thistypeofdevelopment
Thesemaybetailoredtosuitthespecific
applicationrequirements

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide34

H
y
p
e
r
t
x
d
i
s
p
l
a

c
o
m
p
o
n
e
t
D
atecom
ponetF
i
l
e
E
d
i
t
V
i
e
w
s
L
a
y
o
u
t
O
p
t
i
o
n
s
H
e
l
p
G
n
r
a
l
I
d
x
1
2
t
h

J
a
n
u
a
r
y

2
0
R
aD
croam
n
g
csw
e
iprciop
h
e
c
k
n
g
tanevats 3.876 cU
ercpinoetm
p+
t
osm
T
rcoem
doisnpelay
t

Visualprogrammingwithreuse

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide35

Problemswithvisualdevelopment

Difficulttocoordinateteambaseddevelopment
Noexplicitsystemarchitecture
Complexdependenciesbetweenpartsofthe
programcancausemaintainabilityproblems

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide36

Userinterfaceprototyping

Itisimpossibletoprespecifythelookandfeelofauser
interfaceinaneffectiveway.prototypingisessential
UIdevelopmentconsumesanincreasingpartofoverall
systemdevelopmentcosts
Userinterfacegeneratorsmaybeusedtodrawthe
interfaceandsimulateitsfunctionalitywithcomponents
associatedwithinterfaceentities
Webinterfacesmaybeprototypedusingawebsite
editor

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide37

Keypoints

Aprototypecanbeusedtogiveendusersaconcrete
impressionofthesystemscapabilities
Prototypingisbecomingincreasinglyusedfor
systemdevelopmentwhererapiddevelopmentis
essential
Throwawayprototypingisusedtounderstandthe
systemrequirements
Inevolutionaryprototyping,thesystemisdeveloped
byevolvinganinitialversiontothefinalversion

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide38

Keypoints

Rapiddevelopmentofprototypesisessential.Thismay
requireleavingoutfunctionalityorrelaxingnon
functionalconstraints
Prototypingtechniquesincludetheuseofveryhigh
levellanguages,databaseprogrammingandprototype
constructionfromreusablecomponents
Prototypingisessentialforpartsofthesystemsuchas
theuserinterfacewhichcannotbeeffectivelypre
specified.Usersmustbeinvolvedinprototype
evaluation

IanSommerville2000

SoftwareEngineering,6thedition.Chapter8

Slide39