Software Development Life Cycle , SDLC

SDLC

Software Development Life Cycle

SDLC Models | SDLC Phases | SDLC Design Methodology

The software development life cycle  ( SDLC ) is a process  that defines the various steps  involved in the planning and development of any software development project . 

The software development project typically goes through various phases .The  SDLC defines the framework , activities in each design phase and the software design methodology for the design and development of software application.

Software Development Life Cycle , SDLC

In this article we will discuss in detail what is SLDC , different SLDC Models used in the software industry ,  various design stages (  SLDC Phases ) and the activities involved during that SLDC phase.

SDLC

Software Development Life Cycle

Table Of Contents

What Is Software ?

A software is a type of computer program that has been designed and developed to solve a specific problem . The software is also alternately referred as software package.

The software applications are designed to provide an interface to the system user to perform various tasks on the system.

Software Engineering , What is Software , SDLC
Software Engineering , What is Software , SDLC

In system architecture , a software application interacts with the operating system and in turn the operating system interacts with the hardware components.

What Is Application Software ?

The  application software is a computer program that provides functionality to the user to perform various tasks. The software internally might consist of group of programs . Each of these program performs a specific task .

For example , the MS Office software by Microsoft  is one of the most popular software used for creating and editing word documents .

What is Software
What is Software , MS Office Software

The MS Office software package internally consist of four more programs and that includes MS Excel , MS Power Point and MS Access . Each of these software component has been designed to performs a specific task.

What Is SDLC ?

Software Development Life Cycle

The Software Development Life Cycle ( SDLC ) is a design methodology used in the software development industry that provides a framework in terms of  SOP’s to produce a quality software .

The software development project goes through different phases such as planning , designing , building , testing  and finally deploying the software .

The SDLC defines these activities for software developer to be performed at different stages of software development project .

The SDLC is also alternately referred as software design and development process. The SDLC activities can be grouped into six phases.

Software Development Life Cycle , SDLC

SDLC Phases

Software Development Life Cycle Phases

The entire software development life cycle process can be planned and executed in seven phases . 

These SDLC phases include planning , defining requirements , designing software , building the software , conducting all the tests and validations , deploying the software and finally,  maintenance of the software system. 

SDLC Phase 1

Software Planning Phase

All software projects starts with the planning phase . 

The SLDC planning is one of the most important and first step in any software development process. During the software planning phase number of activities are initiated. These activities provide crucial information to the development team.

During the planning stage , the software development team has to plan for various activities , manpower resources , infrastructure required and other resources required to complete the project .

SDLC , Software Planning , SDLC Planning Phase

The software development team has to interact with all the stack holders in order to collect the information that defines the software requirements for the software project . 

The SDLC planning aims to produce the SRS – Software Requirements Specifications and the design objectives which software must achieve.

SDLC - Planning Phase

Requirements Elicitation

The requirements elicitation is a scientific process initiated during the initial planning phase of the SDLC. During the requirements elicitation stage involves collection and documentation of existing business processes, policies, procedures which software must support.

The requirements elicitation process extensively interact with all the stake holders to capture all the information necessary for defining the Software Requirements Specifications ( SRS ).

Software Engineering Requirements Elicitation , Software Development Life Cycle

SDLC - Defining The Requirements

The second phase in the  SDLC process is defining the user requirements . 

Defining the user requirements is one of the most crucial step in the software development process ( SDLC ). The software is designed and developed to meet the user needs and system requirements .

It is important to carefully and elaborately map and document the software system requirements ( SRS – Software Requirements Specifications ). 

The software developer must document this important information which is part of the agreement with the client company. After the project completion , the software performance is assessed  against the SRS and agreed design objectives.

Software Development Life Cycle

SDLC Activities , Software Development Life Cycle

Any deficiency in the SRS can lead to final software not meeting the user requirements. Such gaps in the SRS can result project delays and cost escalation. However , software developer team can easily avoid such gaps by carefully analyzing and drafting the SRS.

Any discrepancy in the software requirements must be sorted out and resoled with the concerned stake holders. The software developer must get the final user consensus and acceptance on the final draft of the SRS.

SDLC Phase 3

Software Design And System Architecture

The third step in the software design process is designing the software.

After finalizing the Software Requirements Specifications ( SRS ) by defining the user requirements , the next step is the software designing phase .

The software designing phase includes finalizing the various design features in terms of both software requirements and the supporting hardware requirements.

Software Design

The software architects and software developers explore the various alternative approaches and propose a final product solution. The software developer design the software system and specify the technology to develop the software system .

The software architect document this information about the product architecture  in  the Design Document Specifications ( DDS ).

The Design Document Specifications ( DDS ) includes all the relevant product architecture details such as various modules , the data flow within the software system , navigation and communication between modules and other software system design features .

The DDS are reviewed by all the stake holders against various desired parameters. The DDS assessment parameters include functional requirements , development time , budgeted cost of system development and  additional system hardware cost.

