Software Development Life Cycle Models

  Software Development Software Development Software Development Software Development Software Development Software Development Software Development Software Development Life Cycle Models Life Cycle Models Life Cycle Models Life Cycle Models Life Cycle Models Life Cycle Models Life Cycle Models Life Cycle Models 145 145 145 145

Questions to Questions to ask ask::

  What is What is the the problem? problem? ◦◦

  What is What is the the solution? solution? ◦◦

  What are What are the the best best mechanisms mechanisms to to implement implement the the ◦◦ solution? solution? How How is is the the solution solution constructed? constructed?

  ◦◦ Is the Is the problem problem solved? solved?

  ◦◦ Can Can the the customer customer use use the the solution? solution?

  ◦◦ How do How do we we deal deal with with changes changes that that occur occur during during the the

  ◦◦ development? Are development? Are enhancements enhancements needed needed ??

  146 146

Software Development Software Development Life Life Cycle Cycle (SDLC) (SDLC)::

  Set of Set of activities activities and and their their relationships relationships to to each each other other to to ◦◦ support the support the development development of of a a software software system system An SDLC An SDLC model model breaks breaks down down the the development development process process into into a a

  ◦◦ sequence of sequence of phases phases or or stages stages..

Software Software Development Development methodology methodology::

  A collection A collection of of techniques techniques for for building building models models applied applied across across ◦◦ the the software software life life cycle cycle

  147 147 A framework A framework that that describes describes the the activities activities performed performed at at each each stage stage of of a a software software development development project project It is It is divided divided into into seven seven phases seven seven seven seven seven seven phases phases phases phases phases phases phases Each phase Each phase has has unique unique unique unique activities unique unique unique unique activities activities activities activities activities activities activities

  148 148 148 148 It provides It provides us us with with a a structure structure in in which which to to work work It forces It forces us us to to think think of of the the “big “big picture” picture” and and follow follow steps steps so so that that we we reach reach it it without without glaring glaring deficiencies deficiencies Without it Without it you you may may make make decisions decisions that that are are individually individually on target on target but but collectively collectively misdirected misdirected It It is is a a management management tool tool

  149 149

  Virtually all Virtually all lifecycles lifecycles share share these these steps/stages/phases steps/stages/phases::

  Requirements gathering Requirements gathering ◦◦

  Planning Planning ◦◦

  Analysis Analysis ◦◦

  Design Design ◦◦

  Implementation Implementation ◦◦

  Testing Testing ◦◦

  Maintenance Maintenance ◦◦

  how do how do you you combine combine them, them, and and in in what what

Key Key question question::

  order? order?

  150 150 is the is the art art of of scheduling scheduling the the

Project Project planning planning necessary necessary

  in time, time, space space and and across across staff staff in in order order to to

  activities activities,, in

  optimise:: optimise

  project risk project risk ◦◦ profit profit

  ◦◦ customer satisfaction customer satisfaction

  ◦◦ worker satisfaction worker satisfaction

  ◦◦ long--term long term company company goals goals

  ◦◦ 151 151

  There are There are hundreds hundreds of of different different SDLC SDLC models models::

  waterfall waterfall

  ◦◦

  Iterative Iterative

  ◦◦

  incremental incremental

  ◦◦

  spiral spiral

  ◦◦

  RApid Prototyping RApid Prototyping

  ◦◦

  Unified Process Unified Process (UP) (UP)

  ◦◦

  Agile methods, Agile methods, eXtreme eXtreme Programming Programming (XP) (XP)

  ◦◦ … …

  ◦◦ 152 152

  In In

  ,, the the outcome outcome of of one one phase phase acts acts as as the the input input for for the the next next phase phase

Waterfall Waterfall model model

Easy Easy to to understand understand

  154 154

  than than cost cost or or schedule schedule

  quality quality is is more more important important

  Good Good for for management management control control (plan, (plan, staff, staff, track) track) Works Works well well when when

  requirements requirements stability stability

  Sets Sets

  to to inexperienced inexperienced staff staff

  ,, easy easy to to use use

  153 153 Requirements gathering Analysis Design Implementation Testing Maintenance Planning

  ◦◦ Porting Porting an an existing existing product product to to a a new new platform platform

  ◦◦ New New version version of of an an existing existing product product

  ◦◦ Technology Technology is is understood understood

  ◦◦ Product Product definition definition is is stable stable

  ◦◦ Requirements Requirements are are very very well well known known

  When When to to use use the the Waterfall Waterfall Model Model ??

  

sequentially sequentially

Provides Provides structure structure

