software life-cycle

The phases a software product goes through
between when it is conceived and when it is no longer
available for use. The software life-cycle typically includes
the following: requirements analysis, design,
construction, testing (validation), installation, operation,
maintenance, and retirement.

The development process tends to run iteratively through these
phases rather than linearly; several models (spiral, waterfall
etc.) have been proposed to describe this process.