A structure imposed on the development of a software product that consists of splitting the work into different phases of activities for better planning and management.
They are composed of many activities, mainly:
Requirement analysis – of a desired software product.
Specification – is the task of precisely describing the software to be written.
Software Architecture – refers to an abstract representation of that system.
Implementation – reducing a design to code.
Testing – of parts of software.
Documentation – of the internal design of software for future maintenance and enhancement.
Training & Support – so te software can be put to use efficiently.
Maintenance – and enhance of software to cope with newly discovered problems or requirements.