What is SDLC??

Post on 18-Nov-2014

703 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

Transcript

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

top related