What is SDLC??
SDLC stands for Software Development Lifecycle
A series of steps used to manage the phases of development for an information system.
It is a methodology which is followed in design and development of software, so as to ensure the correctness, cost-effectiveness, and timely delivery of software application.
Why we need a SDLC??
Ease the process of building a system
Avoid development problems– Unclear objectives– Cost overruns– Development delays
• Avoid the system not meeting user requirements
Waterfall Model
Problem Definition
Requirement Analysis
System Design
System Development
System Testing
Maintenance
Problem Definition
Involves determining a solid plan for Involves determining a solid plan for developing information systemdeveloping information system
Problem Definition
Project GoalsA broad statement of “What the user expects” from the system
Project Bounds“What areas the system effects” and what areas remain the same
Project Limits“Resource limits” (Financial, technology, human, S/w, H/w)
Problem Definition
Define business problem and scope
Produce detailed project schedule
Confirm project feasibility Economic, organizational, technical, resource, and schedule
Staff the project (resource management)
Launch project official announcement
Analysis Phase
Understand business needs and
processing requirements
Analysis PhaseStudying the existing system with the aim of understanding the business process and identifying the shortcomings
Listing out the alternate solutions
Carrying out feasibility study of all the solutions
Identifying the most feasible solution and terming it as the proposed solution.
Analysis Phase
Preparing a requirements specification document, generally known as SRS or URS, etc, which is the output of the Analysis Phase
This document also acts as a legal document between client and developer
It is later used to establish the correctness and completeness of the system
System Design
Define solution system based on requirements and analysis decisions
OR
Build a technical blueprint of how the proposed system will work
System Design
Design Phase we plan “How to do!”
Identifying the processes and interaction between processes in detail
Charting out the flow of data between various stages of Business Process
Identifying the sources of data and data stores
System Design
Formalizing input from environment and output to environment
Design the application architecture
Design the user interfaces
Design the system interfaces
Development Phase
Take all of your detailed design documents from the design phase and transform them into an actual system
Development PhaseDevelopment phase or Coding Phase marks the implementation of business logic and enhancements using programming language
Main activities performed in this phase are: Development of forms (interface to user, GUI)
Development of reports
Validations to implement business logic are put in during this phase
Database is created during this phase
Development Phase
The output of the Development Phase is the developed software that is released to QA for testing
Documentation for the software developed is also prepared during this phase
System Testing
Verifies that the system works and meets all of the business requirements defined in the analysis phase
System TestingIn this phase the software is tested by QA team
The main aim of this phase is to ensure that all the modules of the software are working fine as independent entities as well as dependent unit
Main activities performed in this phase are:Creation of test plans and test casesUnit Testing, Black box and White Box TestingAlpha and Beta testingIntegration testingLoad, stress and system testing
System TestingPerform the testing of the system
Unit testing – tests individual units of codeSystem testing – verifies that separate systems work together Integration testing – verifies that the units of code function correctly when integratedUser acceptance testing (UAT) – determines whether system satisfies the business requirements
Output of the Testing Phase is a tested working software
Implementation & Maintenance Phase
IMPLEMENTATION:
Distribute the system to all of the knowledge workers and they begin using the system to perform their everyday jobs
MAINTENANCE:After software is installed at client-end.Generally we call it after sale service
Implementation Phase
Installation of the system at the client end
Eliminate errors in the system during its working life.
Fixing any bugs and problem found by users
Tune the system to any variations in its working environment
Implementation Phase
Implementation can be done under 4 strategies:
Parallel implementation – use both the old and new system simultaneouslyPlunge implementation – discard the old system completely and use the new Pilot implementation – start with small groups of people on the new system and gradually add more usersPhased implementation – implement the new system in phases
Maintenance Phase
This is the longest and most expensive phase in SDLC and stretches right through the lifecycle of the software.
It includes all the activities, after the software is successfully installed, to keep it running and adapt to the changing business conditions.
Waterfall model: advantages
It is a well understood mature process
Easy to manage projects
Produces robust, well-structured systems
High process visibility
Waterfall model: problemsInflexible partitioning of the project into distinct stagesMakes it difficult to respond to changing customer requirements One phase must be completed before the next phase starts
At the beginning of most projects there is often a great deal of uncertainty about requirements and goals, and it is therefore difficult for customers to identify these criteria on a detailed level. The model does not accommodate this natural uncertainty very well.
Waterfall model: problems
No phase can be repeatedAssumptions made in the early phases no longer holdSome of the early work is incompleteSomething was overlooked or not completely understood.
• Therefore, this model is only appropriate when• The requirements are well-understood• Requirement changes are limited
Incremental development…
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
Incremental development
The development and delivery is broken down into increments with each increment delivering part of the required functionality
User requirements are prioritised and the highest priority requirements are included in early increments
Once the development of an increment is started, the requirements are frozen
But requirements for later increments can continue to evolve
Advantages
Customer value can be delivered with each increment so system functionality is available earlier
Early increments act as a prototype to help elicit requirements for later increments
Lower risk of overall project failure
Different processes can be used for increments
Disadvantages
Difficulty of identifying the common facilities needed by all sub-systems
Spiral development
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
Spiral development
Process is represented as a spiral rather than as a sequence of activities with backtracking
Each loop in the spiral represents a phase in the process.
No fixed phases such as specification or designloops in the spiral are chosen depending on what is required
Risks are explicitly assessed and resolved throughout the process
Spiral model sectors
Objective settingSpecific objectives for the phase are identified
• Risk assessment and reductionRisks are assessed and activities put in place to reduce the key risks
Spiral model sectors
Development and validationA development model for the system is chosen which can be any of the generic models
Develop and validate the system in the current phase
• Planning– The project is reviewed and the next phase of the
spiral is planned
Spiral model…
Identifies probable risks in advance and tries to minimize themDifferent processes maybe used for different loops in the spiral
Advantages:Advantages:
Occurrence of a risk item could result in project delay, exceeding cost or even failure
Disadvantages:Disadvantages:
PrototypingPrototype refers to a working model of an information system
Its characteristics are:Prototype is a live, working application
Purpose of prototyping is to test out assumptions made by analysts and user about required system feature
Can be created quickly
Relatively less expensive to build
Steps involved in prototyping
1. Identify user requirements2. Develop the prototype3. Determine whether the prototype is acceptable;
if not repeat step 1 and 24. Code the operational system5. Test it6. Determine whether the operational system in
acceptable; if no repeat step 4 and 57. Use the operation system