Gathering basic requirements of the business is the very first critical step of the project where the common challenges are addressed.
Software design is prepared from the requirement specifications which were studied in the first phase specifying hardware and system requirements and also helps in defining overall system architecture.
On receiving System Design documents, the project is split in modules/units and actual coding is started. In this phase the code is developed which is the main focus of the developer.
In this phase the developed code is tested against the requirements to ensure that the product meets the gathered requirements solving the needs addressed.
After successful testing the product is delivered / deployed to the customer for their use.
Maintaining and improving software to deal with with newly discovered problems or new requirements where the actual problems rises and needs to be addressed from time to time