53
Hans-Petter Halvorsen The Software Development Process (SDLC) O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com http://home.hit.no/~hansha/?page=software_development

The Software Development Process (SDLC)

Embed Size (px)

Citation preview

Page 1: 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

Page 2: The Software Development Process (SDLC)

ITSystem

B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/

Page 3: The Software Development Process (SDLC)

RequirementsAnalysis

Design

Implementation

Testing

Maintenance

Planning

TheSoftwareDevelopment

Lifecycle(SDLC)

Deployment

Page 4: The Software Development Process (SDLC)

4

Page 5: The Software Development Process (SDLC)

5

Page 6: The Software Development Process (SDLC)

TheDevelopmentProcess

6

Design

Implementation

Testing

Requirements

Deployment

InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!

TheDevelopmentProcessinvolvesdifferentphases,e.g.:

TheRequirementsmaybegivenbytheCustomer

Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite

Makesureeverythingworkasexpected

TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go

backandcorrectit!

Errors?Improveyourcodeandfixthebugs

Page 7: The Software Development Process (SDLC)

Requirements

Design

ImplementationTesting

Deployment/Maintenance

SystemTesting

FunctionalityRequirementsInitialUserInterface

TechnologyPlatformSelectionTechnicalArchitecture

ProjectPlan

DetailedSpecifications

FinalizeUserInterface

ApplicationArchitecure

SystemInterfaceDesign

TestPlans

UnitTesting

IntegrationwithexistingApps

ApplicationCodeDevelopment

SystemInterfaceDevelopment

AcceptanceTesting

Installation

RegressionTestingIntegrationTesting

Deployment

Support

Planning

Page 8: The Software Development Process (SDLC)

8

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 9: The Software Development Process (SDLC)

SoftwareReleases

9

Alpha Release

Beta Releases

RC (ReleaseCandidate)

RTM (ReleaseToManufacturing)

Note!othertermsarealsoused

Start

Finished

Page 10: The Software Development Process (SDLC)

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

Page 11: The Software Development Process (SDLC)

TeamsandRoles

• Customer/Stakeholders• ProjectManager• SoftwareArchitect• SoftwareDesigner• Developer• Tester• etc.

11

SoftwareDesigner Programmer

SoftwareTester

ProjectManager

SoftwareArchitect

Collaboration!

Customer/Stakeholders

Page 12: The Software Development Process (SDLC)

SoftwareTeams

12

Page 13: The Software Development Process (SDLC)

SoftwareTester

SystemEngineer

ProjectManager

Programmer

SoftwareTeam

SoftwareArchitect

UXDesigner

Stakeholders

ASystemEngineerisageneralpersonthatcouldbeaProgrammer,Architect,Designer,Testerindifferentphasesintheproject,orhecouldbeatesterinoneprojectandaprogrammerinanotherproject– allinoneperson.Thatisusuallythecaseinsmallcompanies,whileinlargercompaniestheseroles(designer,tester,programmer)couldbeafull-timejob.

Page 14: The Software Development Process (SDLC)

ProjectPlanningandManagement

14B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/

ProjectPlanningTools:GanttChart,Backlog,TaskBoard,BurnDownChart,etc.

Page 15: The Software Development Process (SDLC)

15

Finish

Start

ProjectManagement

Documentation(Report,etc.)

WorkingwithProjectTasks

Important:Workwiththeseactivitiesinparallel!!!

Howtoworkintheprojectperiod

Page 16: The Software Development Process (SDLC)

Brainstorming/KickOff

16

AProjectshouldalwaysstartwithaBrainstorming• Involve allinthegroup• Discusswhatyouaregoingtodointheproject• Howareyougoingtosolvetheproject?• etc.

Page 17: The Software Development Process (SDLC)

Deadlines

17

Asasoftwaredeveloperyouneedtodealwithlotsofdeadlinesduringthesoftwareproject!

