Lazy Contemplative Always Using Imagination Most Important Trait.
-
Upload
joshua-wiggins -
Category
Documents
-
view
219 -
download
1
Transcript of Lazy Contemplative Always Using Imagination Most Important Trait.
![Page 1: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/1.jpg)
LECTURE 2:SOFTWARE LIFE CYCLE
![Page 2: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/2.jpg)
Lazy
![Page 3: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/3.jpg)
Contemplative
![Page 4: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/4.jpg)
Always Using Imagination
![Page 5: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/5.jpg)
Most Important Trait
![Page 6: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/6.jpg)
Why Do Models Matter?
Client has 2 programmers with different styles
Bob Joe
![Page 7: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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 Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $0
Total $100,000
$0 $150,000
$0
![Page 9: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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 Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $0
40% $100,000 $20,000 $100,000 $10,000
Total $200,000
$20,000 $250,000
$10,000
![Page 10: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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
%Complete
Bob Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $0
40% $100,000 $20,000 $100,000 $10,000
60% $100,000 $20,000 $100,000 $10,000
Total $300,000
$40,000 $350,000
$20,000
![Page 11: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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
te
Bob Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $0
40% $100,000 $20,000 $100,000 $10,000
60% $100,000 $20,000 $100,000 $10,000
80% $100,000 $20,000 $100,000 $10,000
Total $400,000
$60,000 $450,000
$30,000
![Page 12: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/14.jpg)
Final Accounting
%Complete
Bob Joe
Work (in $)
Rework (in $)
Work (in $)
Rework (in $)
20% $100,000 $0 $150,000 $0
40% $100,000 $20,000 $100,000 $10,000
60% $100,000 $20,000 $100,000 $10,000
80% $100,000 $20,000 $100,000 $10,000
100% $150,000 $20,000 $50,000 $10,000
Total $550,000
$80,000 $500,000
$40,000
![Page 15: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/19.jpg)
Why These Phases Matter
![Page 20: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/22.jpg)
Waterfall Model Is IterativeWaterfall Model Is Iterative
![Page 23: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/html5/thumbnails/23.jpg)
Waterfall Model Is IterativeWaterfall Model Is Iterative
Heck of a job, Brownie.
![Page 24: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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: Lazy Contemplative Always Using Imagination Most Important Trait.](https://reader036.fdocuments.us/reader036/viewer/2022062422/56649f0d5503460f94c20fd5/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