ITPE 104
Integrative Programming
& Technologies 2
SOFTWARE
DEVELOPMENT LIFE
CYCLE (SDLC)
Software Development Life
Cycle (SDLC)
The Software Development Life Cycle (SDLC) is a structured framework used
by software organizations to design, develop, and test high-quality software. It
defines the entire process of software production, from the initial idea to the
final deployment and maintenance.
The goal of the SDLC is to produce high-quality software that meets or
exceeds customer expectations, reaches completion within time and cost
estimates, and is efficient to maintain.
Stages of SDLC
SDLC specifies the tasks to be performed at various stages by a software
engineer or developer. Hence, it's vital for a software developer to have prior
knowledge of this software development process. SDLC is a collection of these
six stages, and the stages of SDLC are as follows:
cont...
Stage 1: Planning
This is the most fundamental stage. Before writing code, the team must define
what they are building and why.
Stage 2: Requirements gathering
Gathers and documents detailed user and system needs, creating a
comprehensive requirements specification. Once the plan is approved, the
specific product requirements must be defined and documented. This is done
through the Software Requirement Specification (SRS) document.
Stage 3: Design
The project team designs the proposed system. The team should consider
factors such as physical construction, hardware, operating systems,
programming, databases, communications, user interfaces and security. The
organization might develop a prototype to show stakeholders what the final
product could look like.
Stage 4: Development
This is the longest phase where the actual building takes place. Developers
write code using the appropriate programming environment and language.
Stage 5: Testing
System tests confirm that the system's features work correctly and that it satisfies user
expectations. The goal is to find bugs before the customer does.
Types of Testing:
Unit Testing: Testing individual functions.
Integration Testing: Ensuring modules work together.
System Testing: Testing the entire application flow. (Alpha and Beta Test)
User Acceptance Testing (UAT): Verifying the software meets business needs.
Stage 6: Deployment
The finished product is released to users in a production environment. Users are then
trained for the new system.
Stage 7: Maintenance
The cycle doesn't end at deployment. Software must be maintained to remain useful.
This step involves changing and updating the system once in place. An organization
upgrades or replaces hardware or software to continuously meet the requirements of
end users.
Users should be kept up to date concerning any modifications to minimize confusion or
productivity losses.
Common SDLC Models
Waterfall Model - The Waterfall Model is
a traditional software development
methodology that follows a linear, phase-
by-phase approach, where each phase
must be completed before moving to the
next. It does not allow backtracking and
permits only minimal changes once a
phase is completed.
cont...
Agile Model - The Agile Model was
primarily designed to help a project
adapt quickly to change requests. So,
the main aim of the Agile model is to
facilitate quick project completion.
cont...
Spiral Model - The Spiral Model is one of
the most important SDLC models,
combining the structured approach of
the Waterfall Model with the flexibility of
the Iterative Model.
DIFFERENCE BETWEEN
ALGORITHM AND
FLOWCHART
What is Algorithm?
The word Algorithm means “a process or set of rules to be followed in
calculations or other problem-solving operationsˮ. Therefore, algorithm refers
to a set of rules/instructions that step-by-step define how a work is to be
executed in order to get the expected results.
What is Algorithm?
The word Algorithm means “a process or set of rules to be followed in
calculations or other problem-solving operationsˮ. Therefore, algorithm
refers to a set of rules/instructions that step-by-step define how a work is to
be executed in order to get the expected results.
Algorithm of linear search:
Start from the leftmost element of arr[] and one by one compare x with
each element of arr[].
If x matches with an element, return the index.
If x doesnʼt match with any of elements, return -1.
What is Flowchart?
A flowchart is a graphical representation of an
algorithm. Programmers often use it as a program-
planning tool to solve a problem. It makes use of
symbols that are connected among them to
indicate the flow of information and processing.
The process of drawing a flowchart for an
algorithm is known as “flowchartingˮ.
These shapes form the foundation of most flowcharts, helping create a
clear and logical representation of processes.