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

SDLC Models

The document discusses the Software Development Life Cycle (SDLC) model, which maps the different phases of software development from inception to retirement. It describes the need for an SDLC model and lists some common models like the waterfall model, iterative models, and spiral model. It then provides details on the classical waterfall model, including its phases, activities, advantages and disadvantages.

Uploaded by

Ritiesh Bhatia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

SDLC Models

The document discusses the Software Development Life Cycle (SDLC) model, which maps the different phases of software development from inception to retirement. It describes the need for an SDLC model and lists some common models like the waterfall model, iterative models, and spiral model. It then provides details on the classical waterfall model, including its phases, activities, advantages and disadvantages.

Uploaded by

Ritiesh Bhatia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Software Development Life Cycle (SDLC) Model:-

Or Software Process Model:-


“The strategy used for the software development in a systematic, well defined and cost
effective way is called as Software Development Life Cycle.”
❖ A Software Development Life Cycle maps the different phases (or Steps) performed on a
software product from its inception to retirement.

❖ During any phase of a life cycle, one or more than one activities may be carried out.

❖ A software life cycle model defines entry and exit criteria for every phase. A phase can
start only if its phase-entry criteria have been satisfied. So without software life cycle
model the entry and exit criteria for a phase cannot be recognized.

❖ There are different life cycle models and these models represents the basic development
phases in different ways.

The need for a software life cycle model


i. Without using of a particular life cycle model the development of a software product
would not be in a systematic and disciplined manner.

ii. When a software product is being developed by a team there must be a clear
understanding among team members about when and what to do.

iii. Without specifying the software life cycle model used, it becomes very difficult for
software project managers to monitor the progress of the project.

iv. Without specifying software life cycle model, the entry and exit criteria for a phase
cannot be recognized.

Different types of Software Development Life Cycle (SDLC) Model:-


Many life cycle models have been proposed so far. Each of them has some advantages as well as
some disadvantages. A few important and commonly used life cycle models are as follows:
i. Classical Waterfall Model or Linear Sequential Model
ii. Iterative Waterfall Model
iii. Prototyping Model
iv. Evolutionary Model or Incremental Model or Successive Versions Model
v. Iterative Enhancement Model
vi. Spiral Model
(i) Classical Waterfall Model or Linear Sequential Model:
Classical waterfall model divides the life cycle into the following phases as shown in figure
given below:

1) Feasibility Study
2) Requirements Analysis & Specification
3) Design
4) Coding & Module Testing
5) Integration & System Testing
6) Delivery & Maintenance

Figure 1: Classical Waterfall Model


1-Feasibility Study:-
In feasibility study phase we determine whether it would be financially and technically feasible
to develop the product within the given time period or not.

Activities undertaken during Feasibility Study phase: -

i. At first project managers or team leaders try to have a rough understanding of what is
required to be done by visiting the client side.
ii. After they have an overall understanding of the problem they investigate the different
solutions that are possible. Then they examine each of the solutions in terms of what kind
of resources required, what would be the cost of development and what would be the
development time for each solution.
iii. Based on this analysis they pick the best solution and determine whether the solution is
feasible financially and technically. They check whether the customer budget would meet
the cost of the product and whether they have sufficient technical expertise in the area of
development.

Thus there are mainly two types of Feasibility study:


i. Economical Feasibility-
It includes:
Cost of the software development
Cost savings
Profits
ii. Technical Feasibility-
It includes:
Sufficient Technical Expertise (Or Team Members)
S/w, H/w and Network required for the product development
Reliability, Availability and capability of S/w, H/w and Networks used for the
development

At the end of this phase, a report called as Feasibility Study Report is prepared.

2-Requirements Analysis and Specification:-


In requirements analysis and specification phase we understand the exact requirements of the
customer and document them properly.

Activities undertaken during Requirements Analysis and Specification phase: -

This phase consists of two distinct activities, namely:


(i) Requirements Gathering and Requirements Analysis-
The goal of the requirements gathering activity is to collect all relevant information from the
customer regarding the product to be developed.
The requirements analysis activity is done by managers or team leaders through interviews and
discussions with customers and users.
(ii) Requirements Specification-
After resolving all ambiguities, inconsistencies, and incompleteness in requirements and after
understanding all the requirements properly, the requirements specification activity can start.
During this activity, the user requirements are systematically organized into a Software
Requirements Specification (SRS) document. A SRS document basically contains a
description of what the developed system will do.

Organization of the SRS Document in IEEE 830 Standard is given below:

