0% found this document useful (0 votes)
14 views

2.Basic Introduction of SDLC Phases and Explanation of SDLC Models

Uploaded by

jaganbalaji08
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

2.Basic Introduction of SDLC Phases and Explanation of SDLC Models

Uploaded by

jaganbalaji08
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

Lecture 3

Unit -1
Feasibility Study

First roughly understand what the


customer wants:
different data which would be input to the
system,
Main aim of feasibility study:determine processing needed on these data,
whether developing the product output data to be produced by the system,
financially worthwhile various constraints on the behavior of the
system.
technically feasible.

2
Activities during Feasibility Study

Work out Work out an overall understanding of the problem.

Formulate Formulate different solution strategies.

Examine alternate solution strategies in terms of:


• resources required,
Examine • cost of development, and
• development time.

3
Activities during • Perform a cost/benefit analysis:

Feasibility Study • to determine which solution is the


best.
• you may determine that none of the
solutions is feasible due to:
• high cost,
• resource constraints,
• technical reasons.

4
• Aim of this phase:

• understand the exact requirements of the


Requirements customer,
Analysis and
• document them properly.
Specification
• Consists of two distinct activities:

• requirements gathering and analysis

• requirements specification.

5
• Collect all related data from the
customer:

Goals of • analyse the collected data to clearly

Requirements understand what the customer wants,

Analysis • find out any inconsistencies and


incompleteness in the requirements,

• resolve all inconsistencies and


incompleteness.

6
Requirements • Gathering relevant data:
• usually collected from the end-users
Gathering through interviews and discussions.
• For example, for a business
accounting software:
• interview all the accountants of
the organization to find out their
requirements.

7
Requirements • The data you initially collect from the
users:

Analysis • would usually contain several


contradictions and ambiguities:

(CONT.) • each user typically has only a partial


and incomplete view of the system.

8
Requirements • Ambiguities and contradictions:

Analysis • must be identified

(CONT.) • resolved by discussions with the


customers.

• Next, requirements are organized:

• into a Software Requirements


Specification (SRS) document.

9
Requirements • Engineers doing requirements
Analysis analysis and specification:
(CONT.) • are designated as analysts.

10
• Design phase transforms
requirements
specification:
Design • into a form suitable for
implementation in some
programming language.

11
Design

Two design
In technical terms:
approaches:
• during design phase, • traditional approach,
software architecture • object oriented
is derived from the approach.
SRS document.
12
Traditional Design
Approach

• Consists of two
activities:
• Structured analysis
• Structured design

13
Structured Analysis Activity

1 2 3
Identify all the Identify data flow Decompose each
functions to be among the functions. function recursively
performed. into sub-functions.
• Identify data flow among
the subfunctions as well.

14
Structured Analysis (CONT.)

Carried out using Data flow After structured analysis, carry


diagrams (DFDs). out structured design:
architectural design (or high-level design)
detailed design (or low-level design).

15
Structured Design

High-level • decompose the system into modules,

design: • represent relationships among the modules.

Detailed • different modules designed in greater detail:


• data structures and algorithms for each
design: module are designed.

16
Object Oriented Design
• First identify various objects (real world entities)
occurring in the problem:
• identify the relationships among the objects.
• For example, the objects in a pay-roll software may
be:
• employees,
• managers,
• pay-roll register,
• Departments, etc.

17
Object Oriented Design (CONT.)

OOD has several


Object structure
advantages:
• further refined to obtain • lower development
the detailed design. effort,
• lower development time,
• better maintainability.

18
Implementation

• Purpose of implementation phase


(coding phase):

• translate software design into


source code.

19
Implementation • During the implementation phase:
• each module of the design is
coded,
• each module is unit tested
• tested independently as a
stand alone unit, and
debugged,
• each module is documented.

20
Implementation (CONT.)

The end product of


The purpose of
implementation
unit testing:
phase:

a set of program
test if individual
modules that
modules work
have been tested
correctly.
individually.

21
Integration and System Testing

Different modules are integrated During each integration step,


in a planned manner:
modules are almost never integrated in one the partially integrated system is tested.
shot.
Normally integration is carried out through a
number of steps.

22
Integration and M1 M2
System Testing M3 M4

23
System Testing

After all the modules


have been
• system testing is carried out.
successfully
integrated and tested:

• ensure that the developed system


Goal of system
functions according to its requirements
testing:
as specified in the SRS document.

24
Maintenance

• Maintenance of any software


product:
• requires much more effort
than the effort to develop the
product itself.
• development effort to
maintenance effort is
typically 40:60.

25
Maintenance (CONT.)

Corrective • Correct errors which were not discovered during the


maintenance: product development phases.

Perfective • Improve implementation of the system


maintenance: • enhance functionalities of the system.

Adaptive • Port software to a new environment,


• e.g. to a new computer or to a new operating
maintenance: system.

26
Classical waterfall model divides
life cycle into phases:
• Feasibility study,
• Requirements analysis and
Classical specification,
Waterfall Model • Design,
• Coding and unit testing,
• Integration and system testing,
27

• Maintenance.
Feasibility Study

Req. Analysis

Classical Design

Waterfall Coding

Model Testing

Maintenance

28
Classical Waterfall Model (CONT.)

29
Most organizations usually They also prescribe specific
define: methodologies for:
entry and exit criteria for every phase. specification,
design,
testing,
project management, etc.
30

1. no feedback paths
Drawbacks of
2. difficult to accommodate changes
classical water
fall model 3. No overlapping of phases

4. Limited customer interactions


• Classical waterfall model is idealistic:

