0% found this document useful (0 votes)
15 views46 pages

Software Development Life Cycle

The document outlines the Software Development Life Cycle (SDLC), detailing its purpose, phases, and various models such as Waterfall, Iterative, Spiral, V-Model, and Big Bang. Each model has its own advantages and disadvantages, catering to different project requirements and environments. The main goal of SDLC is to produce high-quality software that meets customer expectations while adhering to time and cost constraints.

Uploaded by

Aura Lee Carisma
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)
15 views46 pages

Software Development Life Cycle

The document outlines the Software Development Life Cycle (SDLC), detailing its purpose, phases, and various models such as Waterfall, Iterative, Spiral, V-Model, and Big Bang. Each model has its own advantages and disadvantages, catering to different project requirements and environments. The main goal of SDLC is to produce high-quality software that meets customer expectations while adhering to time and cost constraints.

Uploaded by

Aura Lee Carisma
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

SOFTWARE DEVELOPMENT LIFE CYCLE

MIT 203 – Advanced Systems Design and Implementation


Mr. Joseph S. Joaquin
Objectives
At the end of this topic, students will be able to:
• Explain the purpose of extended learning in Software
Development Life Cycle (SDLC);
• Recall the different phases of SDLC;
• Determine and support the application of different SDLC
models in software engineering; and
• Name several models of SDLC and its associated
phases, application, advantage, and disadvantage.
What is SDLC?
Software Development Life Cycle (SDLC) is a process that
consists of a series of planned activities to develop or
modify any existing software.
Why to Learn SDLC?
The main objective of SDLC is to produce high-quality
software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.

SDLC offers the principle that be used in software project. It


consists of a detailed plan describing how to develop,
maintain, replace and alter or enhance specific software.
The life cycle defines a methodology for improving the
quality of software and the overall development process.
Stages of SDLC
1. Planning and Requirement Analysis
2. Defining of Requirements
3. Designing the Architecture
4. Building or Developing the Software Product
5. Testing
6. Deployment and Maintenance
Planning and Requirement Analysis
Requirement analysis is the most important and
fundamental stage in SDLC. It is performed by the senior
members of the team with inputs from the customer, the
sales department, market surveys and domain experts in
the industry.

This information is then used to plan the basic project


approach and to conduct product feasibility study in the
economical, operational and technical areas.
Defining of Requirements
Once the requirement analysis is done the next step is to
clearly define and document the product requirements and
get them approved from the customer or the market
analysts.

This can be done through an SRS (Software Requirement


Specification) document which consists of all the product
requirements to be designed and developed during the
project life cycle.
Designing the Architecture
SRS is the reference for product architects to come out
with the best architecture for the product to be developed.
Based on the requirements specified in SRS, usually more
than one design approach for the product architecture is
proposed and documented in a Design Document
Specification (DDS ).

This DDS is reviewed by all the important stakeholders and


based on various parameters as risk assessment, product
robustness, design modularity, budget and time constraints,
the best design approach is selected for the product.
Building or Developing the Software
Product
In this stage of SDLC, the actual development starts and
the product is built. The programming code is generated as
per DDS during this stage. If the design is performed in a
detailed and organized manner, code generation can be
done in a simple manner.
Testing
This stage is usually a subset of all the stages as in the
modern SDLC models, the testing activities are mostly
involved in all the stages of SDLC.

This stage refers to the testing only stage of the product


where product defects are reported, tracked, fixed and
retested, until the product reaches the quality standards
defined in the SRS.
Deployment and Maintenance
Once the product is tested and ready to be deployed it is
released formally in the appropriate market. Sometimes
product deployment happens in stages as per the business
strategy of that organization. The product may first be
released in a limited segment and tested in the real
business environment (UAT- User acceptance testing).
SDLC Models
There are various software development life cycle models
defined and designed which are followed during the
software development process. These models are also
referred as Software Development Process Models that
follows a series of steps unique to its type to ensure
success in the process of software development.
• Waterfall Model
• Iterative Model
• Spiral Model
• V-Model
• Big Bang Model
Waterfall Model
Waterfall approach was first SDLC Model to be used widely
in Software Engineering to ensure success of the project.