i. Introduction of Problem
ii. Goals of implementation
iii. Functional Requirements
iv. Non-functional requirements
v. Behavioral Description

At the end of this phase, a report called as SRS document is prepared.

3-Design:-
Activities undertaken during S/w Design phase: -

In design phase we transform the requirements specified in the SRS document into a structure
that is suitable for implementation in some programming language.
In technical terms, during the design phase the software architecture is derived from the SRS
document.

Two distinctly different Approaches are available for design:

i. Procedure or Structure or Function Oriented Design Approach


It has basically includes two levels of design:

(High Level Design) or Architectural Design


• Decomposition of the whole system in different modules
• Interface representation
• Flow of Data in system
(Low Level Design) or Detailed Design

❖ Data Structures used


❖ Procedural details (i.e. Algorithmic details)

ii. Object Oriented Design Approach


It basically includes:
➢ Identification of various objects and classes
➢ Identification of different relationships that exist among these objects
➢ And then object structure is further refined to obtain the detailed design.

At the end of this phase, the Final Design is documented.


4-Coding and Module Testing
Activities undertaken during Coding and Module (Unit) Testing phase:-

In coding phase the design of the system is translated into source code by using a given
programming language. Each component of the design is implemented as a program module.

During Module Testing (or Unit Testing) phase, each module is individually tested to
determine the correct working of each module. It involves testing of each module in isolation
thus it is the most efficient way to debug (remove) the errors from the system.

5-Integration and System Testing: -


Activities undertaken during Integration and System Testing phase: -

During this phase, integration of different modules is performed in a planned and step by step
manner. During each integration step, the partially integrated system is tested and a set of
previously planned modules are added to it. Finally, when all the modules have been successfully
integrated and tested, system testing is carried out.

In System Testing we ensure that the developed s/w system conforms the requirements mention
in the SRS document.

System testing usually consists of mainly three different kinds of testing activities:

α–testing: Alpha testing refers to the system testing carried out by the test team within the
developing organization.

β–testing: Beta testing is the system testing performed by a select group of customers.

Acceptance Testing: It is the system testing performed by the customer to determine whether he
should accept the delivery of the system or not.

6-Delivery and Maintenance:-


Activities undertaken during Delivery and Maintenance phase:-

After System testing S/w product is delivered to the customer and User- training is provided to
the users if required
And finally Maintenance and support is provided by any one or more of the following three
kinds of activities:
i. Corrective Maintenance: is provided by correcting and removing the errors that were
not discovered during the product development phase.
ii. Perfective Maintenance: is provided by improving the implementation of the s/w
system and by enhancing the features & functionalities of the s/w system according to the
customer’s requirements.
iii. Adaptive Maintenance: is provided by porting the software product to work in a new
environment. For example: Porting may be required to get the software to work on a new
computer platform or with a new operating system etc.
Advantages of Classical Waterfall Model:

1-It is very Simple Model for a Software Development.


2-It is very Systematic and Sequential Model.
3-In this model proper documentation is done.

Disadvantages of Classical Waterfall Model:

1-It involves heavy documentation.


2- In this model we cannot go back from current phase to previous phases.
3-Real projects rarely follow the linear sequential flow.
4-A working version of the system is seen and used in very late by using this model.
5-For this model requirement should be well defined in beginning but it is very difficult for
customers to define all requirements at starting.
6-There is no risk analysis phase in this model.
7-The team members who complete their work earlier than others would not be able to perform
their next activity and this shows wastage of resources.
(ii) Iterative Waterfall Model

Iterative Waterfall Model has the same phases as in the Classical Waterfall Model. But in
Iterative Waterfall Model, Feedbacks paths are provided from every phase to its previous phases
as shown in figure. The feedback paths allow the correction of errors find during a phase which
is detected in a later phases.
However in this model, there is no feedback path to the feasibility study phase i.e. errors in the
feasibility study phase cannot be corrected latter.
For example: If during testing a design error is identified, then feedback path allows us to change
and rework the design documents.

Figure 2: Iterative Waterfall Model

Advantages of Iterative Waterfall Model over Classical Waterfall Model:


1-In Iterative Waterfall Model, Feedbacks paths are provided from every phase to its previous
phases thus correction of errors can be done during a phase which is detected in a later
phases.
2- It is practically applicable to real life projects also.
3-The team members who complete their work earlier than others would be able to perform next
activity and this saves wastage of resources.
(iii) Prototyping Model
In Prototyping Model firstly a working prototype of the actual system is developed, and after
approval of the final prototype by the customer, actual system is developed using the Iterative
Waterfall Model.

