Business requirements are gathered in this phase. Who is going to use the system? How they will use the system? What data input should be done into the system? What data output should be given by the system? These are the general questions that get answered during a requirements gathering phase.
In this phase the system and software design is prepared from the requirement specifications. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
On receiving system design documents, the work is divided into modules and actual coding is started. Since, the code is produced in this phase, it is the main focus for the developer. This is the longest phase of the software development life cycle.
After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.
After successful testing, the product is delivered / deployed to the customer for their use. Once the customers start using the developed system, actual problems may come up and needs to be solved from time to time. This process where additional care is taken for the developed product is known as maintenance.