Learning never exhausts the mind
Home >  Coding > Software Engineering > System Development Life Cycles (SDLC)

Published 18th May 2010 by

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 be looking at system development life cycles as a tool for systems analysis and software engineering.

System Development Life Cycles fall into a number of different systems development models, iterative being the most common but they also include waterfall, spiral and chaos models. They all encompass the full project life cycle. Common software development methodologies include Agile/Scrum, Structured Systems Analysis and Design Method (SSADM) and Microsoft Solutions Framework (MSF).

Each step in a system development life cycle can be broken down into many 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 is iterative as well as the stages involved along the way.

Different methodologies will have different variations of this lifecycle model. A common iterative system development life cycle is show in the diagram below and each stage is described after the diagram.

System Development Life Cycle

System Development Life Cycle

Initial Idea

All projects must start with an initial idea. Usually, this consists of a brief definition on what is the project all about, what is its purpose and what the project aims to accomplish. How will the success of the project be measured?

Feasibility Study

Expanding on the Initial Idea, the Feasibility Study 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 development of the project is justified in terms of economic and organisational terms.

The main role of the analyst in the feasibility study is to analyse the current system at a high level. Data Flow Diagrams (DFD) are used to describe how the current system performs and to illustrate known problems.

Feasibility studies are not carried out for all projects, and smaller projects omit this stage.

Requirements Analysis

The Requirements Analysis stage defines a series of possible solutions to the problem and presents them to management in terms of business options. These options may be supported by technical documents such as high-level DFD's, 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, driving system functions and to develop user role specifications, prototypes and process specifications.

Systems Analysis and Specification

The Systems Analysis stage is an extension to the feasibility study. If the project has a feasibility study then 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, the specification is the basis for the work done by the system designers.

Systems Design

This stage deals with how the requirements of the new system are carried out (how the logical model is implemented as a physical system). The system designer will develop a number of design options and test them against the requirements specification and design criteria. The one that comes 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 specification with input from users and the detailed designs produced from the selected design.


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 requirements of the specification.


Within the life cycle there are various levels of testing as well as 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 must be tested as well as normal operating procedures.

Finally, user acceptance testing is carried out by the users in stages to ensure that the system is usable.

Any modifications are passed back to the design stage where changes are made as necessary and passed to the development team.


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 to carry out their business activities.

There are two main approaches to implementation a project:

  • Phased: Stand-alone subsets of the system are implemented over a period of 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 usable by the new system. The process of 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 that it is achieving its objectives, identify any aspects that can be improved or any operational problems. Maintenance falls into two categories, implementation of new features or elimination of errors.

4 thoughts on “System Development Life Cycles (SDLC)
  • 11th July 2017 at 12:00 am

    7 years now and your article on System development life cycle is still very helpful. It has aided my note-making on the topic. Thanks a lot.

  • 14th January 2015 at 12:00 am

    Thanks so much!!! You just saved my ass in class you're a darling

  • 22nd October 2014 at 12:00 am

    Thanks, your diagram really help me in class

  • Darrel Raynor
    6th July 2013 at 12:00 am

    Hi Tim,
    Your diagram was just the thing for my Introduction as part of a custom business analysis class I am giving. Gave you credit on the slide.


Leave a Reply

Fields marked with * are mandatory.

We respect your privacy, and will not make your email public. Hashed email address may be checked against Gravatar service to retrieve avatars. This site uses Akismet to reduce spam. Learn how your comment data is processed.