Chapter 6- Software Process Model
Software Development Life Cycle (SDLC)
·
SDLC
stands for Software Development Life Cycle.
·
It
is the step-by-step process used to plan, design, build, test, and deliver
software.
·
It
helps developers create high-quality software that meets user needs and works
properly.
Stages of SDLC
1. Planning
·
In
this stage, the project team plans the whole software project.
·
They
find out what problem needs to be solved and how to solve it.
·
They
also decide what resources (time, money, people, tools) will be needed.
Main goal: To make a clear plan for the
project.
2. Defining
·
Here,
the team clearly defines the requirements of the software.
·
They
write down what the software should do, based on user needs.
·
This
information is written in a document called SRS (Software Requirement
Specification).
Main
goal: To understand exactly what the user wants.
3. Designing
·
The
system design is prepared based on the SRS.
·
It
shows how the software will work internally.
·
Includes
design of:
Database
·
User
interface (screen layout)
·
System
structure and data flow
Main goal: To make a blueprint
of the system before coding.
4. Building
(Coding)
·
Programmers
write the actual code using programming languages like Python, Java, or C++.
·
The
code must follow the design prepared in the previous step.
·
This
is the stage where the software is created.
Main goal: To build the
software program.
5. Testing
·
After
building, the software is tested to find and fix errors (bugs).
·
Testing
makes sure the program works correctly and meets all requirements.
·
Different
types of testing include:
Unit
testing
·
Integration
testing
·
System
testing
Main goal: To ensure the
software is error-free and reliable.
6. Deployment
·
The
final software is installed and delivered to the user.
·
Users
start using the system in the real environment.
·
The
developer also provides training, support, and updates if needed.
Main
goal: To launch the software and keep it running properly.
Summary Table
|
Stage |
Description |
Main
Goal |
|
Planning |
Decide
what to build and how |
Make
a clear plan |
|
Defining |
Collect
and list all requirements |
Know
what users need |
|
Designing |
Create
system structure and layout |
Make
blueprint |
|
Building |
Write
the actual program |
Build
the software |
|
Testing |
Check
for errors and fix them |
Make
it error-free |
|
Deployment |
Deliver
and install the system |
Launch
the software |
·
A
Software Project Manager is the leader of the software project.
·
They
are responsible for planning, organizing, and managing the whole project.
·
They
make sure the project is completed on time, within budget, and with good
quality.
·
The
project manager guides the team and ensures project success.
Main Duties:
·
Plan
the project schedule and resources.
·
Assign
tasks to team members.
·
Monitor
progress and control project costs.
·
Communicate
with clients and developers.
·
Solve
problems during development.
2. System Analyst
·
A
System Analyst is the person who studies user needs and designs the system to
meet those needs.
·
They
act as a bridge between users and developers.
·
They
understand both business problems and technical solutions.
·
The
system analyst finds out what users need and plans how the system will work.
Main Duties:
·
Study
the existing system (manual or old system).
·
Collect
and analyze user requirements.
·
Prepare
System Requirement Specification (SRS).
·
Design
system models like data flow diagrams and system structure.
·
Communicate
with both clients and programmers.
Software Engineer / Programmer
· A Software Engineer (or Programmer) is the person who writes and tests the code to build the software.
·
They
follow the design given by the system analyst and instructions from the project
manager.
Main Duties:
·
Write
programs using programming languages (like C, Java, Python).
·
Test
and debug the code to remove errors.
·
Maintain
and update the software.
·
Work
closely with other team members to ensure smooth functioning.
Requirement Collection Methods
·
Requirement
collection (also called requirement gathering) means finding out what users
need from a new or improved computer system.
·
It
is done by the system analyst during the system analysis phase of SDLC.
·
The
goal is to clearly understand user needs, problems, and expectations before
designing the system.
Main Methods of Requirement Collection
1. Brainstorming
·
A
group discussion where team members and users share ideas freely.
·
The
aim is to generate many ideas quickly about system features and problems.
Advantage:
Encourages creativity and teamwork.
Disadvantage:
Some ideas may be unrealistic or off-topic.
2. Document Analysis
·
The
analyst studies existing documents, such as reports, forms, manuals, and files
from the current system.
·
It
helps to understand how data flows and what improvements are needed.
Advantage:
Provides accurate technical details.
Disadvantage:
May not show current user problems or updated information.
3. Focus Group
·
A
small group of users (usually 6–10 people) are invited to discuss their needs
and experiences.
·
The
analyst listens to their opinions about the current system and expectations for
the new one.
Advantage:
Provides quick feedback from multiple users.
Disadvantage:
May not represent all user views.
4. Interface Analysis
·
The
analyst studies how users interact with the system — for example, through
screens, forms, or reports.
·
The
goal is to find ways to make the user interface easier and more efficient.
Advantage:
Improves user experience and system usability.
Disadvantage:
Focuses only on interface, not full system logic.
5. Interview
·
The
analyst talks directly with users, managers, or other stakeholders.
·
Questions
can be structured (planned) or unstructured (open discussion).
Advantage: Gives
detailed and clear information.
Disadvantage:
Time-consuming; users must cooperate.
6. Observation
·
The
analyst watches users while they perform their daily work.
·
It
helps to see real problems and work habits in the existing system.
Advantage: Gives
practical, real-world data.
Disadvantage:
Users may change behavior when being watched.
7. Prototyping
·
The
analyst builds a sample or model (prototype) of the system to show users.
·
Users
give feedback, and the prototype is improved until it meets their needs.
Advantage: Easy
for users to understand and suggest changes.
Disadvantage:
Takes time and may create confusion if users think it’s the final system.
8. Requirement Workshop
·
A
formal group meeting with users, developers, and managers.
·
They
discuss, review, and agree on system requirements together.
Advantage:
Builds common understanding quickly.
Disadvantage:
Needs careful planning and cooperation.
9. Reverse Engineering
·
Used
when the analyst studies an existing old system (without documentation) to find
out how it works.
·
The
system is analyzed backward to discover its structure, data, and functions.
Advantage:
Useful when upgrading or replacing old systems.
Disadvantage:
Difficult and time-consuming.
10. Survey / Questionnaire
·
A
written set of questions given to users to collect their views or needs.
·
Best
for large organizations with many users.
Advantage: Fast
and covers many people.
Disadvantage:
Answers may be incomplete or unclear.
Concept
of System Design
·
System
Design is the process of planning and creating the structure of a computer
system after the system analysis phase.
·
It
shows how the system will work — including data flow, processing, input, and
output.
·
It
acts as a blueprint or map for the programmers to build the actual software.
Note: The System Analysis Phase helps to
understand what the user wants, identifies problems in the current system, and
produces the SRS document that guides the next step — System Design.
Input
and Output of System Design
Input to System Design
The inputs are the materials or
documents used to create the design:
1. System Requirement Specification
(SRS) – describes what the system must do.
2. Data Flow Diagrams (DFD) – shows how
data moves in the system.
3. User Requirements and Constraints –
user expectations, hardware/software limits.
4. Feasibility Report – information
about cost, technology, and risk.
Output
of System Design
The outputs are the results or documents
produced after the design:
1. System Architecture – structure of
the system (hardware, software, network).
2. Database Design – how data will be
stored and managed.
3. User Interface Design – layout of screens,
menus, and forms.
4. Program Design – logic and structure
of code.
5. System Design Document (SDD) – final
blueprint for implementation.
Types
of System Design
System design can be divided into
several types depending on the level of detail and focus.
1.
Physical Design
·
Shows
the actual physical arrangement of the system.
·
Includes
hardware devices, software, input/output media, network setup, and file
locations.
·
Focuses
on how the system will be implemented in the real world.
·
Example:
Choosing computers, printers, servers, and network cables.
2.
System Architecture Design
·
Describes
the overall structure of the system.
·
Defines
major components, their relationships, and how they interact.
·
Includes
architecture styles like client-server, 3-tier, or cloud-based systems.
·
Example: Dividing a system into presentation,
application, and database layers.
3.
Detailed Design
·
Also
called logical design.
·
It
focuses on each part of the system in detail — inputs, outputs, data processing
steps, file structures, and algorithms.
·
Helps
programmers write code easily.
·
Example: Designing input forms, validation
rules, and database fields.
4.
Conceptual Data Modeling
·
Describes
the data requirements of the system at a high level.
·
Focuses
on what data is needed, how it is related, and how it flows between entities.
·
It
does not focus on physical storage details.
·
Example:
Identifying entities like Student, Teacher, Course, and their relationships.
5.
ER (Entity–Relationship) Modeling
·
A
specific type of conceptual data model.
·
It
uses an ER diagram to show:
Entities: main objects (e.g., Student,
Teacher)
Attributes: properties of entities (e.g.,
Name, Age)
Relationships: connections between entities
(e.g., Student enrolls in Course)
·
Example:
Drawing an ER diagram showing how students enroll in courses taught by teachers.
ER Diagram rule and example
Software Quality
Software
Quality means how well a software system meets user needs, works correctly, and
performs as expected.
A high-quality software is reliable, easy to
use, efficient, secure, and maintainable.
Objectives of
Software Quality
1.
To ensure the software meets user requirements.
2.
To improve reliability and reduce errors (bugs).
3.
To make the software easy to use, maintain, and update.
4.
To provide long-term performance and stability.
5.
To increase customer satisfaction.
Factors /
Characteristics of Software Quality
|
Characteristic |
Description |
|
1.
Functionality |
The
software performs the required tasks correctly. It has all the needed
features and functions. |
|
2.
Reliability |
The
software works without failure under different conditions for a long
time. |
|
3.
Usability |
The
software is easy to learn and operate for users. |
|
4.
Efficiency |
The
software uses less time and system resources (like memory and CPU)
effectively. |
|
5.
Maintainability |
The
software can be easily modified, debugged, or updated when needed. |
|
6.
Portability |
The
software can run on different hardware or operating systems without major
changes. |
Software Quality
Assurance (SQA)
·
SQA
is the process used to ensure software quality during development.
·
It
includes:
Ø Regular testing
Ø Code reviews
Ø Quality control
and standards checking
Ø Its main goal is
to prevent defects and maintain high standards.
SDLC Models (v.
important)
·
SDLC
(Software Development Life Cycle) Models describe different ways of developing
software.
·
Each
model defines how the phases of SDLC are carried out.
·
The
choice of model depends on the type of project, time, cost, and user
involvement.
1. Waterfall
Model
·
The
Waterfall Model is the oldest and simplest SDLC model.
·
In
this model, each phase is completed step-by-step in a linear order, like a
waterfall.
·
Once
a phase is finished, the developer moves to the next phase — no going back.
1.
Requirement Gathering
2.
System analysis
3.
Coding
4.
Testing
5.
Implementation
6.
Operation and Maintenance
Page number 262:
Diagram of water fall model
·
In
this phase, the project team collects all requirements from the client or user.
·
They
identify what the software should do and what features are needed.
·
The
result of this phase is a Requirement Specification Document (SRS).
✅ Output: List of all user requirements.
✅ Goal: Understand the problem clearly
before starting development.
2. System
Analysis
·
The
collected requirements are studied and analyzed in detail.
·
Analysts
check what is possible, identify system components, and plan how data will
flow.
·
A
system model (like data flow diagrams or ER diagrams) is created.
✅ Output: System design plan and
feasibility confirmation.
✅ Goal: Understand the system structure
and how it will work.
3. Coding
(Implementation)
·
In
this phase, programmers write the actual code using a suitable programming
language (like C, Java, or Python).
·
The
code is written based on the system design document.
·
Each
module or part of the system is developed separately.
✅ Output: Source code (the working
software).
✅ Goal: Build the software according to
design.
4. Testing
·
After
coding, the system is tested to find and fix errors (bugs).
·
Testing
ensures that the software:
Ø Works correctly
Ø Meets the user
requirements
Ø Is reliable and
secure
✅ Output: Tested, error-free software.
✅ Goal: Ensure software quality and
performance.
5.
Implementation
·
The
tested software is installed (deployed) in the real working environment.
·
Users
are trained to use the new system.
·
Old
data and systems may be replaced or integrated with the new one.
✅ Output: Software in actual use.
✅ Goal: Successfully launch the system
for users.
6. Operation and
Maintenance
·
After
the system is in use, developers perform maintenance activities such as:
·
Fixing
new errors (bugs)
·
Updating
the system for new needs
·
Improving
performance
✅ Output: Updated and smoothly running
system.
✅ Goal: Keep the software working
properly over time.
Features:
·
Each
phase must be completed before the next starts.
·
Documentation
is done at every stage.
·
Works
well for small, clear, and fixed projects.
Advantages:
·
Simple
and easy to understand.
·
Well-structured
and organized.
·
Good
for projects with clearly defined requirements.
Disadvantages:
·
Difficult
to go back and make changes.
·
Not
suitable if requirements change often.
·
Testing
is done late, so errors are found late.
2. Prototyping
Model
·
In
the Prototyping Model, a sample version (prototype) of the software is built
first.
·
The
prototype is shown to users for feedback and improvement until the final system
is ready.
Steps:
1.
Collect basic requirements
2.
Design and build a prototype
3.
Show to users and get feedback
4.
Refine and improve prototype
5.
Final system development
Features:
·
The
prototype is used to understand user needs better.
·
Changes
can be made early and easily.
Advantages:
·
Helps
users see how the system will look.
·
Reduces
misunderstandings between users and developers.
·
Faster
to find and fix problems.
Disadvantages:
·
Can
take more time if users keep requesting changes.
·
May
lead to incomplete or unstructured documentation.
3. Agile Model
·
The
Agile Model is a modern and flexible SDLC approach.
·
The
software is developed in small parts (iterations), and each part is tested and
improved based on user feedback.
·
It
focuses on continuous improvement and close teamwork.
Process:
1.
Plan the first small part (iteration).
2.
Design, code, and test that part.
3.
Get user feedback.
4.
Improve and continue with the next part.
5.
Repeat until the full system is complete.
Features:
·
Users
are involved throughout development.
·
Software
is delivered quickly and improved regularly.
Advantages:
·
Very
flexible — easy to adapt to changes.
·
Faster
delivery of working software.
·
High
customer satisfaction due to constant feedback.
Disadvantages:
·
Needs
experienced developers.
·
Hard
to estimate total cost and time at the start.
·
Requires
continuous user involvement.
Book Exercises Page number-
1.Multiple
Choice Questions
i.Which software process model is known for its sequential and linear approach, where each phase must be completed before moving on to the next?
a.
Waterfall model
b.
Agile model
C.
Spiral model
d.
V-Model
ii. Which software process model emphasizes the importance of continuous customer collaboration and the ability to adapt to changing requirements?
a
Waterfall model
b.
Incremental model
C. Agile model
d.
RAD model
iii. In the Agile model, what is the primary role responsible for defining and prioritizing the items in the product backlog?
a.
Scrum Master
b. Product Owner
C.
Development Team
d
Project Manager
iv.Which software process model is suitable for projects with well-defined and stable requirements?
a. Waterfall
model
b.
RAD model
C
Agile model
d.
Spiral model
2.
Short Answer Questions
i. List the advantages and disadvantages of Waterfall Model.
Advantages:
·
Simple
and easy to understand.
·
Clearly
defined stages.
·
Easy
to manage due to rigidity.
·
Works
well for smaller projects with fixed requirements.
Disadvantages:
·
Difficult
to go back to previous stages.
·
Not
suitable for changing requirements.
·
Late
testing can lead to higher costs.
·
Poor
model for long and complex projects.
ii.
What is software project? Explain briefly.
A
software project is a planned and organized effort to develop or maintain a
specific software application or system. It includes tasks such as requirement
gathering, design, coding, testing, and maintenance. The main goal is to
deliver quality software within time and budget.
iii.
Describe about Software development process with example.
The
software development process is a set of steps followed to design, develop,
test, and deploy software efficiently.
Example:
In
the Waterfall Model, development follows stages like requirement analysis →
design → coding → testing → deployment. Each stage must be completed before the
next one begins.
iv.
Write advantage and disadvantage of Prototyping Model.
Advantages:
·
Users
can visualize the system early.
·
Helps
identify missing or incorrect requirements.
·
Reduces
risk of failure.
Disadvantages:
·
Time-consuming
to build multiple prototypes.
·
May
lead to incomplete or poorly designed systems if rushed.
·
Users
may confuse prototype with final product.
v.
Mention advantage and disadvantage of Agile Model.
Advantages:
·
Flexible
and adaptable to changes.
·
Continuous
customer feedback improves quality.
·
Early
delivery of working software.
·
Encourages
teamwork and communication.
Disadvantages:
·
Difficult
to estimate cost and time.
·
Requires
experienced developers.
·
Not
suitable for very large projects.
·
Can
be less documentation-heavy.
vi.
What are systems analysts?
A
system analyst is a professional who studies and analyzes business needs to
design information systems that improve efficiency. They act as a bridge
between users and developers by defining requirements, preparing system
specifications, and ensuring the system meets user goals.
vii.
Explain about software quality.
Software
quality refers to how well software meets user requirements, performance
standards, and reliability expectations. High-quality software is easy to use,
efficient, secure, maintainable, and error-free. It ensures customer
satisfaction and long-term usability.
viii.
What are the factors affecting the detection of defects in software products
and other industrial products?
Factors
affecting defect detection include:
·
Testing
methods and tools used.
·
Experience
and skill of testers.
·
Complexity
of the software.
·
Time
allocated for testing.
·
Quality
of design and code review process.
·
Communication
among development team members.
3.
Long Answer Questions (8 Marks Each)
i.
What is SDLC? Write the various stages of SDLC.
SDLC
(Software Development Life Cycle) is a systematic process used by software
developers to design, develop, test, and deploy software. It ensures
high-quality software production within time and budget.
Stages
of SDLC:
1.
Planning
2.
Defining
3.
Designing
4.
Building(coding)
5.
Testing
6.
Deployment
ii.
What are the requirements collecting methods?
Requirements
collecting methods are techniques used to gather user and system needs before
development begins.
Common
methods include:
1.
Interviews – Direct discussions with users or stakeholders.
2.
Questionnaires – Written surveys to collect information.
3.
Observation – Watching how users perform their tasks.
4.
Document Analysis – Studying existing manuals, reports, or records.
5.
Brainstorming – Group discussion to generate ideas.
iii.
Explain about system design with its different types.
System
design is the process of defining the architecture, components, modules,
interfaces, and data for a system to meet specified requirements.
Types
of System Design:
1.
Input System Design:
i.
System Requirement Specification (SRS) – describes what the system must do.
ii.
Data Flow Diagrams (DFD) – shows how data moves in the system.
iii.
User Requirements and Constraints – user expectations, hardware/software
limits.
iv.
Feasibility Report – information about cost, technology, and risk.
2.
Output of System Design:
i. System Architecture – structure
of the system (hardware, software, network).
ii. Database Design – how data will
be stored and managed.
iii. User Interface Design – layout
of screens, menus, and forms.
iv. Program Design – logic and
structure of code.
v. System Design Document (SDD) –
final blueprint for implementation.
Example:
In a library system, logical design defines how users borrow books, while
physical design defines which database stores book records.
iv.
What are the popular SDLC models? Explain any one of them.
Popular
SDLC Models:
·
Waterfall
Model
·
Prototype
Model
·
Agile
Model
Example
– Waterfall Model:
The
Waterfall Model is a linear and sequential approach where each phase must be
completed before the next begins.
Phases:
1.
Requirement Gathering
2.
System analysis
3.
Coding
4.
Testing
5.
Implementation
6.
Operation and Maintenance
Advantages:
Easy to manage, simple to understand, suitable for small projects.
Disadvantages:
Inflexible to changes, late error detection, not suitable for complex or
evolving projects.

