System Development Life Cycles (SDLC) in Software EngineeringA look at the System Development Life Cycles which guide a project from the initial concept to a functional system with support cycles.

A system development life cycle (SDLC) is used in project management to guide a project from the initial concept to a functional system. In this article, we will look at system development life cycles as a systems analysis and software engineering tool.
System Development Life Cycles offer a range of systems development models, with iterative being the most common, but they also include waterfall, spiral, and chaos models. This flexibility allows for adaptation to different project needs. Common software development methodologies include Agile/Scrum, Structured Systems Analysis and Design Method (SSADM) and Microsoft Solutions Framework (MSF), providing a variety of approaches to suit different project requirements.
Each system development life cycle step can be broken down into smaller sub-steps or processes. Each stage follows logically after the previous, but it is an oversimplification to say that one stage is a distinct step after another. It is important to understand that the system lifecycle and the stages involved along the way are iterative.
Different methodologies will have different variations of this lifecycle model. A typical iterative system development life cycle is shown in the diagram below, and each stage is described after the diagram.

Initial Idea
All projects must start with an initial idea. Usually, this consists of a brief definition of the project, its purpose, and what the project aims to accomplish. For instance, a software development project might aim to create a new mobile app to improve customer engagement. How will the success of the project be measured? In the case of the mobile app, it could be the number of downloads, user ratings, or increased customer satisfaction.
Feasibility Study
Expanding on the Initial Idea, the Feasibility Study is a critical stage in the system development life cycle. It involves drawing up the terms of reference, which state the objectives and scope of the project, how long it should take and how the results should be presented. The terms of reference are usually drawn up by senior management. The feasibility study must determine if the project's economic and organisational development is justified, helping to ensure that the project is viable and aligns with the organization's goals and resources.
The analyst's main role in the feasibility study is to analyse the current system at a high level. They use tools such as data Flow Diagrams (DFD) to describe how the current system performs and illustrate known problems. These tools help the analyst to identify areas for improvement and potential risks, contributing to the overall feasibility assessment of the project.
Feasibility studies are not carried out for all projects; smaller projects omit this stage.
Requirements Analysis
The Requirements Analysis stage defines a series of possible solutions to the problem. It presents them to management in terms of business options. These options may be supported by technical documents such as high-level DFDs, Logical Data Models (LDM) and Work Practice Models. The requirements analysis report must also contain financial and risk assessments to be presented and supported by outline implementation descriptions.
The steps involved in the requirements analysis will define the flow of data in the system, drive system functions and develop user role specifications, prototypes and process specifications.
Systems Analysis and Specification
The Systems Analysis stage is an extension of the feasibility study. If the project has a feasibility study, the bulk of the work has already been done. Terms of reference will also be required if one does not exist. The output from this stage is the System Specification, which gives precise details of what the new system is required to do but does not go into how it does it. It provides a logical model of the new system.
Once agreed upon, the specification is the basis for the work done by the system designers.
Systems Design
This stage deals with how the new system's requirements are carried out (how the logical model is implemented as a physical system). The system designer will develop and test several design options against the requirements specification and design criteria. The one closest to the design brief with the most cost-effective use of equipment and personnel is selected and broken down into more detailed specs.
Because of this, the design stage has two phases: produce outline designs based on requirements specifications with input from users and the detailed designs made from the selected design.
Development
This is the only stage in the development where program code is written. The designs and specifications provide enough detail for the programmer to code and test individual modules. Each unit is tested to ensure that it meets the specification requirements.
Testing
Within the life cycle are various levels of testing and the unit testing performed in the development stage.
Link testing ensures that programs work together, e.g. the data passed from one program to another has the correct format.
System testing ensures that the system as a whole performs according to the design specification. Recovery procedures and standard operating procedures must be tested.
user acceptance testing is carried out by the users in stages to ensure the system is usable. This rigorous testing process ensures that the system meets the users' needs and expectations, providing a sense of confidence in its functionality.
Any modifications are passed back to the design stage, where changes are made as necessary and passed on to the development team.
Implementation
When the testing has been carried out to the user's satisfaction, the system, or parts of it, are put live. The "put live" phase can also be known as implementation, cutover or production. This is when the users start using the system for business activities.
There are two main approaches to implementing a project:
- Phased: Stand-alone subsets of the system are implemented over some time.
- Big Bang: The whole system is put live in one go.
Some systems will require special programs or tasks to convert existing data to a format the new system uses. Changing data from the old system to the new is called conversion.
Maintenance and Review
Once the system is put into place, maintenance is required to ensure satisfactory operation.
Maintenance should include regular reviews and evaluations to ensure it achieves its objectives and identify any aspects that can be improved or any operational problems. Maintenance falls into two categories: implementation of new features and eliminating errors.