A software life cycle model is either a descriptive or prescriptive characterization of how software is or should be developed.

A descriptive model describes the history of how a particular software system was developed.

A prescriptive model prescribes how a new software system should be developed.

A proscriptive model prescribes how a new software system might be developed.