SDLC Guide for Software Developers
SDLC Guide for Software Developers
14 marks:
Software Development Phases
3.1 Importance and need of SDLC
3.2 System Study
3.3 Feasibility study and its types
3.4 System Requirements & Analysis
3.5System Requirements Specification
3.7 System Development
3.8 System Testing
3.9 System implementation
3.10 System Maintenance and reviews (SRS)
3.6 System Design
3.1 Illustrate the importance and need of SDLC.
Software Development Life Cycle (SDLC) is a process used to design and
develop a high-quality software. The SDLC consists of seven phases which
depict various stages/phases of the development process.
• Product development process is carried out as a series of certain activities
for software production. Each activity in the process is also referred to as
a phase.
• General activities include feasibility study, analysis, design, coding,
testing, implementation, and maintenance.
• Collectively, these activities are called the software development life cycle
(SDLC) or simply software life cycle and each of these activities are called
life cycle phase.
• The SDLC provides a framework that encompasses the activities
performed to develop and maintain software.
• Some of the software development models are waterfall, prototyping,
spiral, incremental, agile process, RUP process model, and so on.
1
Some of the importance are pointed below:
• It acts as a guide to the project and meet client’s objectives.
• It helps in evaluating, scheduling and estimating deliverables.
• It provides a framework for a standard set of activities.
• It ensures correct and timely delivery to the client
The Software Development Life Cycle (SDLC) is a structured process used
by software development teams to design, develop, test, and deploy
high-quality software. It is a crucial framework for managing and
delivering successful software projects. Here are some of the key reasons
why SDLC is important:
Types of Systems:
The systems can be divided into the following types −
Physical or Abstract Systems
Physical systems are tangible entities. We can touch and feel them.
Physical System may be static or dynamic in nature. For
example, desks and chairs are the physical parts of
computer center which are static. A programmed
computer is a dynamic system in which programs, data, and
applications can change according to the user's needs.
Abstract systems are non-physical entities or conceptual
that may be formulas, representation or model of a real
system.
1.Open or Closed Systems
An open system must interact with its environment. It
receives inputs from and delivers outputs to the outside of
the system. For example, an information system which
must adapt to the changing environmental conditions.
A closed system does not interact with its environment. It is
isolated from environmental influences. A completely
closed system is rare in reality.
8
2,Adaptive and Non-Adaptive System
Adaptive System responds to the change in the
environment in a way to improve their performance and to
survive. For example, human beings, animals.
Non-Adaptive System is the system which does not
respond to the environment. For example, machines.
3.Permanent or Temporary System
Permanent System persists(remain) for long time. For example, business
policies.
Temporary System is made for specified time and after that
they are demolished. For example, A DJ system is set up for
a program and it is dissembled after the program.
4.Natural and Manufactured System
Natural systems are created by the nature. For example,
Solar system, seasonal system.
Manufactured System is the man-made system. For
example, Rockets, dams, trains.
Deterministic or Probabilistic System
Deterministic system operates in a predictable manner and
the interactionbetween system components is known with
certainty. For example, two molecules of hydrogen and
one molecule of oxygen makes water.
Probabilistic System shows uncertain behaviour. The exact
output is not known. For example, Weather forecasting,
mail delivery.
5.Social, Human-Machine, Machine System
Social System is made up of people. For example, social clubs, societies.
9
In Human-Machine System, both human and machines are
involved to perform a particular task. For example,
Computer programming.
Machine System is where human interference is neglected.
All the tasks are performed by the machine. For example,
an autonomous robot.
6.Man–Made Information Systems
It is an interconnected set of information resources to
manage data for particular organization, under Direct
Management Control (DMC).
This system includes hardware, software, communication,
data, and application for producing information according
to the need of an organization.
Man-made information systems are divided into three types –
1. Formal Information System − It is based on the flow of
information in the form of memos, instructions, etc., from
top level to lower levels of management.
2. Informal Information System − This is employee-based
system which solves the day-to-day work-related problems.
3. Computer Based System − This system is directly
dependent on the computer for managing business applications.
For example, automatic library system, railway reservation
system, banking system, etc.
11
Rank the other alternatives and select the best candidate system.
Prepare a system proposal of final project directive to
management for approval.
Types of
Feasibilities
1. . Economic
Feasibility
It is evaluating the effectiveness of candidate system by
using cost/benefit analysis method.
It demonstrates the net benefit from the candidate system
in terms of benefits and costs to the organization.
The main aim of Economic Feasibility Analysis (EFS) is to
estimate the economic requirements of candidate system
before investments funds are committed to proposal.
It prefers the alternative which will maximize the net worth
of organization by earliest and highest return of funds
along with lowest level of risk involved in developing the
candidate system.
2.Technical Feasibility
It investigates the technical feasibility of each
implementation alternative.
It analyses and determines whether the solution can be
supported by existing technology or not.
The analyst determines whether current technical
resources be upgraded or added it that fulfill the new
requirements.
It ensures that the candidate system provides
appropriate responses towhat extent it can support the
technical enhancement.
3.Operational Feasibility
It determines whether the system is operating effectively
once it is developed and implemented.
It ensures that the management should support the
proposed system and its working feasible in the current
organizational environment.
12
It analyses whether the users will be affected and they
accept the modified or new business methods that affect
the possible system benefits.
It also ensures that the computer resources and network
architecture of candidate system are workable.
4.Behavioral Feasibility
It evaluates and estimates the user attitude or behavior
towards the development of new system.
It helps in determining if the system requires special effort
to educate, retrain, transfer, and changes in employee’s
job status on new ways of conducting business.
13
5.Schedule Feasibility
It ensures that the project should be completed within given
time constraint or schedule.
It also verifies and validates whether the deadlines of project
are reasonable or not.
Requirement Analysis:
• Requirements Analysis is the process of defining the expectations of
the users for an application that is to be built or modified.
• It involves all the tasks that are conducted to identify the needs of
different stakeholders.
• High-quality requirements are documented, actionable, measurable,
testable, traceable, helps to identify business opportunities, and are
defined to a facilitate system design
Requirement Analysis Process
• The software requirements analysis process involves the following
steps/phases:
1- Eliciting requirements
• The process of gathering requirements by communicating with the customers
is known as eliciting requirements.
2- Analyzing requirements
• This step helps to determine the quality of the requirements. It involves
identifying whether the requirements are unclear, incomplete, ambiguous, and
contradictory. These issues resolved before moving to the next step.
16
3- Requirements modeling
• In Requirements modeling, the requirements are usually documented in
different formats such as use cases, user stories, natural-language documents,
or process specification.
•4- Review and retrospective • This step is conducted to reflect on the
previous iterations of requirements gathering in a bid to make improvements in
the process going forward.
Requirement Analysis importance:
1. Understanding Client Needs: Requirement analysis involves a
deep exploration of the client's needs and expectations. This step
ensures that the software development team comprehensively
understands what the client wants to achieve with the final product.
2. Minimizing Ambiguity(mystery) and Misunderstandings:
Through careful analysis, potential ambiguities, contradictions, or
missing information in the initial requirements are identified and
resolved. This helps in preventing misunderstandings and costly
mistakes later in the development process.
3. Scope Definition and Control: Requirement analysis helps in
clearly defining the boundaries of the project. It outlines what
features and functionalities are included, helping to prevent "scope
creep" — the tendency for requirements to expand beyond the
original plan.
4. Basis for Design and Development: Detailed requirements serve
as the foundation for designing the system architecture and for the
actual development work. Without clear requirements, the
development process would lack direction and focus.
5. Cost and Resource Estimation: It enables accurate estimation of
the resources (time, manpower, technology) needed for the project.
This ensures that the project can be completed within budget and
on schedule.
6. Client Satisfaction and Trust Building: Thorough requirement
analysis leads to a software solution that aligns closely with the
client's vision. This, in turn, fosters trust and satisfaction, as the
client sees that their needs have been understood and addressed.
17
In summary, requirement analysis is the cornerstone of a successful
software project. It ensures that the project starts on a solid foundation,
with a clear understanding of what needs to be achieved and how it will
be accomplished. This ultimately leads to a higher likelihood of
delivering a product that meets or exceeds client expectations.
18
• It provides basis for later stages of software development, viz.,
design, coding, testing, standard compliances, delivery, and
maintenance.
• It acts as the reference document for the validation and verification
of the work products and final software.
• It is treated as an agreement on the features incorporated in the
final system of project between customer and the supplier.
• A good quality SRS ensures high quality software product.
• A high quality SRS reduces development effort (schedule, cost, and
resources) because unclear requirements always lead to
unsuccessful projects.
importance and need of SRS:
Characteristics of SRS:
• Correctness
• Unambiguity (notpuzzle)
• Completeness
20
• Consistency
• Should be ranked for importance and/or stability
• Verifiability
• Modifiability
• Testability
• Validity
• Traceability
Components of an SRS:
– Functional requirements
– Performance requirements
– Design constraints (hardware and software)
– External interface requirements
3.6 Describe the System Design.
System design is the phase that bridges the gap between
problem domain and the existing system in a manageable way.
This phase focuses on the solution domain, i.e., “how to
implement?”
It is the phase where the SRS document is converted into a
format that can be implemented and decides how the system
will operate.
In this phase, the complex activity of system development is
divided into several smaller sub-activities, which coordinate with
each other to achieve the main objective of system
development.
21
Inputs to System Design:
System design takes the following inputs −
Statement of work
Requirement determination plan
Current situation analysis
Proposed system requirements including a conceptual data
model, modified DFDs, and Metadata (data about data).
Outputs for System Design:
System design gives the following outputs −
Infrastructure and organizational changes for the proposed system.
A data schema, often a relational schema.
Metadata to define the tables/files and columns/data-items.
A function hierarchy diagram or web page map that
graphically describes the program structure.
Actual or pseudocode for each module in the program.
A prototype for the proposed system.
Software Design
23
• Physical design relates to the actual input and output
processes of the system. It focuses on how data is entered
into a system, verified, processed, and displayed as output.
• It produces the working system by defining the design
specification that specifies exactly what the candidate
system does. It is concerned with user interface design,
process design, and data design.
25
System Development Life Cycle:
The System Development Life Cycle encompasses a series of interconnected
stages that ensure a systematic approach to system development. The stages
include Planning, Analysis, Design, Development, Implementation, and
Maintenance. Each stage contributes to the successful completion of the system,
with System Design serving as a crucial component.
Stage 1: Plan
The Planning stage lays the groundwork for the entire SDLC. It involves
identifying the system’s goals, defining project scope, setting objectives,
establishing timelines, and determining available resources. Planning ensures
that the development process aligns with organizational needs and sets a clear
direction for subsequent stages.
Stage 2: Analyze
During the Analysis stage, the focus is on gathering and understanding the
requirements of the system. This includes conducting interviews, studying
existing processes, and identifying stakeholders’ needs. The gathered
information serves as a basis for designing a system that meets users’
expectations and addresses organizational challenges.
Stage 3: Design
System Design is a critical stage in the SDLC, where the requirements gathered
during the Analysis phase are translated into a detailed technical plan. It involves
designing the system’s architecture, database structure, and user interface, and
defining system components. The Design stage lays the foundation for the
subsequent development and implementation phases.
Stage 4: Develop
The Development stage involves the actual coding and programming of the
system. Based on the design specifications, developers write code, create
database structures, and implement necessary functionalities. Rigorous testing
and quality assurance are performed to ensure the system’s accuracy,
performance, and adherence to the design requirements.
Stage 5: Implement
This stage involves deploying the developed system into the production
environment. This includes activities such as system installation, data migration,
training end-users, and configuring necessary infrastructure. Implementation
requires careful planning and coordination to minimize disruptions and ensure
a smooth transition from the old system to the new one.
26
Stage 6: Maintain
Maintenance is an ongoing stage that involves monitoring, managing, and
enhancing the system’s performance and functionality. It includes activities
such as bug fixes, updates, security patches, and addressing user feedback.
Regular maintenance ensures the system remains reliable, secure, and adaptable
to changing business needs.
3.8. System Testing
• It is the process used to help identify the correctness, completeness, security
and quality of developed computer system.
• Testing is a process of technical investigation performed on behalf on
stakeholders that is intended to reveal quality related information about the
product with respect to the context in which it is integrated to operate.
• This includes the process of executing a program or application with the
intend of finding error.
• No program or system design is perfect, communication between the user
and the designer is not always short.
• The result is errors and more errors. Testing is vital to the success of the
system .
Software testing is the process of finding defects in the software so that
these can be debugged and the defect-free software can meet the
customer needs and expectations.
Software testing is one of the important phases in software development
life cycle.
A quality software can be achieved through testing.
Effective testing reduces the maintenance cost and provides reliable
outcomes.
Example of Ineffective testing -the Y2K problem.
The intention of software testing process is to produce a defect-free
system.
Role of Software testers:
27
The goal of testers is to confirm that the software works properly by
finding defects as early as possible and ensuring that these are fixed
Software tester does the following tasks for testing the software.
Prepare the test plan and test data.
Design test cases and test scripts.
Set up test environment.
Perform testing.
Track the defects in the defect management system.
Participate in the test case review meetings.
Prepare test report.
Follow software standards.
Component Testing Process:
1. Requirement Analysis: User requirement related to each component is
observed.
2. Test Planning: Test is planned according to the analysis of the
requirements of the user.
3. Test Specification: In this section it is specified that which test case must
be run and which test case should be skipped.
4. Test Execution: Once the test cases are specified according to the user
requirements, test cases are executed.
5. Test Recording: Test recording is the having record of the defects that are
detected.
6. Test Verification: Test verification is the process to determine whether
the product meet specification.
7. Completion: This is the last phase of the testing process in which the
result is analyzed.
28
Black-box testing is performed on the basis of functions or features of the
software. In black-box testing, only the input values are considered for
the design of test cases.
The output values that the software provides on execution of test cases
are observed. The internal logic or program structures are not considered
during black-box testing.
It is also known as behavioral or functional testing.
There are a number of black-box test case design methods
Equivalence class partitioning
Boundary value analysis
Cause-effect graphing
Error guessing
❖ White box Testing – Structural Testing:
White-box testing is concerned with exercising the source code of a
module and traversing a particular execution path.
The internal logics, such as control structures, control flow, and
data structures are considered during the white-box testing.
White-box testing methods are applied at integration and testing
phases. White-box testing is also known as glass-box testing or
structural testing.
The following white-box testing methods are widely used for testing
the software:
Control flow based testing
Path testing
Data flow based testing
Mutation testing
Differences between Black Box Testing vs White Box Testing:
29
Black Box Testing White Box Testing
30
Black Box Testing White Box Testing
31
• The software engineer translates the design specifications into source
codes in some programming language.
• The main goal of implementation is to produce quality source codes
that can reduce the cost of testing and maintenance.
• The purpose of coding is to create a set of instructions in a
programming language so that computers execute them to perform
certain operations.
• Implementation is the software development phase that affects the
testing and maintenance activities.
• A clear, readable, and understandable source code will make testing,
debugging, and maintenance tasks easier.
32
Coding Deliverables: Code, Program Documentation
34
If not monitored and modified on a regular basis, a system will
only be relevant and effective for a short period. Review and
maintenance are required in order to extend the life of the
current system for as long as possible.
Time-driven approach: A time-driven procedure is performed periodically.
Event-driven approach: An event-driven procedure starts when
a problem or opportunity such as an error, a corporate merger, a
new market, or new product arises. Events can include the
following:
new information needs by users and managers resulting
from changes in the industry and new competitors
entering the market
errors, anomalies and problems in the program that were
not picked up during the development stages - business
processes that have changed for some reason
corporate mergers and acquisitions that require the
integration of a different system changes in technology
that result in the use of new hardware
technical problems with software and hardware
new government regulations that affect the operational system and
requirements
unforeseen events that result in the need to make
changes to the system Most organizations use a
combination of the two approaches.
The system review process
The system review process has two main objectives:
35
If the organization has already decided to develop a new system,
a development team would be the best people to review the
current system.
2. Factors to consider during
the system review process
During a system review, important factors to consider are:
the mission and goals of the organization F hardware in use
software in use
controls in place
costs of development and operation
36
3. Different
aspects of the review process
The review phase consists of the following two aspects:
A. Post-implementation review
The development team needs to initiate a post-
implementation review to measure the success of the
development process, to determine whether the
required objectives have been met and if not, why
not.
Post-implementation review measures:
the suitability of the conversion, transfer and introduction
procedures
whether the underlying principles of the changes have been
clearly explained
the suitability and effectiveness of the
documentation created during the system
implementation process
whether the user training conducted during
the implementation process was effective
whether there was a closure process with the users and
stakeholders
B. Resource management review
The resource management review is done to
determine the effectiveness of the use of
organizational resources during the system
development stages.
An internal auditing team will usually do this review;
where an internal auditing team does not exist, a
senior management team will do the review.
4. Review methods
There are four possible methods for
conducting reviews namely:
Questionnaires
37
Focus
groups
Perfor
mance
measu
res
Carry
out a
survey
5. The system review report
After the review process has been completed, the
facts need to be collected and the development
team needs to prepare a formal system review
report.
• Software Maintenance
• Software maintenance is the process of modifying a software
product after it has been delivered to the customer.
• The main purpose of software maintenance is to modify and
update software application after delivery to correct faults and
to improve performance.
• Changes made to a system to fix or enhance its functionality.
Software Maintenance is a very broad activity that includes
error corrections, enhancements of capabilities, deletion of
obsolete capabilities, and optimization.
Why Maintenance is Needed?
1. Software Maintenance must be performed in order to:
2. Correct faults.
3. Improve the design.
4. Implement enhancements.
38
5. Interface with other systems.
6. Accommodate programsso that different hardware, software,
system features, and telecommunications facilities can be used.
7. Migrate legacy software.
8. Retire software
Nature of Maintenance/Types of Maintenance
1. Corrective maintenance: Corrective maintenance of a software
product may be essential either to rectify some bugs observed
while the system is in use, or to enhance the performance of
the system.
2. Adaptive maintenance: This includes modifications and
updation when the customers need the product to run on new
platforms, on new operating systems, or when they need the
product to interface with new hardware and software.
3. Perfective maintenance: A software product needs
maintenance to support the new features that the users want
or to change different types of functionalities of the system
according to the customer demands.
4. Preventive maintenance: This type of maintenance includes
modifications and updations to prevent future problems of the
software. It goals to attend problems, which are not significant
at this moment but may cause serious issues in future
Review and maintenance are crucial phases in the Software
Development Life Cycle (SDLC) for several important
reasons:
39
Review and maintenance activities allow for adjustments
and updates to the software to ensure it continues to
meet the evolving needs of the organization.
3. Enhancing Security: Security vulnerabilities may emerge
after the initial development. Regular reviews and
maintenance allow for the identification and patching of
potential security risks to protect the system and its data.
4. Optimizing Performance: As usage patterns change or as
the software's load increases, performance issues may
arise. Reviews and maintenance activities allow for
performance tuning and optimization to ensure the
system operates efficiently.
5. Addressing Compatibility Issues: Changes in external
systems or platforms may lead to compatibility issues.
Review and maintenance activities help in ensuring that
the software remains compatible with other software and
hardware components in the environment.
6. Managing Technical Debt: Over time, codebases can
accumulate technical debt – suboptimal code or design
decisions made for expediency. Regular reviews and
maintenance efforts help in identifying and addressing
technical debt to maintain code quality.
7. Compliance and Regulation Updates: Laws, regulations,
and industry standards may change. Review and
maintenance activities are essential for ensuring that the
software remains compliant with the latest legal and
regulatory requirements.
8. Improving User Experience: Feedback from end-users
can provide valuable insights into how the software can be
improved for better usability and user satisfaction. Regular
reviews and maintenance efforts allow for the
implementation of user-driven enhancements.
40
9. Sustaining Long-Term Value: As software is expected to
have a long lifespan, ongoing review and maintenance
activities help in preserving the value and usefulness of the
system over time.
10. Preventing System Deterioration: Without regular
review and maintenance, software systems can deteriorate,
leading to reduced performance, increased downtime, and
potential business disruptions.
BEST OF LUCK
41