Anda di halaman 1dari 28

SoftwarePrototyping

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

Anda mungkin juga menyukai