Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.
-
Upload
valerie-short -
Category
Documents
-
view
227 -
download
0
Transcript of Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.
![Page 1: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/1.jpg)
Ch 2: Software Life-Cycle Models
CSCI 4320
![Page 2: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/2.jpg)
Ideal Software Development
![Page 3: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/3.jpg)
Actual Software Development
• Software developers make mistakes
• Clients requirements or environment changes while software is being developed.
The Software Development Life-Cycle involves many iterations (loops).
![Page 4: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/4.jpg)
Bus Fare Machine ProgramGOAL: Fare machines on bus must recognize real dollar bills.
• Episode 1: The first version is implemented• Episode 2: A fault is found
– The product is too slow because of an implementation fault (double precision instead of single precision used)
– Changes to the implementation are begun
• Episode 3: The requirements change– A different/faster dollar recognition algorithm has been discovered
• Episode 4: A new design is adopted– New design is more accurate.- Development is complete
• Epilogue: A few years later, these problems recur
![Page 5: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/5.jpg)
Teal Tractors Business Software
Goal : Handle sales, inventory and commissions for business
• While the Teal Tractors software product is being constructed, the requirements change
• The company is expanding into Canada– Additional sales regions must be added– Canadian taxes and other business aspects that are handled
differently– Two different currencies, US and CANADA
![Page 6: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/6.jpg)
Moving Target Problem
• Growing companies are always going to change
• Even if the reasons for the change are good, the software product can be adversely impacted– Dependencies will be induced– Potentially cause a regression fault (A fault in an
apparently unrelated part of the software)– feature creep
• There is no solution to the moving target problem
![Page 7: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/7.jpg)
Life-Cycle Models
• Waterfall Life• Code-and-Fix• Rapid-Prototyping • Extreme Programming and Agile
Processes• Synchronize-and-Stabilize• Spiral• Iteration and Incrementation
![Page 8: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/8.jpg)
Iteration and Incrementation
The basic software development process is
Iterative – Each successive version is intended to be
closer to its target than its predecessor
An Incremental Process– Miller’s Law : concentrate on ~ 7 chunks– Use stepwise refinement– handle in order of current importance
![Page 9: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/9.jpg)
Iteration and Incrementation
• Idea: – Project is divided into several mini projects
(increments)– Each project goes through all phases,
extending existing artifacts
• Multiple opportunities to check for faults• Always have a working version of
software
![Page 10: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/10.jpg)
Waterfall• No phase is complete until documentation for that phase
is complete.• Relying solely on written specifications may lead to
products that don’t meet client’s needs.
![Page 11: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/11.jpg)
Code-and Fix
• Developers simply throw code together and rework it as many times as necessary
• No Requirements written
• May work well for small programs
• Maintenance Nightmare!
![Page 12: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/12.jpg)
Rapid Prototyping
• Build a rapid-prototype and let client interact and experiment with it.
• Developers draw up specifications from rapid prototype and develop true system
• Key: Speed is of the essence
• The rapid prototype is discarded but lessons learned are retained.
![Page 13: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/13.jpg)
Open-Source Life-Cycle• A single individual has an idea for a program and
makes it available free of charge– SourceForge.net, FreshMeat.net
• Users become co-developers– Report and correct defects– Add additional functionality– Port program to new environment
• Individuals are not paid to participate• Release new versions after minimal testing
![Page 14: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/14.jpg)
Open Source Software• 100,000 open-source projects at SouceForge.net
and Freshmeat.net• ½ have never attracted a team to work on the
project• Majority have never been completed• But there are cases where it has been benefical
– Operating Systems (Linux), web browsers (Firefox), compilers (gcc), web servers(Apache)
![Page 15: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/15.jpg)
Extreme Programming and Agile Processes
New Approach: responsive to change, collaborate with client
• Client picks features based on time and cost estimates
• Build is broken down into tasks• Pair programming
– Two programmers work on one computer– Alternate typing every 15 or 20 minutes– Team members change coding partners daily
• Client works with team at all times
![Page 16: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/16.jpg)
Extreme Programming and Agile Processes
• No individual can work overtime for 2 weeks• No specialization: All members of team work on
analysis, design, coding• No overall design step before the various buildsAgile Processes• Less emphasis on analysis and design• Goal is to deliver working software frequently• Have short meetings often• Successful for small-scale projects where
customer requirements are vague
![Page 17: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/17.jpg)
Synchronized and Stabilize
• Microsoft
• Expected Features are prioritized
• Work is divided into several builds
• Each build is carried out by several teams working in parallel
• At the end of the day all teams synchronize and test
![Page 18: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/18.jpg)
Spiral
• Waterfall method with each phase preceded by risk analysis
• Uses prototypes to mitigate risks
• Advantage: Emphasis on alternatives and constraints supports the reuse of existing software
• Problem: When do you determine if a phase has been sufficiently tested?
![Page 19: Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.](https://reader035.fdocuments.us/reader035/viewer/2022062321/56649e0b5503460f94af2e7a/html5/thumbnails/19.jpg)
Comparison of Life-Cycle Models
Figure 2.12