ProperProjectPlanningandManagementmakesiteasiertofulfillthesedeadlines

Page 18: The Software Development Process (SDLC)

SoftwarePhases

Hans-PetterHalvorsen

Page 19: The Software Development Process (SDLC)

SoftwarePhases

Requirements

Design

ImplementationTesting

Deployment

Page 20: The Software Development Process (SDLC)

SoftwareDevelopmentProcess– Requirements&Design

• TheRequirementsisnormallygivenbytheCustomer

• SRS– SoftwareRequirementsSpecificationdocument

Page 21: The Software Development Process (SDLC)

SoftwareRequirements&DesignRequirements(WHAT):• WHAT thesystemshoulddo• DescribewhatthesystemshoulddowithWordsandFigures,etc.

• SRS – SoftwareRequirementsSpecificationSoftwareDesign(HOW):• HOW itshoulddoit• Examples:GUIDesign,UML,ERdiagram,CAD,etc.• SDD – SoftwareDesignDocumentManydontseparateSRSandSDDdocuments,butincludeeverythinginaRequirementsdocument.Inpractice,requirementsanddesignareinseparable.

Page 22: The Software Development Process (SDLC)

SoftwareDevelopmentProcess- Design

22

HowtheSoftwarewillwork• TechnicalDesign(Platform,Architecture,etc.)

• UXDesign(UsereXperience,GUI/HMI)

Page 23: The Software Development Process (SDLC)

SoftwareDevelopmentProcess

23

Design Implementation

• MakesuretohavetheDesignreadybeforeyoustarttheImplementation(Coding)

• FlowCharts,UML,DatabaseModelling,etc.• CreateDetailedRequirements• GUI/HMI– StartbydesigningyourGUIonthe“paper”

Planwhatyouaregoingtodo

Requirements

beforeyouactuallydoit

Page 24: The Software Development Process (SDLC)

SoftwareDevelopmentProcess- Testing

24

PlanningTests PerformTests DocumentTestResults

Page 25: The Software Development Process (SDLC)

SoftwareDevelopmentProcess- Testing

25

Alwaystestyourapplication!• Testityourself• Testitonothercomputersandenvironments• Makesureotherstestyourapplication• EatYourOwnDogFood

Page 26: The Software Development Process (SDLC)

SoftwareDevelopmentProcess- Deployment

26

Softwaredeploymentisalloftheactivitiesthatmakeasoftwaresystemavailableforuse.• MakesuretheSoftwareiswelltested• TheSoftwareshouldbeeasytoinstall

Page 27: The Software Development Process (SDLC)

SoftwareDevelopmentMethods/Processes

Howweapproachthedifferentphasesinsoftwaredevelopment(Requirements,Design,Implementation,Testing,Deployment)differdependingonwhatkindofSoftwareDevelopmentmethodwechoose.

Ashortoverviewofthemostused/knownmethodsaregivenonthenextslides.

Hans-PetterHalvorsen

Page 28: The Software Development Process (SDLC)

SoftwareDevelopmentMethods• Waterfallmodel• Spiralmodel• Vmodel• IterativeandIncrementaldevelopment• Rapidapplicationdevelopment(RAD)• TestDrivenDevelopment(TDD)• Agiledevelopment

– eXtremeProgramming(XP)– Scrum (the mostpopularAgilemethod)

• Leansoftwaredevelopment• Kanban• etc.

28

Page 29: The Software Development Process (SDLC)

29

Page 30: The Software Development Process (SDLC)

SoftwareDevelopmentMethods

30

TraditionalPlan-drivenMethods

AgileMethods

WaterfallMethod

V-Model ScrumeXtreme

Programming(XP)

LeanSoftwareDevelopment

FeatureDrivenDevelopment(FDD)

SpiralmodelTestDriven

Development(TDD)Kanban

Page 31: The Software Development Process (SDLC)

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

Page 32: The Software Development Process (SDLC)

