Software Life-cycle: series of steps or phases,through which a software is produced
– From conception of products to end of life-cycle
–It could take some months or years to complete
Goals of each phase Software Development phases:
– To mark out a clear set of instructions or steps to perform during development cycle.
–To produce a tangible object which could be easily modified.
– To allow for a review of continuous work
– To specify actions or tasks to perform in the next phase
Some Life-cycle models:
Code-and-Fix: write some code, debug it, repeat (i.e., ad-hoc)
Waterfall: standard phases (req., design, code, test) in order
Spiral: assess risks at each step; do most critical action first
Evolutionary prototyping: build an initial small requirement spec, code it, then “evolve” the spec and code as needed.
Staged delivery: build initial requirement specs for several releases, then design-andcode each in sequence
Benefits of using a life-cycle
1.) It provides us with a structure in which to work
2.) It forces us to think of the “big picture” and follow steps so that we reach it without glaring deficiencies
3.) Without it you may make decisions that are individually on target but collectively misdirected
4.) It is a management tool
Limitations of life-cycle models
1.) Can lead to compromises and artificial constraints
2.) Risk of overemphasizing process (not the end in itself)
3.) Ways of evaluating models – risk management, quality/cost control, predictability, visibility of progress, customer involvement/feedback