System Development Life Cycles (SDLC) in Software Engineering

A look at the System Development Life Cycles which guide a project from the initial concept to a functional system with support cycles.

By Tim Trott | Software Engineering | May 18, 2010
980 words, estimated reading time 3 minutes.

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 several 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 shown in the diagram below and each stage is described after the diagram.

System Development Life Cycle
System Development Life Cycles (SDLC) in Software Engineering

Initial Idea

All projects must start with an initial idea. Usually, this consists of a brief definition of 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 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 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 upon, 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 several 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 specifications with input from users and the detailed designs produced 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 requirements of the specification.

Testing

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.

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 to carry out their 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 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 and identify any aspects that can be improved or any operational problems. Maintenance falls into two categories, implementation of new features or elimination of errors.

Was this article helpful to you?
 

Related ArticlesThese articles may also be of interest to you

CommentsShare your thoughts in the comments below

If you enjoyed reading this article, or it helped you in some way, all I ask in return is you leave a comment below or share this page with your friends. Thank you.

This post has 4 comment(s). Why not join the discussion!

We respect your privacy, and will not make your email public. Learn how your comment data is processed.

  1. FC

    On Tuesday 11th of July 2017, Fidelis Chalokwu said

    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.

  2. PE

    On Wednesday 14th of January 2015, peace said

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

  3. AH

    On Wednesday 22nd of October 2014, Albertha Herrion said

    Thanks, your diagram really help me in class

  4. DR

    On Saturday 6th of July 2013, Darrel Raynor said

    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.
    Darrel