On this approach, the whole process of software


development is divided into separate phases. In this
Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
Illustration of Waterfall Model
Phases of Waterfall Model
• Requirement Gathering and analysis − Requirements
of the system to be developed are captured on this phase
and documented in a requirement specification document;
• System Design − Requirement specifications from first
phase are studied on this phase and the system design is
prepared. This system design helps in specifying
hardware and system requirements and helps in defining
the overall system architecture;
• Implementation − With inputs from the system design,
the system is first developed in small programs called
units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred
to as Unit Testing;
Phases of Waterfall Model (continued)
• Integration and Testing − All the units developed in the
implementation phase are integrated into a system after
the testing of each unit. Post integration the entire system
is tested for any faults and failures;
• Deployment of System − Once the functional and non-
functional testing is done; the product is deployed in the
customer environment or released into the market; and
• Maintenance − There are some issues which come up in
the client environment. To fix those issues, patches are
released. Also to enhance the product some better
versions are released. Maintenance is done to deliver
these changes in the customer environment.
Application of Waterfall Model
Every software developed is different and requires a
suitable approach to be followed based on the internal and
external factors. Some situations where the use of Waterfall
model is most appropriate are:
• Requirements are very well documented, clear and fixed;
• Product definition is stable;
• Technology is understood and is not dynamic;
• There are no unclear requirements;
• Ample resources with required expertise are available to
support the product; and
• If the project is short.
Waterfall Model Advantage
The advantages of waterfall development are that it allows
for departmentalization and control. A schedule can be set
with deadlines for each stage of development and a
product can proceed through the development process
model phases one by one.
Waterfall Model Disadvantage
The disadvantage of waterfall development is that it does
not allow much reflection or revision. Once an application is
in the testing stage, it is very difficult to go back and change
something that was not well-documented or thought upon
in the concept stage.
Iterative Model
Iterative process starts with a simple implementation of a
subset of the software requirements and iteratively
enhances the evolving versions until the full system is
implemented.

At each iteration, design modifications are made and new


functional capabilities are added. The basic idea behind
this method is to develop a system through repeated cycles
(iterative) and in smaller portions at a time (incremental).
Illustration of Iterative Model
Application of Iterative Model
Like other SDLC models, iterative and incremental
development has a particular application. The model is
often used in the following:
• Requirements of the complete system are clearly defined
and understood;
• Major requirements must be defined; however, some
functionalities or requested enhancements may evolve
with time;
• There is a time to the market constraint;
• A new technology is being used and is being learnt by the
development team while working on the project;
Application of Iterative Model (continued)
• Resources with needed skill sets are not available and
are planned to be used on contract basis for specific
iterations; and
• There are some high-risk features and goals which may
change in the future.
Iterative Model Advantage
The advantage of this model is that there is a working
model of the system at a very early stage of development,
which makes it easier to find functional or design flaws.
Finding issues at an early stage of development enables to
take corrective measures in a limited budget.
Iterative Model Disadvantage
The disadvantage with this model is that, it is applicable
only to large and bulky software development projects. This
is because it is hard to break a small software system into
further small serviceable increments/modules.
Spiral Model
The spiral model combines the idea of iterative
development with the systematic, controlled aspects of the
waterfall model. This model is a combination of iterative
development process model and sequential linear
development model (for example, the waterfall model with
a very high emphasis on risk analysis).

It allows incremental releases of the product or incremental