Introduction of a Prototype:-
A prototype is a toy implementation of the actual system.
A prototype is a partially developed product.
A prototype is a Dummy Model of the actual product.
A prototype usually contains limited functional capabilities, low reliability, and inefficient
performance compared to the actual software system.
A prototype is usually developed by using several shortcuts.
The shortcuts may involve the inefficient, inaccurate, or dummy functions.
For example: The shortcut implementation of a function may produce the desired results by
using a table look-up instead of performing the actual computations.

Figure 3: Prototype Model


Different Phases of Prototyping Model:
Prototyping model is basically divided into two main Development Stages:

(i) Prototype Development (or Prototyping):

➢ In this model prototyping is started with an initial requirement gathering phase.


➢ Then a quick design is carried out and a prototype is built (developed).
➢ The developed prototype is submitted to the customer for his evaluation.
➢ Based on the customer feedback, the requirements are refined (corrected) and the
prototype is suitably modified according to customer suggestions.
➢ This cycle continues till the customer approves the final prototype.

(ii) Iterative Development:

After approval of the final prototype, the actual system is developed using the Iterative
Waterfall Model approach.
The following phases of the Iterative Waterfall Model are carried out iteratively in this
development stage as shown in above figure:
➢ Design
➢ Implementation
➢ Testing
➢ Maintenance

Advantages of Prototyping Model:


(1)-This model is preferred in situation when user requirements are not complete & clear:
For example: If in any application software, like billing in a retail shop, accounting in a firm, etc
the users of the software are not clear about the different functionalities required then by using
prototype implementation model, they can try to see and use the prototype and find out the
missing functionalities.

(2)-This model is also preferred in situation when technical issues are also not clear:
For example: Suppose a project involves writing a compiler and the development team has never
written a compiler. In such a case, the team can consider a simple language, try to build (or
developed) a compiler in order to check the issues that arise in the process and resolve them. And
after successfully building a small compiler (i.e. Prototype), they can extend it to one that
supports the original language.

(3)-New requirements can be easily added as there is scope for refining the requirements.
(4)-Customer gets a chance to see and use the partially developed product very early in the
development process.
(5)-By developing prototypes, we can control the various risks of the s/w projects.
Disadvantages of Prototyping Model:
(1)-After seeing & using the final prototype, customer can demand the actual system very
soon.
(2)-If not managed properly, the process of approval of prototype continues for very long
time.
(3)-If customer is not satisfied with initial prototype, he may lose the interest from project
development.
(4)-In this model, developers become in hurry for approval of prototype and thus end with
sub-optimal solution.
(5)-Poor documentation
(6)- Many shortcuts are used to develop the prototype then there may be chance of less
quality in the actual system.

Types of Prototyping Model:

Or Different Approaches used for Prototyping:

(a) Evolutionary or Exploratory Prototype Model:-

❖ In this model developers corrected the initial prototype until the customer is
satisfied and accepted it.
❖ The well understood parts of the actual system are only developed by this
approach.
❖ It is useful when a customer proposes some new features in developing system.

(b) Throw-away Prototype Model:-

❖ In this model developers firstly develop a new prototype and if this new prototype
is not accepted by the customer then this prototype is thrown-away and then
another new prototype is developed by using some different processes.
❖ The poorly understood parts of the actual system are only developed by this
approach.
❖ The development cost for each new prototype should be kept as minimum as
possible in this approach.
(iv)Evolutionary Model or Incremental Model

Figure 4: Evolutionary Model or Incremental Model or Successive Versions Model

Activities undertaken under Evolutionary model:


➢ In this model, the complete product is firstly divided into several modules (called
as Functional Units or Increments or Deliverables or Release or Versions).
➢ The development team first develops the core module of the system. The core
module is that does not need services from the other modules. It is developed by
Waterfall model.
➢ Core module is delivered to customer for doing some useful work.
➢ After using the core product feedbacks are taken from the customers and
requirements can be added or modified according to customers.
➢ Then next increment is also developed by using Waterfall model.
➢ This process is repeated until the complete product is produced release by release.
NOTE: Each successive increment or version of the product is a software capable of performing
more functions than the previous increments or versions.

Advantages of Evolutionary model or Incremental model:


1. It helps to find accurate user requirements because whole system is delivered version by
version.
2. The change requests after delivery of the complete product become very less.
3. All the resources are not required at the beginning.
4. It is very useful model for very large products, where it is easier to divide the problem
into small parts.
5. When customers do not want to wait for full product to be developed and delivered then
customer prefers to receive the product in increments so that he can start to use the
system early.
6. The evolutionary model is a very natural model to use in object-oriented software
developments projects.
7. Risk of failure of final product is very less.
8. As functionalities are implemented in steps so testing becomes very easy.

