Software Development Life Cycle (SDLC):
It describes development process of s/w project /product to fulfil the client requirements with in the specified cost and time.
SDLC contains following phases:
- Requirement collection
- Requirement analysis
- Design
- Coding
- Testing
- Release & Maintenance
Abbreviations
BA – Business Analyst
BRS – Business Requirement Specification
URS – User Requirement Specification
CRS – Client Requirement Specification
RFP – Request for proposal
SLA – Service Level Agreement
SA – System Analyst
FRS – Functional Requirement Specification
SRS - System Requirement Specification
SOW – Statement of Work
DA – Design Architect
TDD – Technical Design Document
GUI – Graphical User Interface design doc
DB – Database design document
HLD – High Level Design document
LLD – Low Level Design document
SCD – Source Code document
1. Requirement Collection:
In this phase BA will collect requirements with an interaction of client.
Collected information will be documented as BRS.
BRS will describe brief description about client business needs like users of the application and required services for those users.
After preparation of BRS, BA will perform feasibility study to check project is acceptance or not.
In feasibility study they analyze following factors:
a) Finance feasibility
b) Time required to develop application
c) Requirements are reliable or not in order to develop.
After feasibility study if project is acceptance for BA will intimate to the client by releasing Request for Proposal (RFP) & Service Level Agreement (SLA) document.
2. Requirement Analysis:
In this phase SA will analyze client requirements in BRS based on that he will prepare detailed requirements document called FRS / SRS.
FRS document will describe detailed functionality of the system
In this phase System Analyst will provide information to the client by releasing Statement of Work (SOW) document.
For successful project development clear FRS document is mandatory.
3) Design:
In this phase design architect (DA) is responsible to prepare design document based on FRS.
In this phase DA will decide architecture of application, which programming or scripting languages need to use and DB technology.
In this phase DA will prepare following documents:
A) GUI Design doc: It describes navigational flow of the application to know the feature implementation of application.
B) DB Design doc: It describes about database structure like number of tables & rules implemented between those tables.
C) Application Design Document (ADD) / Technical Design Doc:
i) HLD: It describes number of modules required in the project & relation between those modules
Module: Set of similar requirements group in application is called Module
Modularization: Splitting the project with set of modules is called Modularization.
ii) LLD: It describes internal logic of each module with help of Data – Flow diagrams & Entity – Relative Diagrams.
4) Coding:
Based on design document developer will write the programs in order to develop application.
5) Testing:
After coding programs are available for execution developers will perform unit & integration testing using White box Testing Techniques.
Whereas Test Engineer will validate whole system based on client requirements using Black Box Testing.
After System testing to know application ready for release we conduct User Acceptance Test (UAT) which is performed by client.
6) Release & Maintenance:
Release: After System Testing & UAT, if client is satisfied with out work product then we deliver application to the client for further usage at live environment with real data is called Release \ Production.
Maintenance: While using the application if client required any new features based on present situation or he may identifies defects then he will send change request (CR) to the organization.
Based initial agreements we work on CR and release modified version to the client.
NOTE: When application no longer in use that is end stage for SDLC
Common Problems in SDLC:
- Poor Requirements: Incomplete requirements and unclear requirements will be a problem to develop application.
- Unrealistic Schedule: If too much of work assigned in short time there will be a problem.
- Inadequate testing or incomplete testing will be a problem.
- Lack of communication.
When defects will arise in s/w application:
Wrong requirements ------- Wrong Project / Product
Mistakes in design -------- Design defects
Mistakes in coding -------- Coding defects
Note:
Design defects should be resolved from design doc.
Defects repair cost with respect to SDLC phases
Requirements – 0 %
Design – 10 %
Coding – 20%
Testing – 50 %
Maintenance – 100%
Early stages identified defects will take less cost to fix those defects.
Quality Management: (QM)
It is a process of preventing defects during development of application and ensure there are no defects in final product.
In QM there will be two types of teams:
1) Quality Assurance (QA): This team is responsible to define development process of application in order to prevent defects.
QA team involves throughout life cycle to monitor and to improve the strength of development process.
2) Quality Control (QC): This team involves after application developed in order to identify defects and to ensure those defects has to be resolved before releasing application to the client.
Difference between QA and QC:
|
|
It involves throughout life cycle
|
It involves after product is built
|
It is defects preventive approach
|
It is defects detective approach
|
Reviews, auditing are the example for QA activities
|
Software testing is an example
|