The Software Development Process (SDLC)
Transcript of The Software Development Process (SDLC)
Hans-PetterHalvorsen
TheSoftwareDevelopment
Process(SDLC)
O.W
idde
r.(201
3).geek&
poke.A
vailable:http://geek-and
-poke.com
http://home.hit.no/~hansha/?page=software_development
ITSystem
B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
RequirementsAnalysis
Design
Implementation
Testing
Maintenance
Planning
TheSoftwareDevelopment
Lifecycle(SDLC)
Deployment
4
5
TheDevelopmentProcess
6
Design
Implementation
Testing
Requirements
Deployment
InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!
TheDevelopmentProcessinvolvesdifferentphases,e.g.:
TheRequirementsmaybegivenbytheCustomer
Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite
Makesureeverythingworkasexpected
TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go
backandcorrectit!
Errors?Improveyourcodeandfixthebugs
Requirements
Design
ImplementationTesting
Deployment/Maintenance
SystemTesting
FunctionalityRequirementsInitialUserInterface
TechnologyPlatformSelectionTechnicalArchitecture
ProjectPlan
DetailedSpecifications
FinalizeUserInterface
ApplicationArchitecure
SystemInterfaceDesign
TestPlans
UnitTesting
IntegrationwithexistingApps
ApplicationCodeDevelopment
SystemInterfaceDevelopment
AcceptanceTesting
Installation
RegressionTestingIntegrationTesting
Deployment
Support
Planning
8
O.W
idde
r.(201
3).geek&
poke.A
vailable:http://geek-and
-poke.com
SoftwareReleases
9
Alpha Release
Beta Releases
RC (ReleaseCandidate)
RTM (ReleaseToManufacturing)
Note!othertermsarealsoused
Start
Finished
SoftwareReleasesBeforethesoftwareisreleased• Alpha Release(s)(Internalrelease,notpublic)• Beta Release(s)(“DeveloperPreview”,“Consumer
Preview”)• RC - ReleaseCandidate(s)(“ReleasePreview”)• RTM – ReleaseToManufactoringMaintenance(afterthesoftwareisreleased)• Patches (smallfixes)• SP - ServicePacks(lotsofsmallfixesandpathesbundletogether),SP1,SP2,R1,R2,..
…StartPlanningnextRelease
10
TeamsandRoles
• Customer/Stakeholders• ProjectManager• SoftwareArchitect• SoftwareDesigner• Developer• Tester• etc.
11
SoftwareDesigner Programmer
SoftwareTester
ProjectManager
SoftwareArchitect
Collaboration!
Customer/Stakeholders
SoftwareTeams
12
SoftwareTester
SystemEngineer
ProjectManager
Programmer
SoftwareTeam
SoftwareArchitect
UXDesigner
Stakeholders
ASystemEngineerisageneralpersonthatcouldbeaProgrammer,Architect,Designer,Testerindifferentphasesintheproject,orhecouldbeatesterinoneprojectandaprogrammerinanotherproject– allinoneperson.Thatisusuallythecaseinsmallcompanies,whileinlargercompaniestheseroles(designer,tester,programmer)couldbeafull-timejob.
ProjectPlanningandManagement
14B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
ProjectPlanningTools:GanttChart,Backlog,TaskBoard,BurnDownChart,etc.
15
Finish
Start
ProjectManagement
Documentation(Report,etc.)
WorkingwithProjectTasks
Important:Workwiththeseactivitiesinparallel!!!
Howtoworkintheprojectperiod
Brainstorming/KickOff
16
AProjectshouldalwaysstartwithaBrainstorming• Involve allinthegroup• Discusswhatyouaregoingtodointheproject• Howareyougoingtosolvetheproject?• etc.
Deadlines
17
Asasoftwaredeveloperyouneedtodealwithlotsofdeadlinesduringthesoftwareproject!
ProperProjectPlanningandManagementmakesiteasiertofulfillthesedeadlines
SoftwarePhases
Hans-PetterHalvorsen
SoftwarePhases
Requirements
Design
ImplementationTesting
Deployment
SoftwareDevelopmentProcess– Requirements&Design
• TheRequirementsisnormallygivenbytheCustomer
• SRS– SoftwareRequirementsSpecificationdocument
SoftwareRequirements&DesignRequirements(WHAT):• WHAT thesystemshoulddo• DescribewhatthesystemshoulddowithWordsandFigures,etc.
• SRS – SoftwareRequirementsSpecificationSoftwareDesign(HOW):• HOW itshoulddoit• Examples:GUIDesign,UML,ERdiagram,CAD,etc.• SDD – SoftwareDesignDocumentManydontseparateSRSandSDDdocuments,butincludeeverythinginaRequirementsdocument.Inpractice,requirementsanddesignareinseparable.
SoftwareDevelopmentProcess- Design
22
HowtheSoftwarewillwork• TechnicalDesign(Platform,Architecture,etc.)
• UXDesign(UsereXperience,GUI/HMI)
SoftwareDevelopmentProcess
23
Design Implementation
• MakesuretohavetheDesignreadybeforeyoustarttheImplementation(Coding)
• FlowCharts,UML,DatabaseModelling,etc.• CreateDetailedRequirements• GUI/HMI– StartbydesigningyourGUIonthe“paper”
Planwhatyouaregoingtodo
Requirements
beforeyouactuallydoit
SoftwareDevelopmentProcess- Testing
24
PlanningTests PerformTests DocumentTestResults
SoftwareDevelopmentProcess- Testing
25
Alwaystestyourapplication!• Testityourself• Testitonothercomputersandenvironments• Makesureotherstestyourapplication• EatYourOwnDogFood
SoftwareDevelopmentProcess- Deployment
26
Softwaredeploymentisalloftheactivitiesthatmakeasoftwaresystemavailableforuse.• MakesuretheSoftwareiswelltested• TheSoftwareshouldbeeasytoinstall
SoftwareDevelopmentMethods/Processes
Howweapproachthedifferentphasesinsoftwaredevelopment(Requirements,Design,Implementation,Testing,Deployment)differdependingonwhatkindofSoftwareDevelopmentmethodwechoose.
Ashortoverviewofthemostused/knownmethodsaregivenonthenextslides.
Hans-PetterHalvorsen
SoftwareDevelopmentMethods• Waterfallmodel• Spiralmodel• Vmodel• IterativeandIncrementaldevelopment• Rapidapplicationdevelopment(RAD)• TestDrivenDevelopment(TDD)• Agiledevelopment
– eXtremeProgramming(XP)– Scrum (the mostpopularAgilemethod)
• Leansoftwaredevelopment• Kanban• etc.
28
29
SoftwareDevelopmentMethods
30
TraditionalPlan-drivenMethods
AgileMethods
WaterfallMethod
V-Model ScrumeXtreme
Programming(XP)
LeanSoftwareDevelopment
FeatureDrivenDevelopment(FDD)
SpiralmodelTestDriven
Development(TDD)Kanban
SoftwareDevelopmentMethods
31
TraditionalPlan-drivenMethods AgileMethods
WaterfallMethod
V-Model
Scrum
eXtremeProgramming
(XP)
LeanSoftwareDevelopment
FeatureDrivenDevelopment(FDD)
Evenifweusedifferentsoftwaredevelopmentmethods,wedealwiththesamephaseslikeRequirements,Design,Coding,TestingandDeployment– buttheymayhavedifferentpriorityandmaybedoneindifferentmannersandorder,etc.
Spiralmodel
TestDrivenDevelopment(TDD)
Kanban
Plan-drivenvs.Agile
32
Requirementsspecification
Requirementsengineering
Design andimplementation
Requirements changerequests
Plan-based development
Agile development
Requirementsengineering
Design andimplementation
I.Sommerville,SoftwareEngineering:Pearson,2010.
Waterfallmethod
33
O.W
idde
r.(201
3).geek&
poke.A
vailable:http://geek-and
-poke.com
• Sequentialprocess• ThePhasesRequirements,Design,
Implementation,Testing,DeploymentandMaintenanceneedtobefollowedinthatorder.
• InastrictWaterfallmodel,aftereachphaseisfinished,itproceedstothenextone.
• Cons:– impossibleforanynon-trivial
projecttofinishaphaseofasoftwareproduct'slifecycleperfectlybeforemovingtothenextphases
– Forexample,clientsmaynotknowexactlywhatrequirementstheyneedbeforereviewingaworkingprototypeandcommentingonit
TheWaterfallModel
Requirement
Design
Implementation
Testing
MaintenanceDeployment
SoftwareFinished
PlanningtocreateanewSoftware
ASequentialProcess
Youcannotgotonextphasebeforefinsihedthepreviousphase
Finished
Finished
Finished
Finished
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
V-model
35
V-model
• Anextensionofthewaterfallmodel• Moreflexible
• “TheV-Modelreflectsaprojectmanagementviewofsoftwaredevelopmentandfitstheneedsofprojectmanagers,accountantsandlawyersratherthansoftwaredevelopersorusers.”
36
Spiralmodel
37
Spiralmodel
• SomekeyaspectafromWaterfallandRAD• Iterativeriskanalysis• Suitableforlarge-scalecomplexsystems
38
AgileSoftwareDevelopment
Hans-PetterHalvorsen
40
Agile
41
• Agroupofsoftwaredevelopmentmethods• Iterativeapproach• Self-organizingandcross-functionalTeamsExamples:• eXtremeProgramming(XP)• Scrum• Kanban
Agile
42
FocusonProgrammig FocusonProcess
XP
Scrum Kanban
Flow-basedTimebox-based
Scrum
43
DailyScrumMeetings
SprintReview
Scrum• AFrameworkforSoftwareDevelopment• AgileSoftwareDevelopmentmethod• Simpletounderstand• Flexible• Exremelydifficulttomaster!• Self-organizingTeams(3-9persons)• ScrumTeam:– ProductOwner– ScrumMaster– DevelopmentTeam
44
Kanban
• KanbanisbasedonLeanandToyotaproductionpriciples– Just-in-Timeprinciple
• Kanbanhasfewer“rules”thanscrum• Kanbanisflow-based,whileScrumisTimebox-based(Sprints)
• LimitWIP(WorkinProgress)• LessfocusonEsitmation
45
Kanbanboard(Taskboard)
46
https://kanbanflow.com
SimiliartotheTaskboardusedinScrum
eXremeProgramming(XP)
• AnAgilemethod• PairProgramming• CodeReviews• UnitTesting• StandupMeetings
47
eXremeProgramming(XP)
48
TDD
49
“Therearenorightorwrongsoftwareprocesses”IanSommerville
50
Itisbettertouseasoftwaredevelopmentmetodthanusingnone
Butsomeonemaybebetterthanotherinagivensituation
Finally…
Summary
51
Learnfromyourpreviousmistakes!
References• I.Sommerville,SoftwareEngineering:Pearson,2010.• Wikipedia.(2013).ScrumDevelopment.Available:
http://en.wikipedia.org/wiki/Scrum_(development)• Wikipedia.(2013).AgileSoftwareDevelopment.Available:
http://en.wikipedia.org/wiki/Agile_software_development• CoreTrek.(2013).Scrumietnøtteskall.Available:
http://www.coretrek.no/scrum-i-et-noetteskall/category642.html• S.Adams.Dilbert.Available:http://dilbert.com• O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com• B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,
http://www.dagbladet.no/tegneserie/lunch/
52
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorwaywww.usn.no
E-mail:[email protected]:http://home.hit.no/~hansha/