Plan-drivenvs.Agile

32

Requirementsspecification

Requirementsengineering

Design andimplementation

Requirements changerequests

Plan-based development

Agile development

Requirementsengineering

Design andimplementation

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 33: The Software Development Process (SDLC)

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

Page 34: The Software Development Process (SDLC)

TheWaterfallModel

Requirement

Design

Implementation

Testing

MaintenanceDeployment

SoftwareFinished

PlanningtocreateanewSoftware

ASequentialProcess

Youcannotgotonextphasebeforefinsihedthepreviousphase

Finished

Finished

Finished

Finished

NotFinished?-GobackandFixit!

NotFinished?-GobackandFixit!

NotFinished?-GobackandFixit!

NotFinished?-GobackandFixit!

Page 35: The Software Development Process (SDLC)

V-model

35

Page 36: The Software Development Process (SDLC)

V-model

• Anextensionofthewaterfallmodel• Moreflexible

• “TheV-Modelreflectsaprojectmanagementviewofsoftwaredevelopmentandfitstheneedsofprojectmanagers,accountantsandlawyersratherthansoftwaredevelopersorusers.”

36

Page 37: The Software Development Process (SDLC)

Spiralmodel

37

Page 38: The Software Development Process (SDLC)

Spiralmodel

• SomekeyaspectafromWaterfallandRAD• Iterativeriskanalysis• Suitableforlarge-scalecomplexsystems

38

Page 39: The Software Development Process (SDLC)

AgileSoftwareDevelopment

Hans-PetterHalvorsen

Page 40: The Software Development Process (SDLC)

40

Page 41: The Software Development Process (SDLC)

Agile

41

• Agroupofsoftwaredevelopmentmethods• Iterativeapproach• Self-organizingandcross-functionalTeamsExamples:• eXtremeProgramming(XP)• Scrum• Kanban

Page 42: The Software Development Process (SDLC)

Agile

42

FocusonProgrammig FocusonProcess

XP

Scrum Kanban

Flow-basedTimebox-based

Page 43: The Software Development Process (SDLC)

Scrum

43

DailyScrumMeetings

SprintReview

Page 44: The Software Development Process (SDLC)

Scrum• AFrameworkforSoftwareDevelopment• AgileSoftwareDevelopmentmethod• Simpletounderstand• Flexible• Exremelydifficulttomaster!• Self-organizingTeams(3-9persons)• ScrumTeam:– ProductOwner– ScrumMaster– DevelopmentTeam

44

Page 45: The Software Development Process (SDLC)

Kanban

• KanbanisbasedonLeanandToyotaproductionpriciples– Just-in-Timeprinciple

• Kanbanhasfewer“rules”thanscrum• Kanbanisflow-based,whileScrumisTimebox-based(Sprints)

• LimitWIP(WorkinProgress)• LessfocusonEsitmation

45

Page 46: The Software Development Process (SDLC)

Kanbanboard(Taskboard)

46

https://kanbanflow.com

SimiliartotheTaskboardusedinScrum

Page 47: The Software Development Process (SDLC)

eXremeProgramming(XP)

• AnAgilemethod• PairProgramming• CodeReviews• UnitTesting• StandupMeetings

47

Page 48: The Software Development Process (SDLC)

eXremeProgramming(XP)

48

Page 49: The Software Development Process (SDLC)

TDD

49

Page 50: The Software Development Process (SDLC)

“Therearenorightorwrongsoftwareprocesses”IanSommerville

50

Itisbettertouseasoftwaredevelopmentmetodthanusingnone

Butsomeonemaybebetterthanotherinagivensituation

Finally…

Page 51: The Software Development Process (SDLC)

Summary

51

Learnfromyourpreviousmistakes!

Page 52: The Software Development Process (SDLC)

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

Page 53: The Software Development Process (SDLC)

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:[email protected]:http://home.hit.no/~hansha/