Milestones Milestones are are well well understood understood

  All requirements All requirements must must be be known known upfront upfront Deliverables created Deliverables created for for each each phase phase are are considered considered frozen frozen –– inhibits inhibits flexibility flexibility Can give Can give a a false false impression impression of of progress progress Does Does not not reflect reflect problem problem--solving solving nature nature of of software software development –– iterations development iterations of of phases phases Integration is Integration is one one big big bang bang at at the the end end Little opportunity Little opportunity for for customer customer to to preview preview the the system system (until (until it may it may be be too too late) late)

  155 155

  An iterative An iterative does not not attempt attempt to to start start with with a a

  SDLC model SDLC model does

  full full specification specification of of requirements requirements With an With an iterative iterative model, model, development development begins begins by by specifying specifying and implementing and implementing just just part part of of the the software, software, which which can can then then be reviewed be reviewed in in order order to to identify identify further further requirements requirements This process This process is is then then repeated, repeated, producing producing a a new new version version of of the software the software for for each each cycle cycle of of the the model model

  Example Example 156 156

  To use To use the the iterative iterative model model::

  When requirements When requirements of of the the complete complete system system are are clearly clearly ◦◦ defined and defined and understood understood..

  When When the the project project is is big big..

  ◦◦ When Major When Major requirements requirements must must be be defined defined;; however, however, some some

  ◦◦ details can details can evolve evolve with with time time..

  157 157

  In iterative In iterative model model we we are are building building and and improving improving the the product product step step by by step step.. Hence Hence we we can can track track the the defects defects at at early early stages.. This stages This avoids avoids the the downward downward flow flow of of the the defects defects In iterative In iterative model model we we can can get get the the reliable reliable user user feedback feedback..

  When presenting When presenting sketches sketches and and blueprints blueprints of of the the product product to to users users for for their their feedback, feedback, we we are are effectively effectively asking asking them them to to imagine how imagine how the the product product will will work work..

  In In iterative iterative model model less less time time is is spent spent on on documenting documenting and and more time more time is is given given for for designing designing..

  158 158 Each phase Each phase of of an an iteration iteration is is rigid rigid with with no no overlaps overlaps Costly Costly system system architecture architecture or or design design issues issues may may arise arise because not because not all all requirements requirements are are gathered gathered up up front front for for the the entire lifecycle entire lifecycle

  159 159 In incremental In incremental model model the the whole whole requirement requirement is is divided divided into into various builds various builds.. Multiple Multiple development development cycles cycles take take place place here here Cycles Cycles are are divided divided up up into into smaller, smaller, more more easily easily managed managed modules modules In In this this model, model, each each module module passes passes through through the the requirements, requirements, design, implementation design, implementation and and phases phases testing testing

  Final Final product product built built as as separate separate prototypes prototypes At the At the end, end, the the prototypes prototypes are are merged merged into into a a final final design design Finished when Finished when satisfies satisfies all all the the requirements requirements Example Example

  160 160

  Build 1 Plann- Implemen- Mainten- Analysis Design Testing ing tation Build 2 ance Implemen- Plann- Mainten- Analysis Design Requirements

  Testing tation Build 3 ing ance Plann- Implemen- Mainten- Analysis Design Testing ing tation Build n ance …..

  161 161 162 162 The incremental The incremental model model can can be be used used when when the the requirements requirements of the of the complete complete system system are are clearly clearly defined defined and and understood understood.. Major requirements Major requirements must must be be defined defined;; however, however, some some details details can evolve can evolve with with time time.. There There is is a a need need to to get get a a product product to to the the market market early early.. A new A new technology technology is is being being used used Resources Resources with with needed needed skill skill set set are are not not available available There are There are some some high high risk risk features features and and goals goals..

  163 163

Advantages Advantages Advantages Advantages Advantages Advantages Advantages Advantages Disadvantages Disadvantages Disadvantages Disadvantages Disadvantages Disadvantages Disadvantages Disadvantages

  Generates working Generates working software software Needs Needs good good planning planning and and quickly quickly and and early early during during the the design.. design software life software life cycle cycle..

  Needs Needs a a clear clear and and complete complete This model This model is is more more flexible flexible –– definition definition of of the the whole whole less costly less costly to to change change scope scope system system before before it it can can be be and requirements and requirements.. broken broken down down and and built built

  It is It is easier easier to to test test and and debug debug incrementally incrementally.. during a during a smaller smaller iteration iteration.. In In this this model model customer customer can can respond to respond to each each built built..

  Lowers Lowers initial initial delivery delivery cost cost.. Easier to Easier to manage manage risk risk because because risky pieces risky pieces are are identified identified and and handled handled during during it’d it’d iteration iteration

  164 164 is a a conceptual conceptual framework framework for for Agile Agile software software development development is software engineering software engineering that promotes that promotes development development iterations iterations throughout the throughout the life life--cycle cycle of of the the project project..

  Software developed Software developed during during one one unit unit of of time time is is referred referred to to as as an an iteration, which iteration, which may may last last from from one one to to four four weeks weeks.. Agile methods Agile methods also also emphasize emphasize working working software software as as the the primary primary measure of measure of progress progress

  169 169

  Light Light Weighted Weighted methodology methodology Small to Small to medium medium sized sized teams teams Changing requirements Changing requirements

  Changing Changing techniques techniques Simple design Simple design Minimal system Minimal system into into production production

  170 170

  171 171 Agile Agile is is iterative iterative:: it it works works by by breaking breaking the the project project down down into into little little bits bits of of user user functionalities functionalities called called user user stories stories

  2

  from from the the start start of of the the project, project, instead instead of of trying trying to to deliver deliver it it all all at at once once near near the the end end

  incrementally incrementally

  a a project project is is built built

  incremental incremental development development process process::

  Agile Agile is is an an

  3 Product Product Product Product Product Product Product Product backlog backlog backlog backlog backlog backlog backlog backlog

  3

  3

  3

  3

  3

  3

  2 Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration 3

  2

  2

  ,, prioritizing prioritizing them, them, and and then then continuously continuously delivering delivering them them in in short short two two week week cycles cycles called called iterations iterations..

  2

  2

  2

  1 Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration 2

  1

  1

  1

  1

  1

  1

  

Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration 1

  To To To To To do do do do do do do do

  To To To To To To To To do do do do do do do do To To To

  An An iteration iteration is is between between 1 1 week week and and 30 30 days days To To To To To To To To do do do do do do do do

  172 172

