the software development process (sdlc)

Post on 18-Jan-2017

230 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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:hans.p.halvorsen@hit.noBlog:http://home.hit.no/~hansha/

top related