refinement through each iteration around the spiral.
Illustration of Spiral Model
Phases of Spiral Model
• Identification - This phase starts with gathering the
business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification
of system requirements, subsystem requirements and unit
requirements are all done in this phase;
• Design – This phase starts with the conceptual design in
the baseline spiral and involves architectural design,
logical design of modules, physical product design and
the final design in the subsequent spirals;
Phases of Spiral Model (continued)
• Construct or Build - The phase refers to production of
the actual software product at every spiral. In the baseline
spiral, when the product is just thought of and the design
is being developed a POC (Proof of Concept) is
developed in this phase to get customer feedback;
• Evaluation and Risk Analysis - Risk Analysis includes
identifying, estimating and monitoring the technical
feasibility and management risks, such as schedule
slippage and cost overrun. After testing the build, at the
end of first iteration, the customer evaluates the software
and provides feedback.
Application of Spiral Model
The model is widely used in the software industry as it is in
sync with the natural development process of any product
(like in learning with maturity that involves minimum risk for
the customer as well as the development of firms).
Spiral Model Advantage
The advantage of this model is that, it allows elements of
the product to be added, when they become available or
known. This assures that there is no conflict with previous
requirements and design.
Spiral Model Disadvantage
The disadvantage is, it takes a very strict management to
complete such products and there is a risk of running the
spiral in an indefinite loop. The discipline of change and the
extent of taking change requests is very important to
develop and deploy the product successfully.
V-Model
The V-Model is an extension of the waterfall model and is
based on the association of a testing phase for each
corresponding development stage. This means that for
every single phase in the development cycle, there is a
directly associated testing phase. This is a highly-
disciplined model and the next phase starts only after
completion of the previous phase.

It is also known as verification and validation model.


Illustration of V-Model
Phases of V-Model
• Business Requirement Analysis - This is the first phase
in the development cycle where the product requirements
are understood from the customer’s perspective;
• System Design - Once you have the clear and detailed
product requirements, it is time to design the complete
system. The system design will have the understanding
and detailing the complete hardware and communication
setup for the product under development;
• Architectural Design - Architectural specifications are
understood and designed in this phase. Usually more
than one technical approach is proposed and based on
the technical and financial feasibility the final decision is
taken. This is also referred to as High Level Design
(HLD);
Phases of V-Model (continued)
• Module Design - In this phase, the detailed internal
design for all the system modules is specified, referred to
as Low Level Design (LLD). It is important that the design
is compatible with the other modules in the system
architecture and the other external systems;
• Coding Phase - The actual coding of the system modules
designed in the design phase is taken up on this phase.
The best suitable programming language is decided
based on the system and architectural requirements;
Phases of V-Model (continued)
• Validation Phase
• Unit Testing - Unit tests designed in the module design phase are
executed on the code during this validation phase;
• Integration Testing - Integration testing is associated with the
architectural design phase. Integration tests are performed to test
the coexistence and communication of the internal modules within
the system;
• System Testing - System testing is directly associated with the
system design phase. System tests check the entire system
functionality and the communication of the system under
development with external systems;
• Acceptance Testing - Acceptance testing is associated with the
business requirement analysis phase and involves testing the
product in user environment.
Application of V-Model
V- Model application is almost the same as the waterfall
model, as both the models are of sequential type.

Requirements have to be very clear before the project


starts, because it is usually expensive to go back and make
changes. This model is used in the medical development
field, as it is strictly a disciplined domain.
Advantage of V-Model
The advantage of this model is that, it is very easy to
understand and apply. The simplicity of this model also
makes it easier to manage.
Disadvantage of V-Model
The disadvantage is that the model is not flexible to
changes and just in case there is a requirement change,
which is very common in today’s dynamic world, it
becomes very expensive to make the change.
Big Bang Model
The Big Bang model is an SDLC model where we do not
follow any specific process. The development just starts
with the required money and efforts as the input, and the
output is the software developed which may or may not be
as per customer requirement.

It is an ideal model for the product where requirements are


not well understood and the final release date is not given.
Illustration of Big Bang Model
Advantage of Big Bang Model
The advantage of this Big Bang Model is that it is very
simple and requires very little or no planning. Easy to
manage and no formal procedure are required.
Disadvantage of Big Bang Model
It is a high risk model and changes in the requirements or
misunderstood requirements may even lead to complete
reversal or scraping of the project. It is ideal for repetitive or
small projects with minimum risks.
Application of Big Bang Model
This model is ideal for small projects with one or two
developers working together and is also useful for
academic or practice projects.
End

You might also like