lecture’5: so,ware’development’lifecycle’ (sdlc)’

36
lecture 5: so,ware development lifecycle (sdlc) csc302h winter 2014

Transcript of lecture’5: so,ware’development’lifecycle’ (sdlc)’

Page 1: lecture’5: so,ware’development’lifecycle’ (sdlc)’

lecture  5:  so,ware  development  lifecycle  

(sdlc)  

csc302h winter 2014

Page 2: lecture’5: so,ware’development’lifecycle’ (sdlc)’

recap  from  last  9me  

•  software design with uml sequence & use case diagrams –  recommend  one  of  these  books:  

Page 3: lecture’5: so,ware’development’lifecycle’ (sdlc)’

recap  from  last  9me  (2)  

•  modeling system behavior with sequence diagrams –  uml  collabora3on  diagram  captures  control  flow,  sequence  is  a  different  rendering  

–  emphasis  is  on  3me  and  ordering  of  “messages”  –  objects  on  top,  arrows  are  messages,  3me  is  ver3cal  

–  interac3on  frames  (alt,  opt,  loop,  par,  …)  

Page 4: lecture’5: so,ware’development’lifecycle’ (sdlc)’

recap  from  last  9me  (3)  

•  when to use sequence diagrams? –  discussing  design  op3ons  –  explaining  design  paDerns  (academic  exercise)  

•  ex.  observer:  

 –  elabora3ng  on  use  cases  (prac3cal  exercise)  

Page 5: lecture’5: so,ware’development’lifecycle’ (sdlc)’

recap  from  last  9me  (4)    

•  use case diagrams –  capture  system  requirements  –  show  how  users  interact  with  a  system  –  short  phrase  to  sum  up  a  dis3nct  piece  of  func3onality  

–  “actors”  (s3ck  ppl)  show  a  role  that  a  user  takes  on  during  an  interac3on  

–  each  use  case  has  one  or  more  actors  –  rela3onships  between  use  cases  like  <<extends>>,  <<uses>>,  <<includes>>  

–  reverse  engineering  use  cases  

Page 6: lecture’5: so,ware’development’lifecycle’ (sdlc)’

real-­‐world  examples  

Some  real  examples  of  modeling  with  uml  

Page 7: lecture’5: so,ware’development’lifecycle’ (sdlc)’

real-­‐word  example  #1  EligibilityWizardPresenter/View

EligibilityQuestionNavigator

EligibilityQuestionPresenter/

View

performEligibilityCheck()

new EligibilityQuestionNavigator()

Term/Life EligibilityQuesti

onUtil

appendQuestionsForEligibiityCheck()

Number of Questions Added

Get Number of Questions

[Number of Questions not 0]resumeAtNextUnansweredQuestion()

[Number of questions = 0]Error: Please select Plan

MessageDialog

nextQuestion:EligibilityQuestion

[nextQuestion == null]display message: You have completed wizard before, press previous to change answers

[nextQuestion!=null]displayQuestion (dispatch ChangeEligibilityQuestionEvent)

clickedNext()

[if answer == null]display: Please answer question before proceeding

[if answer not null]save answer, getNextQuestion

getQuestionView().getValue()

[nextQuestion == null]display message: You have completed wizard!

[nextQuestion!=null]displayQuestion (dispatch ChangeEligibilityQuestionEvent)

EligibilityWizardPresenter/View

EligibilityQuestionNavigator

EligibilityQuestionPresenter/

View

previous()

[if answer == null]display: Please answer question before proceeding

[if answer not null]save answer, getPreviousQuestion

[previousQuestion!=null]displayQuestion (dispatch ChangeEligibilityQuestionEvent)

return nextQuestion

return previousQuestion

Cancel/Close

Dispatch EligibilityChangedEvent

Page 8: lecture’5: so,ware’development’lifecycle’ (sdlc)’

real-­‐word  example  #2  

Page 9: lecture’5: so,ware’development’lifecycle’ (sdlc)’

real-­‐word  example  #3  

Page 10: lecture’5: so,ware’development’lifecycle’ (sdlc)’

real-­‐word  example  #4  

Page 11: lecture’5: so,ware’development’lifecycle’ (sdlc)’

so,ware  development  lifecycle  (sdlc)  

Page 12: lecture’5: so,ware’development’lifecycle’ (sdlc)’

sdlc  

•  tend to talk about sdlc in terms of a dichotomy –   “agile”  vs.  well…um…“not  agile”  –  or,  “planned”  vs.  “con3nuous”  –  others  tend  to  (incorrectly)  think  that  the  deployment  method  implies  the  process  

•  saas              agile  •  installed            tradi3onal  

•  think more in terms applying the process on an individual feature, or an aggregate

Page 13: lecture’5: so,ware’development’lifecycle’ (sdlc)’

example  feature  workflow  

Page 14: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 15: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 16: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 17: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 18: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 19: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 20: lecture’5: so,ware’development’lifecycle’ (sdlc)’

GanD  Charts  &  Waterfall  

Page 21: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 22: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 23: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 24: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 25: lecture’5: so,ware’development’lifecycle’ (sdlc)’

goal  of  sdlc  

•  what’s the goal of a good sdlc? –  passes  all  the  tests  (external  quality  aDributes)  –  good  design/architecture  (internal)  –  good  user  experience  (quality  in  use)  –  process  quality  (can  process  help  ensure  product  quality)  

Page 26: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 27: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 28: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 29: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 30: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 31: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 32: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 33: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 34: lecture’5: so,ware’development’lifecycle’ (sdlc)’
Page 35: lecture’5: so,ware’development’lifecycle’ (sdlc)’

which  process  is  the  best?  

•  all processes have their pros and cons, but only in the context of a given project. –  does  con3nuous  deployment  make  sense  for  the  next  version  of  microsoK  office?  

– what  process  is  best  for  an  x-­‐ray  machine?  –  Space  ShuDle  avionics  –  hal/s  developed  specifically  for  shuDle  

•  completely  independently  developed  primary  and  backup  systems!  

–  curiosity  rover  soKware,  installed  in  flight!  and  then  upgraded  on  mars!  

•  again, depends on the nature of the project

Page 36: lecture’5: so,ware’development’lifecycle’ (sdlc)’

break,  then  short  tutorial