• assumes that no defect is introduced during


Iterative Waterfall any development activity.
Model
• in practice:

• defects do get introduced in almost every


phase of the life cycle.

31
• Defects usually get detected much
later in the life cycle:
Iterative Waterfall
Model (CONT.) • For example, a design defect might
go unnoticed till the coding or
testing phase.

32
Once a defect is detected:
we need to go back to redo some of the work
the phase where it was done during that and all
introduced subsequent phases.
Iterative
Waterfall Model
(CONT.)
Therefore we need
feedback paths in the
classical waterfall model.
33
Feasibility Study

Iterative Req. Analysis

Waterfall Design

Model Coding

(CONT.) Testing

Maintenance

34
Errors
should • in the same phase in which they are
be introduced.

Iterative detected
Waterfall Model
(CONT.) • if a design problem is detected in
the design phase itself,
For • the problem can be taken care of
much more easily than, if it is
example: identified at the end of the
integration and system testing
phase.

35
The principle of is known as
detecting errors as close phase

Phase
to its point of containment of
introduction as possible: errors.

containment
of errors Iterative waterfall model
is most widely used
Almost every other
model is derived
from the waterfall
model. model.

36
Before starting actual
development,
a working prototype of the
Prototyping system should first be built.
Model A prototype is a toy
implementation of a system:
limited functional capabilities,
low reliability, 37

inefficient performance.
• The reason for
developing a prototype
is:
• it is impossible to ``get
Prototyping it right'' the first time,
Model (CONT.) • we must plan to throw
away the first product

• if we want to develop a
good product. 38
• The developed prototype is
submitted to the customer for
his evaluation:
Prototyping • Based on the user feedback,
requirements are refined.
Model (CONT.) • This cycle continues until the user
approves the prototype.
• The actual system is developed
using the classical waterfall
approach. 39
Prototyping Model (CONT.)

Build Prototype

Customer
Requirements satisfied
Customer
Gathering Quick Design Evaluation of Design
Prototype

Implement

Refine
Requirements
Test

Maintenance
40
Prototyping Model (CONT.)

• Even though construction of a working prototype model


involves additional cost --- overall development cost
might be lower for:
• systems with unclear user requirements,

41
Evolutionary Model
• Evolutionary model:
• The system is broken down into several modules
which can be incrementally implemented and
delivered.
• First develop the core modules of the system.
• The initial product skeleton is refined into
increasing levels of capability:
• by adding new functionalities in successive
versions.

42
Evolutionary Model (CONT.)

• Successive version of the product:


• functioning systems capable of performing some
useful work.
• A new release may include new functionality:
• also existing functionality in the current release
might have been enhanced.

43
Evolutionary Model (CONT.)

A A A
B B

44
Advantages of Evolutionary Model
• Users get a chance to experiment with a partially developed
system:
• much before the full working version is released,
• Helps finding exact user requirements:
• much before fully working system is developed.
• Core modules get tested thoroughly:
• reduces chances of errors in final product.
45
Disadvantages of Evolutionary Model

• Often, difficult to subdivide


problems into functional units:
• which can be incrementally
implemented and delivered.
• evolutionary model is useful for very
large problems,
• where it is easier to find modules for
incremental implementation.

46
Spiral Model
• Proposed by Boehm in 1988.
• Each loop of the spiral represents a phase of the
software process:
• the innermost loop might be concerned with
system feasibility,
• the next loop with system requirements
definition,
• the next one with system design, and so on.
• There are no fixed phases in this model, the
phases shown in the figure are just examples.

47
Determine Identify &
Objectives Resolve Risks

Spiral Model Review and


(CONT.) plan for next
phase
Develop Next Level of Product

48
Spiral Model (CONT.)

• The team must decide:


• how to structure the project into phases.
• Start work using some generic model:
• add extra phases
• for specific projects or when problems are
identified during a project.
• Each loop in the spiral is split into four sectors
(quadrants).

50
Identify Identify objectives of the phase,

Objective
Examine the risks associated with
Setting (First Examine these objectives.
Quadrant) • Risk: any adverse circumstance that might
hamper successful completion of a software
project.

Find Find alternate solutions possible.

51
For each identified a detailed
analysis is
project risk, carried out.
Risk
Assessment
and Steps are taken to reduce the
Reduction risk.

(Second
Quadrant) For example, if a
there is a risk that prototype
system
the requirements may be
are inappropriate: developed.

52
Development and Validation (Third
quadrant):
• develop and validate the next level of the
product.

Review and Planning (Fourth


Spiral Model quadrant):
(CONT.) • review the results achieved so far with the
customer and plan the next iteration around
the spiral.

With each iteration around the spiral:

• progressively more complete version of the


software gets built.
53
Spiral Model as a meta model
• Subsumes all discussed models:
• a single loop spiral represents waterfall model.
• uses an evolutionary approach --
• iterations through the spiral are evolutionary
levels.
• enables understanding and reacting to risks
during each iteration along the spiral.
• uses:
• prototyping as a risk reduction mechanism
• retains the step-wise approach of the
waterfall model.
54
Comparison of Different Life Cycle Models

55
Iterative waterfall model Prototype model is suitable for
projects not well understood:
most widely used model. user requirements
But, suitable only for well-
understood problems.
Comparison of Different Life Cycle Models (CONT.)

Evolutionary model • can be decomposed into a set of modules that can


be incrementally implemented,
is suitable for large • incremental delivery of the system is acceptable to
problems:

56
the customer.

• suitable for development of technically challenging


The spiral model: software products that are subject to several kinds
of risks.

You might also like