Disadvantages of Evolutionary Model:


1. It is very difficult to divide the whole problem into several parts that would be acceptable
to the customer and which can be incrementally implemented and delivered.
2. As product is delivered into small parts, the total development cost is higher.
3. This model requires well defined project planning schedule to distribute the whole work
properly.
4. Testing of each increment results into overhead and increased cost of testing.
5. Well defined interfaces are required to connect the increments developed in each
evolution.
(v) Iterative Enhancement Model
This model is similar to Evolutionary Model or Incremental Model but in this model each
increment is developed by Iterative Waterfall Model instead of Classical Waterfall Model.
The figure 5.1 shows how the enhancement is done incrementally in core module (A).

Figure 5.1: Enhancement of modules

The figure 5.2 shows how the modules A, B, C etc. are developed by Iterative Waterfall Model
and different activities undertaken during Iterative Enhancement Model:

Figure 5.2: Iterative Enhancement Model


Advantages of Iterative Enhancement Model over Incremental Model:
1-Since in Iterative Enhancement Model we use Iterative Waterfall Model so feedbacks paths are
provided from every phase of water fall model to its previous phases and thus more correction of
errors can be done during the development of each increment.
2- It is practically more applicable to Real Life Projects.
3-The team members who complete their work earlier than others in development of each
increment would be able to perform next activity and this saves wastage of resources.
(vi) Spiral Model

Figure 6: Spiral Model

➢ The Spiral model was proposed by Barry Boehm in 1988.

➢ The Spiral model is intended for large, expensive, and complicated (i.e in scientific
research type projects) projects.

➢ This model of development combines the features of the Prototyping model and the
Waterfall model.

➢ This model uses iterative nature of prototyping.

➢ During early iterations paper model or prototypes are developed and then in later
iterations increasingly more complete versions of the system are produced.

➢ Using the spiral model software is developed in incremental releases.


The Working of Spiral model is explained as:-

• The new system requirements are defined in as much detail as possible. This is done by
interviewing a number of users and communicating with them.
• A preliminary design is created for the new system.
• A first prototype of the new system is constructed from the preliminary design.
• After that a second prototype is evolved (or released) by completing these tasks:
1. Evaluating the first prototype in terms of its strengths, weaknesses and risks.
2. Defining the requirements of the second prototype.
3. Planning and designing the second prototype.
4. Constructing and testing the second prototype.
• The preceding steps are repeated until the customer is satisfied and a Final Prototype is
developed that represents the desired product.
• Then the desired system is constructed based on the final prototype in the form of
increments (i.e release by release).
• At each iteration around the cycle, the products (increments) are the extension of an
earlier product.

In spiral model there are six task regions or activities and each of the regions is populated by a
set of work task (called as task set).

Figure 6 given above contains six task regions-

1. Consumer Communication – In this task, effective communication is performed


between customer and developer.
2. Planning – In this task, different resources are defined, time line and other project related
information are also defined.
3. Risk Analysis – By this task, different risks are identified and then assessment of risks is
done.
4. Engineering or Designing– In this task, we build one or more representations (design) of
the system.
5. Construction and Release – In this task region, we develop the system by coding and
after that testing is performed and at last product is delivered to the customer and
maintenance is provided to users.
6. Customer Evaluation – In this task, customer feedback is obtained when customer uses
the software.
Advantages of Spiral model :
1. The risk analysis and validation steps eliminate errors in the early phases of development.
2. This model makes use of techniques like re-use, prototyping and component based
design.
3. In this model after each cycle feedback is taken from users by developers, thus ensuring a
correct product with high quality.
4. It provides productivity improvement through reuse capability.
5. More able to deal with the changes in the software development.
6. This model is very useful for large, expensive and complex projects.
7. All the money needed for the development need not be allocated in starting of the project.
8. This model is very useful when users are unsure about their needs, requirement is not
clear and project is very complicated.
9. This model is very useful to develop the software projects useful for research field.
10. Correct calculation of cost, schedule and staffing is done because review is done after
each iteration

Disadvantages of Spiral model :


1. This model is not suitable for small size projects because cost of risk analysis may exceed
the actual cost of software project.
2. This model requires expertise in risk management.
3. There is no concrete beginning or end of particular phase.
4. We do not get very strict standards for software development.
5. Milestone after each cycle is not very clearly defined.

You might also like