Title: Software Lifecycles and Iterative Development
1Software Lifecycles and Iterative Development
2Agenda
- Deliverables
- NLT Friday, August 25 _at_ 2400 - Status Report 1
- Project Selection
- Team Formation/Roles/Contact information
- Project Status Report Format
- Project/Team Formation
- Team Signup
- Lecture Software Process Lifecycles
3Available Projects
- New
- High School Sports Quiz Program
- Visualization to support educational grants
- Tech recruitment Database
- Tech screen savers
- Still need a team for Earth Curator and ideally 1
more for War Game Simulation
4Software Development Activities
- Lifecycle Selection
- System Engineering
- Requirements
- Determining Needs
- Analysis
- Design
- Coding
- Debugging
- Integration
- Testing
- Performance Testing Optimization
- Analysis Management
- Deployment
- Delivery
- Maintenance
- Upgrades
5Support Activities
- Project Planning and Tracking
- Customer Interaction
- Configuration Management
- Process Improvement
- Verification/Validation
- Reviews/Audits
- Training
- Documentation
- Personnel Management
6Lifecycles
- Major Task Identification
- Sequencing
- General model to be tailored
In the beginning was......
7Waterfall Model
Pfleeger 98
8Code and Fix
- Really Bad
- Really Common
- Advantage
- No Overhead
- No Expertise
- Disadvantage
- No means of assessing progress
- Flawed design can lead to throwaway
- Throwaway project only
9Spiral Model
Risk analysis
Constraints
4
Pfleeger 98
4
Risk analysis
Constraints
3
3
4
Alternatives
Risk analysis
Constraints
2
3
2
Alternatives
2
Alternatives
Risk analysis
Proto
-
Proto
-
Proto
-
Constraints
1
type
type
type
Alternatives
Prototype
Budget
2
3
4
Budget
Budget
Budget
1
1
3
4
1
1
2
start
Detailed
Requirements,
Concept of
Software
design
life-cycle plan
operation
design
Software
requirements
Development
Validated
Integration
plan
requirements
Code
and test plan
Validated,
verified design
Unit test
System
test
Acceptance
Implementation
test
plan
PLAN
DEVELOP AND TEST
10Spiral
- Highly sophisticated
- Each spiral addresses one or more risks in
development - Move on only when risk is acceptable
- Main disadvantage is complication
- Main advantage is risk reduction
11Evolutionary Prototyping
Initial Concept
Design and Implement Initial Prototype
Refine Prototype Until Acceptance
Complete And Release Prototype
Use for rapidly changing requirements Customer
wont commit to specification No one really
understands what they want
12Staged Delivery
Concept Analysis
Stage 1 Detailed Design, Code Test
Requirements Analysis
Stage 2 Design, Code Test
Architectural Design
Stage n Design, Code Test
13Combinations (Tailoring)
- Waterfall with risk reduction (Spiral
Waterfall) - Evolutionary Delivery (Staged Delivery
Evolutionary Prototyping) - Design to Schedule (Staged Delivery Scope
reduction)
14Extreme Programming
15Common Themes
- Iteration
- Each iteration a mini-project
- Duration 1-6 weeks
- Each piece is not a prototype, but part of the
final system - Understand risk vs. business value in planning
iterations - Put pieces of the system into users hands as
early as possible
16Common Themes
- Timeboxing
- Setting the date for an iteration
- Date cannot change
- Only functionality can change
- Are of short duration (not a 16 week timebox)
17Iterative Development
- Not all requirements known up front.
- Product vision and top n high-priority
requirements are known - No requirements changes inside an iteration.
(Customer Negotiation) - Customer agrees on what requirements are in each
timeboxed iteration.