Software Development Life Cycle
Software Development Life Cycle
Lecture – 3
Agenda
• Software Development Life Cycle
• Stages of a typical SDLC
• Life Cycle Models
Software Engineering - I 2
Assignment Discussions
• List various stakeholders of the system
• Difference between deliverable and non
deliverable
Software Engineering - I 3
SOFTWARE DEVELOPMENT LIFE CYCLE
• A SDLC consists of all the activities necessary to develop a
software system along with specification of artifacts.
– Artifact is one of many kind of tangible by- products produced
during the development of software.
– Some artifacts (Example., use cases, class diagrams, other UML
models, requirements and design documents) help describe the
function, architecture and design of the software.
• A model of SDLC, called a life cycle model, is an abstract
representation of the software development methodology
with a focus on which activities to perform and when to
perform.
• Life cycle models encompass development process,
management process and supporting process.
Software Engineering - I 4
SOFTWARE DEVELOPMENT LIFE CYCLE
• The software development life cycle (SDLC) is a
framework defining tasks performed at each step in
the software development process.
• The life cycle defines a methodology for improving
the quality of software and the overall
development process.
• SDLC is a process followed for a software project,
within a software organization. It consists of a
detailed plan describing how to develop, maintain,
replace and alter or enhance specific software.
Software Engineering - I 5
STAGES OF A TYPICAL SDLC
Software Engineering - I 6
STAGE 1: 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 [i.e., an assessment of the practicality
of a proposed plan or method] in the economical, technical areas, etc.
• Planning for the quality assurance requirements and identification of
the risks associated with the project is also done in the planning stage.
• The outcome of the technical feasibility study is to define the various
technical approaches that can be followed to implement the project
successfully with minimum risks.
Software Engineering - I 7
STAGE 2: DEFINING 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 is done through ‘SRS’ – Software
Requirement Specification document which
consists of all the product requirements to be
designed and developed during the project life
cycle.
Software Engineering - I 8
STAGE 3: DESIGNING THE PRODUCT
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 DDS - Design Document
Specification.
• 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.
Software Engineering - I 9
STAGE 3: DESIGNING THE PRODUCT ARCHITECTURE
Software Engineering - I 10
STAGE 4: BUILDING OR DEVELOPING THE
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 accomplished without much hassle.
• Developers have to follow the coding guidelines defined by
their organization and programming tools like compilers,
interpreters, debuggers etc are used to generate the code.
• Different high level programming languages such as C, C++,
Pascal, Java, and PHP are used for coding.
• The programming language is chosen with respect to the type
of software being developed.
Software Engineering - I 11
STAGE 5: TESTING THE PRODUCT
• 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.
• However this stage refers to the testing only
stage of the product where products defects
are reported, tracked, fixed and retested, until
the product reaches the quality standards
defined in the SRS.
Software Engineering - I 12
STAGE 6: DEPLOYMENT IN THE MARKET AND
MAINTENANCE
Software Engineering - I 14
LIFE CYCLE MODELS
• Life Cycle Models can be of two types:
– Sequential Models
– Iterative Models
• Sequential Models : These models prescribe a
sequence of activities.
• Iterative Models : These models prescribe
iterative execution of activities. That is some
activities can be repeated again and again.
Software Engineering - I 15
LIFE CYCLE MODELS
• Sequential Models include
– Waterfall model
– V model
Software Engineering - I 16
Thank
You
Software Engineering - I 17