Software Development Life Cycle

SDLC Phase 4

Building The Software

After finalizing the software requirements specifications ( SRS ) , software design features and the software system architecture , the next step is to actually start building the software by coding.

Depending upon the type of the software being developed , the software development team can select the technology to be used for the development of the software .

The software development team can select the suitable platform , programming language , software framework , database management system  ( DBMS ) and other building tools as specified in the software system architecture.

Software Development Life Cycle , SDLC , Coding the Software

The Software building includes the activities such as coding the various modules , debugging the program code , compiling the various software components to test run the functionality .

The software under development could be split into number of modules depending upon the functionality . These modules can be independently simultaneously developed by a group of developers in order to keep the project on schedule.

After completing the coding work  for various modules , the next task is to test and validate the functionality of various modules. Once the software development part is over , the final testing of software can be initiated to ensure the accuracy and quality of the final product .

Software Development Life Cycle

SDLC Phase 4

SDLC - Software Testing

After building the software as per the software requirements specifications (SRS) and the design specifications specified in design document specifications (DDS), the next step is to test the final product .

The final software product that is ready for deployment is subjected to rigorous and extensive testing before its final deployment and delivery to the client.

The software testing is the standard process used in the software industry to test the software for its performance , accuracy of results , user experience  to ensure the  satisfaction of the user expectations .

Software Development Life Cycle , Software Testing
Software Development Life Cycle , Software Testing

The software testing includes conducting comprehensive set of tests to identify the gaps, errors, deviations  in the final software product. The software development team carries out the necessary corrections in the software.

The software testing process aims at complete elimination of all the software bugs before its final delivery to the client. The software bugs are defects in the software that can cause malfunction of the software and damage.

Software Development Life Cycle

SDLC Phase 5

SDLC - Software Deployment

The software is considered to be ready for deployment after building the software and it has successfully gone through all the tests to ensure bug free software .

For completely new setup the software deployment process becomes straight forward and relatively simple . It is important to follow the best software deployment practices  to ensure the successful deployment.

In case of software deployment in migration project, the deployment process is relatively difficult . The software migration project involves the replacement of existing software system with new software system.

In migration projects the existing software system is kept fully operational . The new software system is deployed that runs parallel to the existing system .

SDLC Process Steps

Software Development Life Cycle , SDLC , Software Deployment

In case of migration project it is important to manage the data import from previous system . The new software system goes through extensive user acceptance trials after being completely deployed.

The new software system deployment process is completed only after the successful completion of all user acceptance trials and all the deployment issues are resolved.

The deployment team usually consist of software engineers , computer engineers , Networking specialist , Database specialists , system integration specialist  and other expertise as may be required depending upon the nature and the scale of the project.  

Software Development Life Cycle

SDLC Phase 6

Software Maintenance

The software maintenance phase of the SDLC starts after the software deployment phase is successfully completed and the software is fully operational .

The software maintenance include number of activities such as periodic software upgrades , software patches , database clean up and repair works and resolving any other issues .

Software Maintenance Phase in SDLC

The software maintenance is an essential feature of SDLC. The software maintenance service is a paid service after the expiry of free maintenance period associated with the contract.

The software maintenance services generate additional revenue line for the software development company.

Software Development Life Cycle

SDLC Models

SDLC Methodologies

The software development life cycle  SDLC provides a structured approach for the software project planning and execution. The SDLC processes have evolved over a period of last few decades.

These different SDLC approaches are commonly referred as SDLC Methodologies Or  SDLC Models. Each of these SDLC model  provides a unique approach in terms of planning and execution of software project.

The commonly used  SDLC Models includes :

Software Development Life Cycle

SDLC Models

Waterfall Model

The waterfall model is one of the first one and the oldest SDLC models. The SDLC waterfall model is the most simple and straightforward to implement.

In the waterfall model , each phase of the SDLC starts when the previous phase ends . That means the two consecutive SDLC phases are interdependent for their execution.

This is similar to Ghent charts ( Bar charts ) which is one of the most popular project planning tool extensively used.

SDLC Waterfall Model , Waterfall Model

However the waterfall model does not offer much flexibility needed as the activities are interdependent and delay in one activity can derail another activity.

Each phase in the waterfall model is unique in terms its objective in the software development life cycle process.

Limitations Of Waterfall Model

The waterfall model has some major limitations in terms of its lack of flexibility to incorporate the new requirements and features. And therefore, the waterfall model is being replaced by Agile approach for the software development projects. 

The agile method offers flexibility in terms of responding to the changes required and rapid development software in parts called sprints.

Other Related Topics

Top 10 Software Engineering Skills

Join The Best Seller

Computer Science Online Course

This is the most comprehensive  and unique  Computer Science  And Programming Fundamentals course Online which will give you in depth understanding of most important fundamental concepts in computer science And Programming .

Sharing is caring!

Don`t copy text!