Software Development Life Cycle
It is important to approach software development projects in a structured, systematic way to ensure that the solution fully meets the needs of the end user. The software development project is broken down into a number of phases.
Requirements Study Phase
The earliest part of software development is the first discussion of the desired product with the client. It is identified any constraint that might stand in the way of developing the product. These constraints includes the client’s timeframe for delivery of the final product, technical limitations (e.g., whether the client has the hardware/software necessary to utilize the product), and budgetary constraints. Assuming there are no insurmountable constraints, the Requirements Study continues with extensive interviews of the client. In result the product description is being drawn up, which contains all features of the product.
In the Design Phase, developers produce a blueprint that meets the requirements spelled out in the product description. This is the phase in which developers create a prototype, which may begin as a simple hand-drawn sketch of a user interface. The goal of the Design Phase is to create a skeleton of the final product for the purpose of sharing work on the product with the client.
This stage is rather straightforward. Once the client has approved the prototype, developers continue to improve that prototype by writing code around it. In result the product described in the study phase of development is created.
During the test phase all aspects of the system are tested for functionality and performance. The system is tested for integration with other products as well as any previous versions with which it needs to communicate. Essentially, the key elements of the testing phase are to verify that the system contains all the end user requirements laid out in the analysis phase, that all the functions are accurately processing data, that the new system works with all other systems or prior systems, and that the new system meets the quality standards of the company and the customer. Once the major problems with the application have been ironed out, the software is ready to be deployed. Depending on the complexity of the application, would be created an error tracking system so other problems can be addressed during the Maintenance Phase.
With the application tested and deployed into the client’s workplace, the software enters the Maintenance Phase of the life cycle. Even with the best attention to detail in the earlier phases, changes to the software may be necessary for a number of reasons:
- The client may think of ways to extend the software in ways that were unforeseen before.
- The business rules that were in place at design time may change, necessitating changes in the software.