lecture 2: software life cycle
DESCRIPTION
Lecture 2: Software Life cycle. Lazy. Contemplative. Always Using Imagination. Most Important Trait. Why Do Models Matter?. Client has 2 programmers with different styles. Bob. Joe. More about Bob & Joe…. Bob codes like Joe paid attention & like he did in college uses a proper model. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/1.jpg)
LECTURE 2:SOFTWARE LIFE CYCLE
![Page 2: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/2.jpg)
Lazy
![Page 3: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/3.jpg)
Contemplative
![Page 4: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/4.jpg)
Always Using Imagination
![Page 5: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/5.jpg)
Most Important Trait
![Page 6: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/6.jpg)
Why Do Models Matter?
Client has 2 programmers with different styles
Bob Joe
![Page 7: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/7.jpg)
More about Bob & Joe…
Bob codes like Joe paid attention & like he did in college uses a proper model
![Page 8: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/8.jpg)
Starting the Project
Both look at notes from project executive
Bob then writes test cases & starts coding
Joe determines client’s needs in meetings
%Complete
Bob JoeWork (in
$)Rework (in
$)Work (in
$)Rework (in
$)20% $100,000 $0 $150,000 $0Total $100,00
0$0 $150,00
0$0
![Page 9: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/9.jpg)
Project Getting Going
Bob duplicates code, but with minor tweaks Slows progress & requires expensive
reworking Design minimizing code created by Joe
Client’s requirements examined; bugs found & fixed
%Complete
Bob JoeWork (in
$)Rework (in
$)Work (in
$)Rework (in
$)20% $100,000 $0 $150,000 $040% $100,000 $20,000 $100,000 $10,000Total $200,00
0$20,000 $250,00
0$10,000
![Page 10: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/10.jpg)
Passing the Halfway Point
Bob works from scratch & does not reuse code Lacks plan to incorporate existing code
Joe uses design to write comments & outlines Finds majority of errors during this process When possible, merges classes & simplifies
design%Comple
teBob Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $040% $100,000 $20,000 $100,000 $10,00060% $100,000 $20,000 $100,000 $10,000Total $300,00
0$40,000 $350,00
0$20,000
![Page 11: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/11.jpg)
Project Nearing Completion
Bob’s code is project-specific & cannot be reused Getting concerned as project starts falling
behind Joe writes test cases from his system
design%Comple
teBob Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $040% $100,000 $20,000 $100,000 $10,00060% $100,000 $20,000 $100,000 $10,00080% $100,000 $20,000 $100,000 $10,000Total $400,00
0$60,000 $450,00
0$30,000
![Page 12: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/12.jpg)
Final Rush to the Deadline
Bob cannot describe system to get extra help Completing system takes lots of all-nighters
Joe’s coding is easy with well-defined tests Code could be written by (cheap) trained
monkeys
Bob Joe
![Page 13: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/13.jpg)
Final Rush to the Deadline
Bob cannot describe system to get extra help Completing system takes lots of all-nighters
Joe’s coding is easy with well-defined tests Code could be written by (cheap) trained
monkeys
Bob Joe Joe’s Team
![Page 14: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/14.jpg)
Final Accounting
%Complete
Bob JoeWork (in
$)Rework (in
$)Work (in
$)Rework (in
$)20% $100,000 $0 $150,000 $040% $100,000 $20,000 $100,000 $10,00060% $100,000 $20,000 $100,000 $10,00080% $100,000 $20,000 $100,000 $10,000
100% $150,000 $20,000 $50,000 $10,000Total $550,00
0$80,000 $500,00
0$40,000
![Page 15: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/15.jpg)
What’s The End Result?
Bob barely finishes Most goals are met Occasionally
crashes Close to original
goal
Joe is tanned & rested Met stated goals Reliable & robust Follows design
perfectly
![Page 16: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/16.jpg)
What’s The End Result?
Bob barely finishes Most goals are met Occasionally
crashes Close to original
goal
Joe is tanned & rested Meets all needs Reliable & robust Exactly follows
design
Client fires them bothNeither met requirements
![Page 17: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/17.jpg)
Models Matter
Client valued original concept above all else Joe and Bob both forgot about this main
point Joe gets better chair in unemployment line
To survive, life cycle models must succeed Nobody records failures or the merely
adequate But common saying is “There is no silver
bullet” One shared weakness no matter your
choices Need to keep your focus on requirements Keep in mind when being lazy
![Page 18: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/18.jpg)
Classroom Development
Always start from scratch Know all requirements from the start
And requirements will not change Coding begins immediately at start
Projects are trivial jokes in real-world If lasts 3 weeks, projects “very large”
Code cannot be reused Never look at again, anyway
![Page 19: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/19.jpg)
Why These Phases Matter
![Page 20: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/20.jpg)
Waterfall Model
Shows steps project goes through Can compress, but steps never skipped Assumes steps not revisited once done
Each step ends with some result Evidence process followed correctly Begin by testing results of previous
![Page 21: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/21.jpg)
Moving Target Problem
During development, requirements may change Changes may be important, but… …disrupts flow & introduces dependencies
Regression faults occur without good testing Error (“fault”) usually in unrelated portion of project Major pain to fix
As changes continue, faults will build up Redesign & reimplementation ultimately needed
Change is inevitable Your plans must handle gracefully
![Page 22: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/22.jpg)
Waterfall Model Is IterativeWaterfall Model Is Iterative
![Page 23: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/23.jpg)
Waterfall Model Is IterativeWaterfall Model Is Iterative
Heck of a job, Brownie.
![Page 24: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/24.jpg)
Incremental Development
Waterfall improved by working incrementally Focus on most important piece at the
moment Follow waterfall model to develop that
piece Focus on new most important piece once
complete Method also called stepwise refinement
Best of both worlds is incremental methods goal Amount of duplicative work minimized Improved reaction to change using smaller
chunks But handling changes requires good design
& plans
![Page 25: Lecture 2: Software Life cycle](https://reader035.vdocuments.site/reader035/viewer/2022070421/5681623b550346895dd26d61/html5/thumbnails/25.jpg)
For Next Lecture
Reading for Monday available on Angel Will be discussing software
requirements What are they? How do we figure them out? Can they be discussed in our teams?
Weekly activity problem #2 due at start of class Discussed at start of lecture, just like today Available on weekly assignment page