Software Development Life Cycle

SDLC (Software Development Life Cycle)

1) Introduction

2) Phases of SDLC

    i) Requirements Gathering

    ii) Analysis and Planning

    iii) Software Design

    iv) Coding or Implementation

    v) Testing

    vi) Release and Maintenance
Before Software Development:

i) Software Bidding   

> A proposal to develop new software is called software bidding.

> For Software application development bidding is done and quotation is sent
   to the customer.

> For Software product development, organizations take their own initiation for
  proposal of new product based on the market needs.

> Requirements are gathered based on inputs from model customers and from
  competitor products analysis.

ii) PIN document (Project Initiation Note)

> Once the project is confirmed, higher management appoints project manager who handles the new software development process.

> Project manager prepares PIN document to provide overall estimates of required budget, time and resources (developers, testers, maintenance) for developing the new software.

> Project manager submits this document to higher management for approval.

iii) Kick-off meeting

> Kick-off meeting is conducted to review the information provided by the Project Manager. During this meeting, Higher Management provides approval to start the new software development.

> Project Manager prepares Initial Project Plan which consists of tasks for different teams like Business Analysis, Development, Testing, System Administration and also Non-Technical teams.
1) Introduction to SDLC

SDLC (Software Development Life Cycle)

> In olden days, Software were developed without any systematic approach, because of which many software failed to perform as intended once they are released. This led to follow a systematic way to deliver Quality software and is known as SDLC.

> SDLC (Software Development Life Cycle) is the process of developing software through business needs, analysis, design, implementation and Release and maintenance.

> SDLC  is also called as Software development process.

> ISO/IEC 12207 is an international standard for software life-cycle processes.

ISO - International Organization for Standards

IEC -  International Electrotechnical Commission

STLC (Software Testing Life Cycle)

The process of testing Computer software in well planned and systematic way is known as Software Testing Life cycle or Software Test process.

STLC consists of the following phases

i) Test Planning

ii) Test Design

iii) Test Execution

iv) Evaluating Exit Criteria and Test Closure

Note: STLC or Software Test Process is a part of SDLC or Software Development process.

We have so many types of SDLC models available in the IT Industry, we can choose the SDLC Model based on our Project, but no STLC models. Testing is common for all SDLC Models. Some models may have single stage of Testing, some models have multiple stages of Testing.
2) Phases of SDLC

SDLC phases and phase names may vary from one model to another, but purpose is almost all same.

Phases of SDLC are:

i) Requirements Gathering

ii) Analysis and Planning

iii) Software Design

iv) Coding/Implementation

v) Testing

vi) Release and Maintenance
i) Requirements Gathering

What is Requirement?

> A condition or capability needed by a user to solve a problem or achieve an

Basically we have two types of Requirements,

i) Functional Requirements

ii) Non Functional Requirements

What is Functional Requirement?

> A Requirement that specifies a function that a component or System must perform.

Example : Login to the System (Business Rule: After entering the valid user id and Password user should login to the Application.)

Field 1 accepts alpha-numeric data entry

Field 2 accepts numeric data entry

Field 3 submits the data.

What is Non Functional Requirement?

> A Requirement that is does not related to functionality, but to attribute such as Performance, Usability, Reliability, Portability etc...

Performance: System has to login to application for 1000 concurrent users       within 5 Seconds.

Usability: Login screen has to provide easy navigation and meaningful help messages.

Requirements Gathering:

> During this phase, Requirements of the software to be gathered and documented.

> Business Analyst gathers requirements from the customer and documents them  in a document called BRS (Business Requirements Specification).

> Suppose, Software is intended for multiple customers, Business Team gathers
  requirements from model customers, explores competitor products and prepares PRD (Product Requirement Document) or BRD (Business Requirement Document)

> BRS or BRD document acts as a bridge between the customer and the designers  who develop the software.

> BRS or BRD document is sent to Project Manager for Review and Approval.

> Output of this phase is Base-lined (finalized) BRS or BRD document.
ii) Analysis and Planning

> During this phase, Technical manager creates SRS (Software Requirements
Specification) document by analyzing BRS document.

> Project Manager creates Project Plan.


Technical Manger analyzes BRS document in terms of below factors

i) Are they complete requirements?
ii) Are they correct requirements?
iii) Are they achievable requirements?
iv) Are they Testable requirements?

After analyzing the BRS document, Technical Manager creates SRS document which consists of two sub documents.

i) FRS (Functional Requirement Specification) that describes the functionalities
   to be developed

ii) SRS (System Requirement Specification) that describes Software and Hardware to be used.

> During this process Technical Manager focuses on Technology selection based on the following factors.

Technical factors
i) Nature of the application
ii) Organization’s experience

Business factors
i) Cost/Budget (Open source software or Licensed software)
ii) Customer interests

> Planning is done to come up with a schedule, the scope and resource requirements for a release.

> Project Manager creates the plan that explains how the requirements will be
  met and by which time.

> Project plan also contains the scope of the requirements (what will be met and what will not be met) for the project, resource availability.

> Project Manager also analyzes the risks involved and contingency plan for them.

> Finally he comes up with the milestones and release date for the project.

Output of this phase is SRS document and Project Plan
iii) Software Design

> During this phase, System architect or Senior developer creates Software Design Document (SDD) based on the SRS document from the Analysis phase.

> The purpose of this phase is to figure out how to satisfy the requirements
  explained in System Requirements Specification (SRS) document.

Design is usually split into two levels

i) High Level Design (HLD) or Global Design that contains the overall architecture of the system.

ii) Low Level Design (LLD) or Detailed Design that contains internal architecture
    of each and every unit/component/module.

Software Design Document (SDD) produced during this phase, It will be used by the development team to produce the programs.
iv) Implementation or Coding

> During this phase, Developers develop or implement programs based on the Design documents by following the coding standards in the chosen programming language.

> In addition to coding, this phase also involves the creation of documentation
  for the software being developed.

Output of this phase is code documents and software that meets the requirements.
v) Testing

> Software, developed during coding phase, is subjected to testing.

> Earlier Developers themselves were testers and there are no separate test teams to test the software.

> Now-a-days, in order to improve the Quality of the software, most of the organizations panning for separate Testing teams (Independent Test Teams to test the software).

> During this phase, Testers test the software based on the SRS document to check if the requirements are met or not.  If there is any mismatch, defects are  reported.

> Developers fix the Defects and testers confirm the defect fixes and close them.

Output of this phase is Tested Software and Test Documents.
vi) Software Release and Maintenance

Software Release:

> Once the software is tested then it is released to the customers.

> The released software needs to be deployed in production environment and this is generally done by the Release team (consists of few developers, testers,   project management executive and system administrator). 

> Project Manager forms the Release Team, Release team deploy the Software in Production Environment and provides necessary training to the customers(if required.)

Software Maintenance

> As the users/customers start using the software in their environments, they may identify some defects which need to be addressed.

> Thus the software now enters into maintenance phase where in the software is modified to satisfy the changes raised by the customers.

> The maintenance activities are performed by the maintenance team (consists of a few developers, testers, project management executive) that is formed by
  Project Manager.

Three types of Software Maintenance

a) Modifications

a) Corrective changes – Defects found during production phase require emergency fixes or corrective changes as these are not identified during the Testing phase.

b) Enhancements – If customer wants new functionalities to be added to the current system then they are considered as Enhancements.

b) Migration 

Migrating the software from old technology to new technology.

Example: Migrating software from MS Access to SQL Server/Oracle

c) Retirement 

Retiring the old system and developing new system.

Example: Changing II-Tier Application to Web application


Post a Comment