Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Easy to use
V-SHAPED WEAKNESSES
Does not easily handle concurrent events
Does not handle iterations or phases
PROTOTYPE
DESIGM
PROTOTYPE
IMPLEMENTATION
PROTOTYPE
EVALUATION
BY CUSTOMER
NO REQUIREMENTS FOR
REQUIREMENTS CORRECTIONS, CHANGES
FULFILLED ? AND ADDITIONS
YES
SYSTEM TESTS AND
ACCEPTANCE TESTS
SYSTEM CONVERSION
SYSTEM OPERATION
AND MAINTENANCE
PROTOTYPING MODEL
A preliminary project plan is developed
An partial high-level paper model is created
The model is source for a partial requirements
specification
A prototype is built with basic and critical attributes
The designer builds
the database
user interface
algorithmic functions
The designer demonstrates the prototype, the user
evaluates for problems and suggests improvements.
This loop continues until the user is satisfied
PROTOTYPING MODEL
Customers can “see” the system requirements as
they are being gathered
Developers learn from customers
A more accurate end product
Unexpected requirements accommodated
Allows for flexible design and development
Steady, visible signs of progress produced
Interaction with the prototype stimulates
awareness of additional needed functionality
PROTOTYPING MODEL
Tendency to abandon structured program
development for “code-and-fix” development
Bad reputation for “quick-and-dirty” methods
Short-lived demonstrations
If code reviews are good, review code all the time (pair programming)
If testing is good, everybody will test all the time
If simplicity is good, keep the system in the simplest design that supports its
current functionality. (simplest thing that works)
If design is good, everybody will design daily (refactoring)
If architecture is important, everybody will work at defining and refining
the architecture (metaphor)
If integration testing is important, build and integrate test several times a
day (continuous integration)
If short iterations are good, make iterations really, really short (hours rather
than weeks)
ADAPTIVE STEPS
1. Project initialization – determine intent of
project
2. Determine the project time-box (estimation
duration of the project)
3. Determine the optimal number of cycles and
the time-box for each
4. Write an objective statement for each cycle
5. Assign primary components to each cycle
6. Develop a project task list
7. Review the success of a cycle
8. Plan the next cycle
TAILORED SDLC MODELS
Any one model does not fit all projects
If there is nothing that fits a particular project,
pick a model that comes close and modify it for
your needs.
Project should consider risk but complete spiral
too much – start with spiral & pare it done
Project delivered in increments but there are
serious reliability issues – combine incremental
model with the V-shaped model
Each team must pick or customize a SDLC
model to fit its project
AGILE WEB REFERENCES
DePaul web site has links to many Agile references
http://se.cs.depaul.edu/ise/agile.htm