The System Development Life Cycle (SDLC) defines the processes needed to design, build, test and maintain a software. It is a predictable phased approach to developing software. Each phase has a set of activities (things that need to be done), methods (how to do them), best practices (how best to do them) and deliverables (what to show) to assist the software engineer. It is accepted as an organised, controlled and stable approach which ensures that activities, actions and tasks performed are appropriate for the software to be produced.
Important SDLC Phases
The entire process is best explained with a linear flow of the phases as follows:
Requirements Engineering
System Design
System Implementation
System Testing
System Installation and Deployment
System Operation and Maintenance
Requirements Engineering
This is the "What" phase. What the system should do is identified here. It is where system objectives are understood and requirements specifications are stated. In this course, we will refer to this set of requirements specifications as the negotiated statement of requirements.
System Design
This is the "How" phase. In this phase, answers to questions on how to do it are obtained. Questions could be: how best to develop the software, what are the various parts and how these parts fit together, etc.
System Implementation
The "Do" phase. In this phase, code is written according to the system design.
The programmers will be involved in this phase. A programming language would also be used. Various software tools could be adopted to generate the code. The programs are written or generated based on the design specifications drawn up by the system engineer or system designer. The various components of the system are integrated into a complete system. As a general rule, programmers are not permitted to deviate from the given specifications without prior approval from the system engineer or the user.
System Testing
In the testing phase, the constructed system is put into a special test environment to check for errors and bugs and checked to ensure that the design fulfils the system requirements.
Various tests are conducted to ensure that the system will work as required. These are conducted at several points. Individually, the programmers will ensure that their code works. As a group, the developers will ensure that the system works, both on its own and when integrated with the rest of the systems in the organisation. The final tests are the acceptance tests where the users will check that the system executes as specified in the negotiated statement of requirements.
System Installation and Deployment
Most applications today are not standalone systems. They are required to work with other systems or need to exchange data with them. Thus, in this phase, after the system is installed in the production environment, before an application goes into operation, it has to be integrated with the rest of the systems in the organisation.
System Operation and Maintenance
Finally, the users would take over and run the system. The technical staff would shift into a supporting role, taking charge of the technical aspects of running the application. This is the maintenance phase of the SDLC. The system is continually assessed as to whether it continues to meet its requirements as well as being evaluated for performance. Changes are then made to the system if these are not met. If the system meets the requirements of the user, the operation of the system could last several years.