You make You make a a list list

  Sitting down Sitting down with with the the customer customer to to make make a a list list of of ◦◦ features they features they would would like like to to see see in in their their web web-- application application.. We We call call these these things things user stories user stories and and they become they become the the To Do To Do list list of the of the project project

You size You size things things up up

  Using U sing Agile Agile estimation estimation techniques techniques,, you you size size the the ◦◦ stories related stories related to to each each other, other, coming coming up up with with a a guess guess as to as to how how long long you you think think each each user user story story will will take take

You set You set some some priorities priorities

  Like most Like most lists, lists, there there always always seems seems to to be be more more to to do do ◦◦ than time than time allows allows.. So So you you ask ask your your customer customer to to prioritize their prioritize their list list so so you you get get the the most most important important stuff stuff done done first, first, and and save save the the least least important important for for last last

  173 173

You start You start executing executing

  Then you Then you start start delivering delivering some some value value.. You You start start at at ◦◦ the the top top.. Work Work your your way way to to the the bottom bottom.. Building, Building, iterating, iterating, and and getting getting feedback feedback from from your your customer as customer as you you go go

You update You update the the plan plan as as you you go go

  A Ass you you and and your your customer customer starting starting delivering, delivering, one one ◦◦ of two of two things things is is going going to to happen happen.. You'll You'll discover discover::

  1. You're going You're going fast fast enough enough.. All All is is good good.. Or, Or, 1.

  2.

  2. You You have have too too much much to to do do and and not not enough enough time time..

  At this At this point point you you have have two two choices choices.. You You can can either either ◦◦

  a) do less less and and cut cut scope scope (recommended) (recommended).. Or Or you you can b) can b) push push out out the the date date and and ask ask for for more more money money

  a) do

  174 174

Analysis, design, Analysis, design, coding, coding, and and testing are testing are continuous continuous activities activities

  Those Those activities activities continue continue for for the the duration duration ◦◦ of the of the project project By By doing doing those those steps steps continuously continuously:: Quality improves Quality improves because because testing testing starts starts

  ◦◦ from from day day one one Risk is Risk is reduced reduced because because you you are are getting getting

  ◦◦ feedback feedback early early Customers are Customers are happy happy because because they they can can

  ◦◦ make changes make changes without without paying paying exorbitant exorbitant costs costs

Planning Planning is is adaptive adaptive

  When When reality reality disagrees disagrees with with their plans, their plans, Agilists Agilists find find it it easier easier to to change change their their plans plans than than reality reality.. They They call call this this adaptive planning adaptive planning

  175 175

Scope Scope can can vary vary

  By fixing By fixing time, time, budget, budget, and and quality, quality, and and being being flexing flexing around around scope, scope, Agile Agile ◦◦ team's maintain team's maintain the the integrity integrity of of their their plans, plans, work work within within their their means, means, and and avoid the avoid the burn burn out, out, drama, drama, and and dysfunction dysfunction traditionally traditionally associated associated with with our industry our industry

Requirements can Requirements can change change

  Traditionally Traditionally change change has has been been shunned shunned on on software software projects projects because because of of it's it's ◦◦ high perceived high perceived cost cost late late in in the the game game.. Agile Agile challenges challenges this this notion notion and and believes the believes the cost cost of of change change can can be be relatively relatively flat flat

  176 176

Daily meetings Daily meetings

  Each day Each day at at the the same same time, time, the the team team meets meets so so as as to to bring bring ◦◦ everyone everyone up up to to date date on on the the information information that that is is vital vital for for coordination coordination:: each each team team members members briefly briefly describes describes any any "completed" contributions "completed" contributions and and any any obstacles obstacles that that stand stand in in their way their way This This meeting meeting is is normally normally timeboxed timeboxed to to a a maximum maximum duration duration

  ◦◦ of of 15 15 minutes, minutes, though though this this may may need need adjusting adjusting for for larger larger teams teams

  177 177

  Scrum Scrum

  XP Kanban Kanban RUP RUP .. ..

  XP

  178 178