Rapidsoftwaredevelopmenttovalidate
requirements
Objectives
Todescribetheuseofprototypesindifferenttypesof
developmentproject
Todiscussevolutionaryandthrowawayprototyping
Tointroducethreerapidprototypingtechniques
highlevellanguagedevelopment,database
programmingandcomponentreuse
Toexplaintheneedforuserinterfaceprototyping
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide1
Systemprototyping
Prototypingistherapiddevelopmentofasystem
Theprincipaluseistohelpcustomersand
developersunderstandtherequirementsforthe
system
RequirementselicitationUserscanexperimentwitha
prototypetoseehowthesystemsupportstheirwork
RequirementsvalidationTheprototypecanreveal
errorsandomissionsintherequirements
Prototypingcanbeconsideredasariskreduction
activity
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide2
Prototypingbenefits
Misunderstandingsbetweensoftwareusersand
developersareexposed
Missingservicesmaybedetectedandconfusing
servicesmaybeidentified
Aworkingsystemisavailableearlyintheprocess
Theprototypemayserveasabasisforderivinga
systemspecification
Thesystemcansupportusertrainingandsystem
testing
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide3
Prototypinginthesoftwareprocess
Evolutionaryprototyping
Aninitialprototypeisproducedandrefinedthrough
anumberofstagestothefinalsystem
Throwawayprototyping
Aprototypeisproducedtohelpdiscover
requirementsproblemsandthendiscarded
Thesystemisthendevelopedusingsomeother
developmentprocess
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide4
Prototypingobjectives
Theobjectiveofevolutionaryprototypingisto
deliveraworkingsystemtoendusers
Thedevelopmentstartswiththoserequirements
whicharebestunderstood.
Theobjectiveofthrowawayprototypingisto
validateorderivethesystemrequirements
Theprototypingprocessstartswiththose
requirementswhicharepoorlyunderstood
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide5
Approachestoprototyping
Evolutionary
prototyping
Delivered
system
Throwaway
Prototyping
ExecutablePrototype+
SystemSpecification
Outline
Requirements
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide6
Evolutionaryprototyping
Mustbeusedforsystemswherethespecification
cannotbedevelopedinadvance
E.g.,AIsystemsanduserinterfacesystems
Basedontechniqueswhichallowrapidsystem
iterations
Verificationisimpossibleasthereisno
specification
Validationmeansdemonstratingtheadequacyof
thesystem
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide7
Evolutionaryprototyping
Developabstract
specification
Buildprototype
system
Useprototype
system
N
Deliver
system
IanSommerville2000
YES
System
adequate?
SoftwareEngineering,6thedition.Chapter8
Slide8
Evolutionaryprototypingadvantages
Accelerateddeliveryofthesystem
Rapiddeliveryanddeploymentaresometimesmoreimportant
thanfunctionalityorlongtermsoftwaremaintainability
Userengagementwiththesystem
Notonlyisthesystemmorelikelytomeetuserrequirements,
theyaremorelikelytocommittotheuseofthesystem
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide9
Evolutionaryprototyping
Specification,designandimplementationare
intertwined
Thesystemisdevelopedasaseriesofincrements
thataredeliveredtothecustomer
Techniquesforrapidsystemdevelopmentare
usedsuchasCASEtoolsand4GLs
UserinterfacesareusuallydevelopedusingaGUI
developmenttoolkit
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide10
Evolutionaryprototypingproblems
Managementproblems
Maintenanceproblems
Existingmanagementprocessesassumeawaterfall
modelofdevelopment
Specialistskillsarerequiredwhichmaynotbe
availableinalldevelopmentteams
Continualchangetendstocorruptsystemstructureso
longtermmaintenanceisexpensive
Contractualproblems
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide11
Prototypesasspecifications
Somepartsoftherequirementsmaybe
impossibletoprototype
E.g.,safetycriticalfunctions
Animplementationhasnolegalstandingasa
contract
Nonfunctionalrequirementscannotbe
adequatelytestedinasystemprototype
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide12
Incrementaldevelopment
Systemisdevelopedanddeliveredinincrementsafter
establishinganoverallarchitecture
Requirementsandspecificationsforeachincrementmaybe
developed
Usersmayexperimentwithdeliveredincrementswhile
othersarebeingdeveloped
Theseserveasaformofprototypesystem
Intendedtocombinesomeoftheadvantagesofprototyping
Moremanageableprocess
Bettersystemstructure
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide13
Incrementaldevelopmentprocess
Definesystem
deliverables
Specifysystem
increment
Designsystem
architectur e
Buildsystem
increment
Validate
increment
Validate
system
Integrate
increment
NO
Deliverfinal
system
IanSommerville2000
YES
System
complete?
SoftwareEngineering,6thedition.Chapter8
Slide14
Throwawayprototyping
Usedtoreducerequirementsrisk
Theprototypeisdevelopedfromaninitial
specification,deliveredforexperimentthen
discarded
ThethrowawayprototypeshouldNOTbe
consideredasafinalsystem
Somesystemcharacteristicsmayhavebeenleftout
Thereisnospecificationforlongtermmaintenance
Thesystemwillbepoorlystructuredanddifficulttomaintain
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide15
Throwawayprototyping
Outline
requirements
Develop
prototype
Evaluate
prototype
Specify
system
Reusable
components
Develop
software
IanSommerville2000
Validate
system
SoftwareEngineering,6thedition.Chapter8
Delivered
software
system
Slide16
Rapidprototypingtechniques
Varioustechniquesmaybeusedforrapid
development
Dynamichighlevellanguagedevelopment
Databaseprogramming
Componentandapplicationassembly
Thesetechniquesareoftenusedtogether
Visualprogrammingisaninherentpartofmost
prototypedevelopmentsystems
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide17
Dynamichighlevellanguages
Languageswhichincludepowerfuldata
managementfacilities
Needalargeruntimesupportsystem.Not
normallyusedforlargesystemdevelopment
SomelanguagesofferexcellentUIdevelopment
facilities
Somelanguageshaveanintegratedsupport
environmentwhosefacilitiesmaybeusedinthe
prototype
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide18
Choiceofprototypinglanguage
Whatistheapplicationdomainoftheproblem?
Whatuserinteractionisrequired?
Whatsupportenvironmentcomeswiththe
language?
Differentpartsofthesystemmaybeprogrammed
indifferentlanguages
Examplelanguages
Java,Smalltalk,Lisp,Prolog,Perl,Tcl/TK
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide19
Databaseprogramminglanguages
Domainspecificlanguagesforbusinesssystemsbasedarounda
databasemanagementsystem
Normallyincludeadatabasequerylanguage,ascreengenerator,a
reportgeneratorandaspreadsheet
MaybeintegratedwithaCASEtoolset
Thelanguage+environmentissometimesknownasa4GL
Costeffectiveforsmalltomediumsizedbusinesssystems
Interface
generator
Spreadsheet
DB
programming
language
Report
generator
Databasemanagementsystem
Fourthgener ationlanguage
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide20
Componentandapplicationassembly
Prototypescanbecreatedquicklyfromasetof
reusablecomponentsplussomemechanismto
gluethesecomponenttogether
Thecompositionmechanismmustincludecontrol
facilitiesandamechanismforcomponent
communication
Thesystemspecificationmusttakeintoaccount
theavailabilityandfunctionalityofexisting
components
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide21
Prototypingwithreuse
Applicationleveldevelopment
Entireapplicationsystemsareintegratedwiththeprototypeso
thattheirfunctionalitycanbeshared
Forexample,iftextpreparationisrequired,astandardword
processorcanbeused
Componentleveldevelopment
Individualcomponentsareintegratedwithinastandard
frameworktoimplementthesystem
Frameworkcanbeascriptinglanguageoranintegration
frameworksuchasCORBA
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide22
Visualprogramming
ScriptinglanguagessuchasVisualBasicsupport
visualprogramming
theprototypeisdevelopedbycreatingauser
interfacefromstandarditemsandassociating
componentswiththeseitems
Alargelibraryofcomponentsexiststosupport
thistypeofdevelopment
Thesemaybetailoredtosuitthespecific
applicationrequirements
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide23
Visualprogrammingwithreuse
Hypertext
displaycomponent
Datecomponent
File
Edit
Views
12thJanuary2000
Rangechecking
script
Layout
Options
Help
General
Index
3.876
Userprompt
component+
script
Drawcanvas
component
Treedisplay
component
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide24
Problemswithvisualdevelopment
Difficulttocoordinateteambaseddevelopment
Noexplicitsystemarchitecture
Complexdependenciesbetweenpartsofthe
programcancausemaintainabilityproblems
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide25
Userinterfaceprototyping
Itisimpossibletoprespecifythelookandfeelof
auserinterfaceinaneffectiveway
UIdevelopmentconsumesanincreasingpartof
overallsystemdevelopmentcosts
Userinterfacegeneratorsmaybeusedtodraw
theinterfaceandsimulateitsfunctionalitywith
componentsassociatedwithinterfaceentities
Webinterfacesmaybeprototypedusingawebsite
editor
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide26
Keypoints
Aprototypecanbeusedtogiveendusersaconcrete
impressionofthesystemscapabilities
Prototypingisbecomingincreasinglyusedwhere
rapiddevelopmentisessential
Throwawayprototypingisusedtounderstandthe
systemrequirements
Inevolutionaryprototyping,thesystemisdeveloped
byevolvinganinitialversiontothefinalversion
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide27
Keypoints
Rapidprototypingmayrequireleavingout
functionalityorrelaxingnonfunctionalconstraints
Prototypingtechniquesincludetheuseofvery
highlevellanguages,databaseprogrammingand
prototypeconstructionfromreusablecomponents
Prototypingisessentialforpartsofthesystemsuch
astheuserinterfacewhichcannotbeeffectively
prespecified
Usersmustbeinvolvedinprototypeevaluation
IanSommerville2000
SoftwareEngineering,6thedition.Chapter8
Slide28