Professional Documents
Culture Documents
SDLC Models
ProcessModelsprovidesaspecificroadmapforsoftwareengineeringwork.Thepurposeoftheprocess
modelistotrytoreducethechaospresentindevelopingnewsoftwareproducts.
SystemDevelopmentLifecycle(SDLC)isaframeworkdescribingaprocessforforsoftware
development.
1. LinearLifecycle
2. Evolutionarylifecycle
Linearapproachdescribesasequenceoftasksthatarecompletedinorder,onlymovingtothenextstep
oncethepreviousstepiscomplete.
Evolutionaryapproach
evolves
thesolutionthrough
progressiveversions
,eachmorecompletethanthe
last&oftenusesaprototypingapproachtodevelopment.
SystemDevelopmentLifecycleVsSystemLifecycle
InSDLC,oncetheimplementationoccurs,theprojectisconsideredcomplete.
Linear Approach
LinearapproachfollowstheSDLCstagesinadefinedorder.Eachstepmustbecompleted,understood
andagreedbeforethenextstepcanbestarted.
Waterfall
VModel
Incremental
Strengths
Weakness
Breaksdowntheproblemintodistinctstageseach Dependsgreatlyoneachstagebeingdone
withaclearpurpose.
properly.
Everythingisagreedinadvanceofbeingused,
Itishardorimpossibletobackandchangeitlater.
withnoneedtorevisitlater.
Providestructuretocomplexsystems,making
Forcomplexproblems,thetimerequiredtobe
distributedoroutsourceddevelopmenteasierto
throughateachstageleadstolongtimescales.
manage.
Haveaverydetailedspecification&design.
Difficulttoaccommodatechanges.
Lockingdowneachstageinadvancefornext
Customerorbusinessvalueisnotavailableuntil
makesiteasiertocontrolcost&scopecreep.
theend.
Simple&intuitiveforsmallerproblems.
Iftheprojectisstoppedearly,thereislittleof
businessvaluetoshowforthecost.
KeystrengthsofWaterfallmodelare
Simpletounderstandandeasytouse.
Goodfordevelopingsystemswheretherequirementsandlikelysolutionarewellunderstood
andunlikelytochange.
Rigour&controlaroundeachstagemakeiteasierforprojectmanagement.
Themajorweaknessofthismodelare
Realprojectsrarelyfollowsequentialflow.
Canbecostlytomanagechange,especiallyifchangesareidentifiedlaterinthecycle.
Workingsoftwarenotdelivereduntilthefinalstage.
Poorestimationcanseverelyimpactthecost&schedule.
Customercollaborationislimitedtorequirements&acceptancetesting.Forlongprojects,this
canleadtoalackofcustomerbuyin,particularlywherestakeholderschange.
V Model
Introducedasanextensiontowaterfallmodeltodealwiththeproblemwherebytimeallocatedfor
testingcouldoftengetsqueezedduringawaterfalliftimeandmoneystartedtorunout.
Thelefthandsideshows
projectdefinition
&righthandsideshows
verification&validation
.The
dottedlinesconnectingleft&righthandsideshowstherelationshipsbetweeneachstageofdefinition
withitsassociatedstageoftesting.
KeystrengthsareVmodelare
Additionalfocusontestingleadstoahighqualityproduct.
Idealforsystemswithcomplexorhighqualityattributes.(safetycritical,verylarge,integration
heavyetc.)
MajorweaknessofVmodelare
Heavytesting&integrationcostthatcanbeunnecessarilyexpensiveforsimplersystems.
Earlystagestakelongertocompleteastherearetestartefactstocomplete.
AnextendedVmodelwaslaterintroducedtoincludethefeasibility&benefitsrealizationstage.
Incremental
Theincrementalisstillalinearapproachinsomuchasthefirst3stagesoftheSDLCareconductedin
sequence,eachbeingcompletedbeforethenextisstarted.
Withthisprocess,somepartsofthesystemgetdeliveredbeforeotherparts.Thisenableshighpriority
requirementstobedeliveredfirst.
Incrementscanalsobedeliveredinparallel,asthecoredesignis
complete
.
Keystrengthsofincrementalmodelare
Deliversworkingsoftwaretousersearly.
Easiertomanagerisks
becauseriskypiecescanbeidentifiedandhandledinearlyincrements.
Easiertotest&debugsmallerincrements.
Incrementscanbebuiltinparallel,reducingoveralltimetomarket.
Majorweaknessofthismodelare
Hardtomanageparalleldeliveries.
Stilldifficulttomanagechanges,asrequirementsareagreedbeforeincrementsaredecided.
Overallcostcanbehigherduetoadditionaloverheadsofparallelimplementationand
additionalregressiontesting.
Thecorearchitectureneedstobestable.
Evolutionary Models
Twofundamentallifecyclescomesunderevolutionarymodelsare
Iterative
Spiral
Iterative
Iterativedevelopmentisalifecyclewherebytheoverallprojectiscomposedofseveralsmall
timeboxeddevelopments,callediterations,whichtakesplaceinsequence.
Eachiterationisaselfcontainedminiprojectcomposedofactivitiessuchasanalysis,design,
development&test.Requirementsareelicitedduringeachiterationandthendevelopedtoproducea
workingsystemthatdeliverssomevaluetothecustomer.
Attheendofeachiteration,alldevelopmentacrosstheteamsisintegratedandtestedintoaniteration
release,thatmaynotbereleasedexternally.
Typically,therewillbeminimumof3iterations
1. Investigate
Mainlyusedtoinvestigatethingssuchasrisksaroundthetechnologyorrisks
arounduserfunctionality.Oncethisiterationiscompleted,therewillbemoreunderstanding
aboutwhatisrequiredtodelivertheexternalorfirstrelease.
2. Refine
Duringthisiterationtherequirementsarefullydetailedanddesignedandthesystemis
developedtomeetthebusinessgoal.Therearesometimesmultiplerefinementiterations.
3. Consolidate
Thefinaliterationensuresthatthecodeanddesigndevelopedisstabilisedand
fullyintegratedwithanyotheriterationssothattheoverallbusinessgoalisachievedinthe
externalrelease.
KeystrengthsofIterativemodelare
Requirementsevolvethrougheachiteration.
Changeiseasiertomanage.
Costcanbecontrollable.
Encouragecollaborationwithcustomers.
Themainweaknessofthisapproachare
Projectmanagementisdifficultduetomultipleiterations&iterationteams.
Withoutcarefulmanagement,evolvingrequirementscanresultinscopecreep.
Ifpoorlymanaged,canstillappearlikeasingle,finalrelease.
Overallcostscanbehigherduetotheadditionalintegrationandtests.
Spiral
Thespiralmodel,likeiterativeapproach,doesnotneedrequirementstobedefinedinadvance.This
approachstartswithaconceptandrepeatedlyrevisitsthefourmainphasesofdevelopmentuntila
suitableworkingproductiscomplete.
(Iterative+Prototype)
Determineobjectives
Inthefirststage,thedevteamandbusinessownersidentifythe
objectivesforthedevelopmentandagreeprioritizationofrequirements.Throughoutthe
project,thisunderstandingisconstantlyreviewedandrevisited.
Identify&resolverisks
Atthisstage,thedevelopersexploretechnicalpossibilitiestomeet
thebusinessgoal&assessanyrisksthatthetechnologymaybring.Anearlyprototypeisakey
enablerhereandwillbeproduced.
Development&test
Reviewingtheprototypesenablesthedevteamtoassesshowwellthe
requirementsandriskswereaddressedandlookatimprovements.Designsarethendeveloped
foranotherprototype,whichisagreed,developed&tested.Afterafewiterations,thiswill
producetheoperationalprototype.
Planthenextiteration
Duringthisstage,theworkingsystemisreleasedintothelive
operationalenv.Thismaybejustanincrementalreleaseandthereforefurtherreleaseswillbe
plannedanddevelopedthroughsubsequentiterationsandreleasesuntilthecompletesystemis
developedandthebusinessobjectivesarefullymet.
Keystrengthsare
1. Risksareaddressedearly.
2. Requirementsevolve,soadditionalfunctionalitiescanbeaddedlater.
3. Collaborationwithuseristhroughout,socustomerbuyinisgood.
4. Aworkingsystemisdevelopedearlyinthedevlifecycle.
Mainweaknessofspiralmodelare
Highchanceofscopecreep.
Overallcostscanbehighduetothemanyimplementationsofworkingsoftwareintothe
operationalenv.
Asthefocusisonaworkingsystem,documentationofthesystemcanbecomedeprioritized,
makingthesystemhardertomaintainpostprojectdelivery.
Agile Methodology
Keyconceptsofagilemanifestoare
1. Individuals&interactionsoverprocess&tools.
2. Workingsoftwareratherthaninproducingcomprehensivedocs.
3. Customercollaborationratherthancontractnegotiation.
4. Respondingtochangesratherthancreatingaplanandthenfollowingit.
Theoverallobjectiveofagiledevistosatisfythecustomerbyearlyandcontinuousdeliveryof
valuablesoftware.
Agileisidealinsmall,highlycollaborativeteams.However,theyaremuchhardertoworkwellwhere
theenvischallenged.
Largerteams,especiallywheretheyaregeographicallydistributed.
Complexsystems.
Audit,regulatory&safetycriticalrequirementsthatexpecthigherqualityassurance.
Projectswithstrictcontractualcommitments.
Complexuserenvorwhereenduserisnotavailable.
Inthesesituations,Agileapproachescanstillbringconsiderablebenefits,buttheadditionalriskthat
theyalsobringmustbemitigatedinsomeotherway.
Therearemanymethodsthatimplementthetenetsoftheagilemanifesto.
1. Extremeprogramming
2. Scrum
3. Adaptivesoftwaredevelopment(ASD)
Prototype
Itisaneffectiveparadigmforsoftwareengineering.Thismodelconsistsof
1. Listentocustomer.
2. Build/Revisemockup.
3. Customertestdrivesmockup.
Theprocedureisrepeateduntilalltherequirementsofthesystemareidentifiedandacomplexsystem
canbedesignedforthesystem.
Systemprototyping
(Evolutionary)producesafullfeaturedworkingmodeloftheinfosystem,
whichisreadyfortheimplementationphaseoftheSDLC.
Designprototyping
(Throwaway)systemanalystsalsouseprototypingtoverifyuser
requirementsafterwhichtheprototypeisdiscardedandimplementationcontinues.
Prototypingoffermanybenefitslike
1.
Users&systemdeveloperscanavoidmisunderstandings.
2.
Systemdeveloperscancreateaccuratespecificationsforthefinishedsystembasedonthe
prototype.
3.
Managerscanevaluateaworkingmodelmoreeffectivelythanapaperspecification.
4.
Systemanalystscanuseaprototypetodeveloptestingandtrainingprocedures.
5.
Prototypingreducestheriskandpotentialfinancialexposurethatoccurwhenafinishedsystem
failstosupportbusinessneeds.
Potentialproblemswithprototypingare
Therapidpaceofdevelopmentcancreatequalityproblems,whicharenotdiscovereduntilthe
finishedsystemisoperational.
Othersystemrequirementssuchasreliability,maintainabilityetccannotbetestedadequately
usingaprototype.
Inverycomplexsystems,theprototypebecomesunwieldyanddifficulttomanage.
RAD
RADreferstoadevlifecycledesignedtogivemuchfasterdevelopmentandhigherqualitysystems
thanthetraditionallifecycle.ItisdesignedtotakeadvantageofpowerfuldevsoftwarelikeCASE
tools,prototypingtools&codegenerators.ThekeyobjectivesofRADare
Highspeed
Highquality
Lowcost
Component Assembly
Thisistheprocesstobeusedwhenreuseisadevelopmentobjective.
Concurrent Development
Complexityoftheproblem.
Teamexperience.
Stabilityofrequirements.
Deliveryspeedandquality
Customerinvolvement
Uniqueness
Highregulatoryrequirements.
SystemInitiation
Feasibilityanalysis
SystemAnalysis
InDepthstudyofenduserinfoneedsthatproducesfunctionalrequirementsthatare
usedasthebasisfordesign.
OrganalysisOrgenvinwhichthesystemislocated.
Analysisofpresentsystems.
Logicalanalysis
10
Functionalrequirements.
SystemDesign
Designinvolvesfollowingsteps.
1. InputdesignDeterminingvariousinputsandtheformatsthatarerequiredtobeprocessedto
producethedesiredoutputs.
2. OutputdesignHowoutputisproducedandinwhatformat.
3. FiledesignMasterfiles(database)havetobedesignedtostoretheinput&outputasrequired.
4. ProcessdesignThecompleteprocessinglogic,navigationflows,errorconditionsandnon
functionalrequirementsaretobedesigned.
5. UIdesignNavigation,humancomputerinterface,usabilityetc.
Designinvolvestwothings.
PhysicaldesignThehardwarecomponentsthatconstitutethesystem.
LogicaldesignSoftware&datadesign.
Basedonthis,detaileddesigndocumentationisprepared.Insomeprojects,lowleveldesigndocuments
arealsoprepared.Thedesigndocumentsincludeflowcharts,recordlayouts,andreportlayouts,ER
diagramsasapplicable.
SystemImplementation
Acquisitionofhardware&software.
Softwaredevelopmentormodification.
Dataconversion
Testing
Endusertraining
ConversionDirect,Pilot,Parallel,Phased
SystemMaintenance
Correctivedefectfixing
Adaptiveenhancement
Perfectiveimproveperformance
Preventiveautomatedregression