0% found this document useful (0 votes)
335 views91 pages

Software Engineering Unit 2 Easy Notes (Edushine Classes)

The document outlines the process of Requirement Engineering (RE) in software development, emphasizing its importance in ensuring that software meets user needs and expectations. It details the five main steps of RE: Elicitation, Analysis, Documentation, Validation, and Management, along with the significance of conducting a Feasibility Study before development. Additionally, it discusses the challenges faced during Requirement Elicitation and the types of system documentation necessary for effective software management.

Uploaded by

parat70268
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)
335 views91 pages

Software Engineering Unit 2 Easy Notes (Edushine Classes)

The document outlines the process of Requirement Engineering (RE) in software development, emphasizing its importance in ensuring that software meets user needs and expectations. It details the five main steps of RE: Elicitation, Analysis, Documentation, Validation, and Management, along with the significance of conducting a Feasibility Study before development. Additionally, it discusses the challenges faced during Requirement Elicitation and the types of system documentation necessary for effective software management.

Uploaded by

parat70268
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
You are on page 1/ 91

Software Engineering (BCS601)

Unit-2 Software Requirement


Specification(SRS)

Edushine Classes

Follow Us
Download Notes : https://rzp.io/rzp/dhbqdFp
https://telegram.me/rrsimtclasses/
Software Engineering (BCS601)

 What is Requirement Engineering ?


 Requirement Engineering (RE) is the process of collecting, understanding, analyzing,
and managing software requirements before starting development. It ensures that
the final software meets user needs and expectations.
 Requirement Engineering ensures software development is planned properly
before writing any code.
 This helps in avoiding project failures, saving costs, and ensuring customer
satisfaction.
 It follows 5 main steps: Elicitation (Gathering), Analysis (Understanding),
Documentation (Writing), Validation (Checking), and Management (Updating).

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
Software Engineering (BCS601)

Before starting the Requirement Engineering Process, we must check whether the
software project is possible to build or not. This step is called Feasibility Study.
1. Feasibility Study?
📌 A Feasibility Study is an analysis to check if a software project is technically
possible, cost-effective, and beneficial for the organization.
📌 It helps decision-makers understand whether they should proceed with the
project or not.
Types of Feasible Study

1. Technical 2. Economic 3. Legal 4. Operational


Feasible 5. Schedule Feasible
Feasible Feasible Feasible

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

i. Technical Feasibility 🚀
✔Checks if required technology, hardware, and software are available.
✔ Ensures the project is technically possible to develop.
✔ Example: Can we build an AI chatbot with our current resources?
ii. Economic Feasibility (Cost Analysis) 💰
✔Compares project cost vs. expected profit.
✔ Ensures the project is financially beneficial.
✔ Example: If development costs ₹10 lakh but earns ₹50 lakh, it is feasible.
iii. Legal Feasibility ⚖️
✔Checks if the project follows laws and regulations.
✔ Ensures no copyright, data privacy, or legal issues.
✔ Example: A healthcare app must follow HIPAA or GDPR rules.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

iv. Operational Feasibility ✅


✔Ensures the software is useful and easy to use for employees/customers.
✔ Checks if users will accept and use the software.
✔ Example: A complicated banking app may not be accepted by users.
v. Schedule Feasibility (Time Feasibility)
✔️ Checks if the project can be completed on time.
✔️ Delays can increase costs and harm reputation.
✔️ Example: Can we launch an e-commerce website before Diwali?
👉 Conclusion: If a project passes all feasibility checks, it is ready for development! ✅

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2. Requirement Elicitation (Gathering Requirements)


👉 What happens?
• The first step is collecting information from users, clients, and stakeholders about what
they expect from the software.
• Different techniques are used, such as interviews, surveys, meetings, or observing
users.
👉 Example:
A restaurant owner wants an app where customers can order food online, make
payments, and track delivery. Developers talk to restaurant owners, delivery partners,
and customers to gather their needs.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

3. Requirement Analysis (Understanding & Refining Needs)


👉 What happens?
• After gathering raw requirements, we analyze them to check if they are clear,
complete, and feasible.
• We remove conflicting or vague requirements.
• We check for technical and financial feasibility.
👉 Example:
The restaurant owner asks for food delivery in 10 minutes, which is not possible. The
developers explain that the realistic time would be 30-45 minutes.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

4. Requirement Documentation (Writing Requirements Clearly)


👉 What happens?
• All analyzed and finalized requirements are written in a structured document called
Software Requirement Specification (SRS).
• The document contains functional and non-functional requirements.
• This acts as a reference for developers, testers, and project managers.
👉 Example:
The SRS document of a food delivery app includes:
✅ Functional Requirement: Users can add food to the cart and place an order.
✅ Non-Functional Requirement: The app should load within 3 seconds.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

5. Requirement Validation (Checking for Mistakes & Approval)


👉 What happens?
• The requirement document is reviewed to ensure there are no errors,
missing details, or unrealistic expectations.
• Clients and stakeholders approve the final requirements before starting
development.
👉 Example:
The restaurant owner checks the final document and confirms that everything
they need (like payment options, delivery tracking) is included.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

6. Requirement Management (Handling Future Changes)


👉 What happens?
• Sometimes, requirements change during development due to business
needs or market trends.
• This step ensures proper tracking and updating of requirements.
👉 Example:
After launching the app, users request a "Live Order Tracking" feature. The
team manages this change and updates the requirements accordingly.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Why is Requirement Engineering Important?


🔹 Avoids Misunderstanding – Clearly defines what the software should
do.
🔹 Saves Time and Cost – Fixing errors later in development is expensive;
RE helps avoid this.
🔹 Improves Software Quality – Well-defined requirements lead to better
software.
🔹 Ensures User Satisfaction – Ensures the software meets users' needs.
🔹 Reduces Project Failure Risk – A well-planned project is more likely to
succeed.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Requirement Validation Techniques :


Requirement validation ensures that the software requirements are correct,
complete, and useful before development starts. Here are three main techniques:
1. Test Case Generation 📝
Creates test cases to check if the requirements are clear and can be tested.
✔️ Key Checks:
a) Verifiability: Can we test the requirement properly?
b) Comprehensibility: Is it easy to understand?
c) Traceability: Is the source of the requirement known?
d) Adaptability: Can changes be made without affecting the entire system?
 Example: If a requirement says "The app should load in 3 seconds," we can
test it with a stopwatch.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

2. Automated Consistency Analysis :


• Uses software tools (CASE tools) to check if all requirements are consistent and
follow the same rules. Finds mistakes or conflicts in requirements that humans
might miss.
✔Example: If one requirement says "The user must log in before placing an order,"
but another says "Users can place an order as a guest," the system will detect this
contradiction.
3. Prototyping 🎨
• Creates a simple version (prototype) of the software to get user feedback. Helps
users see how the final system will look and suggest improvements.
✔Example: A bank wants a new mobile app. Developers create a basic app design
(without full functionality), show it to users, and collect feedback before making the
final version.
Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Requirement Elicitation: Procedure, and Problems (in Detail ) : (V.IMP)


Requirement Elicitation is the process of gathering and understanding user needs
for a software project. It helps in identifying what the users want so that
developers can build the right system.
Think of it like a doctor asking a patient about their symptoms before giving
medicine. Similarly, software engineers ask stakeholders (users, clients, and
business owners) about their needs before designing software.
 Procedure of Requirement Elicitation (Steps) :
The requirement elicitation process follows these five important steps:
1. Identifying Stakeholders 👥
• Stakeholders are the people who will use or be affected by the software (e.g.,
clients, end-users, managers, developers).
• It is important to talk to the right people to gather correct requirements.
Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

2. Collecting Requirements 📋
Different techniques are used to collect information from stakeholders, such as:
✔Interviews: Asking questions directly to users.
✔Surveys & Questionnaires: Collecting feedback from many users at once.
✔Workshops & Meetings: Group discussions to finalize requirements.
✔Observation: Watching users perform tasks to understand their needs.

3. Analyzing Requirements 🔍
After collecting requirements, they are checked to see if they are:
✅ Complete (nothing is missing)
✅ Clear (no confusion)
✅ Feasible (possible to implement)

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

4. Documenting Requirements 📝
• All the gathered information is written clearly in a Software Requirement
Specification (SRS) document.
• This document acts like a blueprint for the development team.

5. Validating Requirements ✅
• Before finalizing, the requirements are reviewed with the stakeholders to ensure
they are correct and understood properly.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Problems in Requirement Elicitation (Challenges)


While gathering requirements, several challenges may arise:
1. Unclear Requirements ❓
Sometimes, users don’t know exactly what they want.
Example: A client says, "I want a fast and easy-to-use app," but doesn’t specify what
"fast" or "easy-to-use" means.
2. Changing Requirements 🔄
Clients may change their minds frequently, leading to delays.
Example: First, the client asks for a website, but later they want a mobile app instead.
3. Communication Issues 🗣️
Misunderstandings can happen due to technical terms or language barriers.
Example: A developer understands "login security" differently from a non-technical
client.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

4. Incomplete Information ⚠
Some stakeholders may forget to mention important details or assume developers
already know them.
Example: A hospital software requires patient data backup, but the client forgets to
mention it.
5. Conflict Between Stakeholders ⚔
Different stakeholders may have different expectations, causing conflicts.
Example: A manager wants cost-effective software, but employees want more features
(which increase cost).

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 System Documentation :
System Documentation is a detailed written record of a software or system. It includes
all the necessary information, instructions, and guidelines about how the system
works, how to install it, and how to use it.
Think of it like a user manual for a smartphone – it tells you how to operate the
phone, its features, and troubleshooting steps. Similarly, system documentation helps
developers, users, and administrators understand the software/system.
 Importance of System Documentation
📌 Helps developers understand the system structure and code.
📌 Guides new team members in working on the system without confusion.
📌 Assists users in operating the system correctly.
📌 Ensures maintenance and future updates can be done easily.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Types of System Documentation


There are mainly four types of system documentation:
1. User Documentation 📖
👉 This is for the end-users (people who use the system).
👉 It explains how to install, configure, and use the system.
👉 Examples:
• User manuals (step-by-step guides)
• FAQs (Frequently Asked Questions)
• Help files (troubleshooting guides)
🔹 Example: The manual that comes with a new software or mobile app, explaining
how to use its features.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)
2. System Documentation 🖥
👉 It describes the overall structure, architecture, and working of the system.
👉 It includes information on how the system is designed and developed.
👉 Examples:
• System design documents (how different parts of the software work together)
• Flowcharts & Diagrams (to show system processes)
🔹 Example: A diagram that shows how a banking system processes transactions.
3. Technical Documentation ⚙
👉 It is for developers and IT professionals who maintain the system.
👉 It includes technical details like coding, APIs, and databases.
👉 Examples:
• Source code documentation (explaining how the program is written)
• Database design (tables, relations, and queries)
• API documentation (how different software components interact)
Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

🔹 Example: A document that explains how an e-commerce website’s


payment system works behind the scenes.
4. Project Documentation 📂
👉 It keeps track of the entire software development process.
👉 It includes plans, reports, and meeting notes from the project.
👉 Examples:
• Project proposal (goals and purpose of the software)
• Software Requirement Specification (SRS) (what features the system must
have)
• Testing reports (results of software testing)
🔹 Example: A document listing all features and requirements of an online
food delivery app before development begins.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 What is Review and Management of User Needs(Short note )


In software development, understanding and managing user needs is very
important. This process ensures that the software meets the requirements,
expectations, and problems of the users.
It involves reviewing, organizing, and updating user requirements throughout
the software development lifecycle.
 Steps in Review and Management of User Needs
1. Reviewing User Needs 📝
👉 After collecting user requirements, they must be checked for clarity,
correctness, and completeness.
👉 Any missing, unclear, or conflicting requirements are identified and
corrected.
👉 Example: If users want a fast-loading website, developers must check if the
requirements include performance optimization.
- Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

2. Organizing and Prioritizing Needs 📊


👉 Some requirements are more important than others.
👉 Critical features are given higher priority, while optional features can be added later.
👉 Example: In an online shopping app, payment and cart features are more important
than adding a wishlist.
3. Managing Changing Requirements 🔄
👉 Users may change their needs over time.
👉 Developers must update the system without disturbing existing features.
👉 Example: If users want a dark mode feature after the app is launched, developers
should find a way to add it smoothly.

Follow U -s
R Download
R S I M TNotes
CLASSES WHATSAPP - 9795358008
: https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

4. Documentation and Communication 📂


👉 All requirements must be properly documented and shared with the team.
👉 Regular discussions with users help in understanding their needs better.
👉 Example: Developers hold meetings with clients to confirm that the system
meets their expectations.
 Importance of Review and Management of User Needs
✅ Ensures the final software meets user expectations.
✅ Helps in avoiding costly mistakes and rework.
✅ Improves user satisfaction and experience.
✅ Makes software flexible to future changes.

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Information Modeling :
Information modeling is a way to organize, structure, and represent data so
that it can be easily understood and processed by a system. It helps in
designing databases, software applications, and business processes.
There are several approaches to information modeling. Let's discuss them one
by one with easy examples.
Information Modeling

ER Model Network Model

Relational Heirarchical
Model OOP model Model

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Data Flow Diagrams :


• DFD (Data Flow Diagram) stands for "Data Flow Diagram". It is also known as a
"Bubble Chart“ It represents the flow of data graphically in an information system.
• DFD helps to understand the overall functionality of a system.
• By using DFD we can easily understand the overall functionality of system because
diagram represents: Incoming data flow Outgoing data flow Stored data in a graphical
form for better visualization.
• It describe how data is processed in a system in term of input & Output.
• A DFD uses no of notations or symbol to represent the flow of data.

Data Flow Data Store

Process External Entity(Source sink)

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

1. External Entity (Source/Sink)


External entities are people, organizations, or systems that interact with the system
but exist outside of it.
They are also called "sources" (when they provide data) and "sinks" (when they
receive data).
📌 Representation:
Represented as a rectangle (box) in a DFD.
External Entity(Source
sink)
📌 Example:
In an online shopping system, a customer (who places an order) and a supplier (who
provides products) are external entities.

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2. Process
A process is an activity or function that takes input data, processes it, and produces
an output.
It represents a transformation of data from one form to another.
📌 Representation:
• Represented as a circle (or rounded rectangle).
• Each process has a unique number for identification.

Process

📌 Example:
In an online banking system, the process "Verify Login Details" takes username and
password as input, checks the credentials, and provides access or denial as output.

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

3. Data Flow
Data flow represents the movement of data between entities, processes, and data
stores.
It shows what information is flowing in the system.
This represents the movement of data between entities, processes, and data stores.
Example: "User sends login request," "Bank transfers money."
📌 Representation:
Represented as a directed arrow (→) in a DFD.
The name of the data flow is written above or beside the arrow.

📌 Example:
In a library management system, a data flow named "Book Request" moves from
Student (External Entity) → Issue Book (Process).

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

4. Data Store
• A data store is a place where data is stored for later use.
• It does not process data but simply holds it until needed.
• It can represent a database, file, or document.
📌 Representation:
Represented as two parallel horizontal lines or an open-ended rectangle.

📌 Example:
In a hospital management system, the "Patient Record Database" stores patient
details like name, medical history, and prescriptions.

- Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

- Download Notes : https://rzp.io/rzp/ DtpXaWbv


Software Engineering (BCS601)

 Rules of DFD :
• Each process should have atleast one input and one output.

Example – Output
Input

Process
• Each data store should have atleast one data flow in and one data flow out.

In
Out
Example -

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

• All process in A DFD go to either another process or data store.

Example –
Process 2

Or

Process 1

Data store
• All the External entities must be connected through a process and entity can
provide something to the S/W as well as the entity can consume some data
from the S/W.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

In

📌 Types of DFD(Levels of DFD) Out


There are two main types of DFD:
1. Context Level DFD (Level 0) – The Highest-Level DFD
• Shows the entire system as one process with its external entities.
• No details about how the system works inside.
• Example:
• A Railway reservation system will only show:
📌 " Railway reservation system " as a single process, connected to passengers and
Schedule, reservation.
📌 Diagram Example (Simple Representation):

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2.Level 1 DFD – A Detailed View


• Breaks down the main process into smaller sub-processes.
• Shows how data moves inside the system.
Example:
• In a Library System, the process can be divided into:
• "Issue Books"
• "Return Books"
• "Maintain Records"

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
3. Level 2 DFD – More Detailed Breakdown
• This further divides Level 1 processes into more specific tasks.
• Used for complex systems like banks, e-commerce, and hospital systems.
📌 Advantages of DFD
✅ Easy to Understand – No technical knowledge needed.
✅ Graphical Representation – Visual diagrams help in better system analysis.
✅ Identifies Data Flow Issues – Helps find missing data or errors in the system.
✅ Helps in System Design – Guides developers in building databases and software.
📌 Disadvantages of DFD
❌ Does Not Show Timing or Sequence – It only shows data flow, not how fast or in what
order.
❌ Can Become Complex – For large systems, DFDs can become difficult to manage.
❌ Does Not Show Hardware or Software Details – It focuses only on data movement,
not implementation.
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

Ques : Create a DFD for Library management System(V.V.VIMP)


Get book info

Name &
Author
Student LMS Librarian
0th Level
Get book Issued

Entity Entity
Process

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Student
Issued by
Librarian
Book
Details
Book not Avl

Librarian
Book detail
Fig : 1th Level

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Difference between Flowchart and DFD (V.IMP)

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 What is a Decision Table?


A decision table is a structured way to represent rules and conditions in a tabular
format. It helps in handling complex business logic by showing different possible
inputs (conditions) and their respective actions (decisions).

📌 Structure of a Decision Table


A decision table consists of four parts:
1. Conditions – The possible inputs or situations.
2. Condition Entries – Values that define whether a condition is met (Yes/No or
True/False).
3. Actions – The possible outcomes or decisions.
4. Action Entries – The action that should be taken for each condition.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

📌 Example of a Decision Table (Bank Loan Approval) :

📌 How it works?
• If an applicant has a job and a credit score > 700, the loan is approved (Rule 1).
• If the applicant has a job but a low credit score, the loan is not approved (Rule 2).
• If the applicant does not have a job, the loan is not approved (Rules 3 & 4).

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 What is a Decision Tree?


A decision tree is a graphical representation of decisions and their possible
consequences. It is like a flowchart where each branch represents a decision path based
on conditions.

📌 Structure of a Decision Tree


i. Root Node: The starting point (main decision or condition).
ii. Branches: Represent choices or conditions.
iii. Decision Nodes: Intermediate points where further decisions are made.
iv. Leaf Nodes: The final outcome or decision.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

📌 Example of a Decision Tree (Bank Loan Approval)

📌 How it works?
1.If the applicant has a job, we check their
credit score.
2.If credit score > 700, the loan is approved.
3.If credit score ≤ 700, the loan is rejected.
4.If the applicant does not have a job, the loan
is rejected directly.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Software Requirement Specification(SRS) –(V.V.VIMP)


• SRS stands for "Software Requirement Specification". It is a document prepared by
business analyst or system analyst.
• It describes what will be the features of software (s/w) and what will be its behavior,
i.e., how it will perform.
• It is the detailed description of the software system to be developed with its
"functional & non-functional" requirements.
• The SRS consists of all necessary requirements required for the project development.
• In order to get all the details of s/w from the customer and to write the SRS document,
a system analyst is required.
• SRS document is actually an agreement between the client & developer.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Parts of SRS (Software Requirement Specification) Document


The SRS document consists of different parts that define the software system's
requirements in detail. The main parts are:
1. Functional Requirements
• These describe what the system should do.
• It includes the main functions, features, and operations of the software.
• Example: A login system should allow users to enter their username and password to
access their accounts.
2. Non-Functional Requirements
• These define how the system should work rather than what it does.
• It includes performance, security, usability, and reliability of the system.
• Example: The website should load within 3 seconds.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

3. Goals of Implementation
• This section explains how the system will be implemented.
• It includes technologies, tools, and methods used in development.
• Example: The system will be built using Java, MySQL, and React.js.
• These parts ensure the software is developed correctly according to user
and business needs.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Characteristics of a Good SRS Document(V.V.VIMP)


A Software Requirement Specification (SRS) document should have the following
characteristics to ensure a well-defined and effective software system:
1. Complete
• The SRS should include all the necessary requirements of the software.
• It should cover functional, non-functional, and system requirements.
• Example: If an online shopping website is being developed, it should mention
product browsing, cart management, and payment processing clearly.
2. Consistent
• The document should not have any contradictions.
• All requirements should align and not create confusion.
• Example: If one section says the system should allow only five login attempts,
another part should not say unlimited login attempts are allowed.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
3. Feasible
• The requirements must be realistic and achievable with current technology and
resources.
• It should not demand something impossible or too costly to implement.
• Example: Requiring a mobile app to run without the internet is not feasible for a
cloud-based application.
4. Modifiable
• The document should be easy to update when changes are needed.
• Changes should not require rewriting the whole document.
• Example: If a company decides to add a new payment method, the document should
allow updates without disturbing existing details.
5. Testable
• The requirements should be written so they can be tested later.
• Each function must be measurable and verifiable.
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

• Example: If a system requires a login page to accept only strong passwords,


testers should be able to check if weak passwords are rejected.
6. Correct
• The document should accurately describe what the system is supposed to do.
• Any incorrect or missing requirement can cause problems in software
development.
• Example: If the document mistakenly states that a website should support
only Chrome, but the client wants it to support all browsers, this would be
incorrect.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

7. Verifiable
• Each requirement in the SRS document should be written in a way that it can be
checked and confirmed through testing or inspection.
• It should provide clear acceptance criteria to verify whether a requirement is met.
• Example: If a requirement states, "The system should load within 2 seconds," this
can be tested. But if it says, "The system should be fast," it is unclear and not
verifiable.
8. Unambiguous
• The requirements should be clear and precise so that they are understood the same
way by everyone (developers, testers, and stakeholders).
• There should be no room for different interpretations.
• Example: Instead of saying, "The system should support a large number of users," it
should specify, "The system should support up to 10,000 concurrent users."

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 IEEE Standard for SRS (IEEE 830-1998) :


The IEEE 830-1998 standard defines how to write a good Software Requirements
Specification (SRS) document. It is created by IEEE (Institute of Electrical and Electronics
Engineers) to ensure that SRS documents are clear, structured, and useful for
developers, testers, and stakeholders.
 Key Sections of IEEE SRS Standard
The IEEE 830-1998 standard suggests that an SRS document should have the following
three main parts:
1. Introduction (Overview of the SRS)
This section provides basic information about the software project. It includes:
✅ Purpose: Why is the software being developed?
✅ Scope: What features will the software include?
✅ Definitions: Important terms used in the document.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

✅ References: Documents or links that provide additional details.


✅ Overview: A summary of what is inside the SRS.

2. Overall Description (Big Picture of the System)


This section gives a high-level understanding of the software without going into
detailed requirements. It includes:
✅ Product Perspective: How the software fits into existing systems.
✅ Product Functions: What the software will do.
✅ User Characteristics: Who will use the software?
✅ Constraints: Any limitations (e.g., operating system, programming language).
✅ Assumptions & Dependencies: What external factors affect the project?

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

3. Specific Requirements (Detailed Functional & Non-Functional Requirements)


This is the most important part! It contains detailed and exact software
requirements.
📌 Functional Requirements:
What the system should do (e.g., login, payment processing).
Example: "The system should allow users to reset their password via email."
📌 Non-Functional Requirements:
System quality, like performance, security, reliability.
Example: "The website should load within 3 seconds."
📌 External Interface Requirements:
How the system interacts with hardware, software, and users.
Example: "The system should support integration with PayPal and Stripe."

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
📌 Performance Requirements:
Expected speed, response time, and capacity.
Example: "The system should handle 1000 requests per second."
📌 Software & Hardware Requirements:
What is needed to run the software (e.g., Windows, Linux, RAM, CPU).
📌 Security Requirements:
How data will be protected (e.g., user authentication, encryption).
 Why is IEEE 830-1998 Important?
📌 Ensures clarity so everyone understands the project.
📌 Helps in avoiding misunderstandings between developers and
clients.
📌 Acts as a reference during development and testing.
📌 Ensures the software is verifiable, complete, and correct before
development starts.
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

 Why is it Called a "Black Box Specification"?(IMP)


• SRS focuses on what the system should do, not how it will be implemented.
• It describes inputs, outputs, and behavior without mentioning internal code or
algorithms.
• Developers treat the system like a black box, meaning they focus only on how it behaves
externally, without seeing the internal workings.
• 🔹 Example: A user enters a username and password → System checks validity → Grants
or denies access. (SRS does not describe the coding logic behind it).

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Software Quality Assurance (SQA) –


• The SQA (Software Quality Assurance) is an umbrella activity for checking the quality
in the SDLC (Software Development Life Cycle), whether the software we are making
is quality or not.
• SQA is not checked at any particular phase; it runs along with software development.
After every development process, software quality assurance is checked.
• Generally, the quality of the software is verified by the third-party organization like
ISO (International Standard Organization) to ensure that the software must contain a
quality product and it is working according to user requirements.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

A software quality product has several quality factors:


i. Portability – Software should run on different platforms without major changes.
ii. Reliability – Should work without failures and be stable.
iii. Functionality – Must have all required features and fulfill user needs.
iv. Error-free – Should be free from major bugs and glitches.
v. Maintainability – Easy to update, modify, and fix issues.
vi. Usability – Should be user-friendly and easy to navigate.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 Benefits of SQA -
• By using SQA, the quality of software will be high.
• If the software is high-quality software, then it saves our time & cost.
• Ease-of-use.
• Security.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 SQA in the Software Development Life Cycle (SDLC)


SQA is involved in every phase of SDLC to ensure software quality from the beginning.
Let's go step by step:
1. Requirement Analysis (Planning Phase)
📌 What happens here?
• The team gathers software requirements from clients.
• SQA ensures that requirements are clear, complete, and testable.
• Quality metrics and guidelines are defined.
📌 SQA Activities:
✅ Verify that requirements are well-documented.
✅ Ensure that requirements do not have ambiguities or conflicts.
✅ Define acceptance criteria for testing the final product.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2. Design Phase
📌 What happens here?
• The software's architecture and UI/UX design are created.
• The system's data flow, algorithms, and security are planned.
📌 SQA Activities:
✅ Review software design for consistency and security flaws.
✅ Ensure that coding standards are followed.
✅ Validate database and system integration design.

3. Development Phase (Coding Phase)


📌 What happens here?
• Developers write code based on the software design.
• Code is reviewed and optimized.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

📌 SQA Activities:
✅ Implement code reviews and static code analysis.
✅ Enforce coding guidelines and best practices.
✅ Conduct unit testing to ensure components work properly.
4. Testing Phase
📌 What happens here?
• The developed software is tested to find and fix bugs.
• Different testing techniques are applied.
📌 SQA Activities:
✅ Conduct functional, non-functional, and security testing.
✅ Ensure that the software meets all client requirements.
✅ Report and fix defects found during testing.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

🔹 Types of Testing in SQA:


📌 Functional Testing – Checks if the software works as expected.
📌 Performance Testing – Measures speed and response time.
📌 Security Testing – Ensures data safety.
📌 Regression Testing – Checks that new changes do not break existing features.
5. Deployment & Maintenance Phase
📌 What happens here?
• The software is released for real-world use.
• Maintenance and updates are provided.
📌 SQA Activities:
✅ Monitor software performance after release.
✅ Fix issues reported by users.
✅ Ensure future updates do not introduce new bugs.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

• SQA is a process that ensure software meets quality standards &


Customer expectations.
• It can envolve following activities.
i. Verification & Validation
ii. SQA Plans
iii. Software Quality Framework
iv. ISO 9000 Model
v. SEI – CMM Model

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
 Verification & Validation in Software Quality Assurance
Verification and validation (V&V) are two key activities in Software Quality
Assurance (SQA) that ensure software meets required standards and works
correctly.
🔹 What is Verification?
✅ Verification is the process of checking whether the software is being built correctly
as per the requirements and design specifications.
👉 It focuses on processes, documents, and planning to ensure that the software
development is done in a structured way.
Examples of Verification:
• Reviewing requirement documents to ensure completeness.
• Checking the design document for correctness.
• Conducting walkthroughs and code reviews.
📌 Think of it as: "Are we building the product right?"

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

🔹 What is Validation?
✅ Validation is the process of checking whether the final software meets user
needs and expectations.
👉 It focuses on the actual testing of the software to ensure that it works as
intended.
Examples of Validation:
• Running test cases to check if the software functions properly.
• Performing user acceptance testing (UAT) before deployment.
• Checking if an e-commerce website allows users to place orders successfully.
• 📌 Think of it as: "Are we building the right product?"

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2. SQA Plan?
An SQA (Software Quality Assurance) Plan is a document that explains how to ensure
software quality during development. It provides rules, steps, and templates to help
software teams follow a standard process and avoid errors.
 What Does an SQA Plan Include?
1. Project Planning
Decides timeline, budget, and team responsibilities for the project.
2. Software Design & Structure
Defines how data, classes, and objects will be organized in the software.
3. Software Requirements (SRS)
Lists all features and functions the software must have.
4. Testing Plan
Explains how the software will be tested to make sure it works correctly.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

5. User Manuals & Help Guides


Provides instructions for users to operate the software easily.
6. Audit & Review
Regular checking of the software to find and fix mistakes.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

3. Software Quality Framework?


A Software Quality Framework is a set of rules and guidelines that help ensure software
is high-quality, reliable, and efficient. It provides a structured way to check software
quality at different stages of development.
This framework ensures that software:
✔ Works correctly
✔ Is easy to use
✔ Is free from errors
✔ Meets customer needs
 Key Components of Software Quality Framework
1. Quality Standards (Rules for Quality)
These are international rules that help companies make standardized, high-quality
software. Some important standards include:
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

✅ ISO 9001 – Ensures overall quality management in software development.


✅ IEEE SRS (Software Requirements Specification) – Defines clear documentation for
software requirements.
✅ CMMI (Capability Maturity Model Integration) – Helps organizations improve
software development processes.
📌 Example: If a company follows ISO 9001, it ensures that the software development
process is well-documented, well-tested, and high-quality.
2. Quality Factors (Important Features of Good Software)
These are key attributes that make software better and more useful.
✔ Reliability – The software should work without crashing.
✔ Maintainability – It should be easy to update and fix bugs.
✔ Usability – The software should be simple and easy to use.
✔ Performance – The software should run fast and efficiently.
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

📌 Example: A banking app should be reliable (work smoothly), secure, and


easy to use for customers.
3. Quality Metrics (How We Measure Software Quality)
Quality metrics help in checking the quality of software using numbers and
calculations.
📊 Important Quality Metrics:
✅ Defect Density – Measures how many bugs are in the software.
✅ Test Coverage – Checks how much code has been tested to find errors.
✅ Response Time – Measures how fast the software responds to user
actions.
📌 Example: If a website loads in 10 seconds, but the goal is 3 seconds,
developers need to improve performance.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

4. Testing Strategies (Ways to Find and Fix Errors)


Testing is an important part of ensuring software quality. Different testing methods
help in finding and fixing errors before the software is released.
🛠 Common Testing Strategies:
✔ Unit Testing – Tests small parts (functions) of the software.
✔ Integration Testing – Checks if different parts of the software work together.
✔ System Testing – Tests the entire software to check if it works correctly.
✔ User Acceptance Testing (UAT) – Customers test the software before final release.
📌 Example: Before launching an e-commerce app, developers do UAT to check if
customers can search for products, add to cart, and make payments without problems.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

 What is ISO 9000 Model –


• ISO stands for "International Organization for Standardization".
• "It is an organization to verify the quality of a product during the development of the
product."
• ISO 9000 is a set of international quality standards that help software companies
develop high-quality, reliable, and efficient software. It provides guidelines to
improve software processes, reduce errors, and ensure customer satisfaction.
• ISO 9001 specifies the quality management system, meaning if you want to check the
quality of a software product, then you should use ISO 9001.
• ISO implicitly uses the TQM technology to provide a certificate for your organization
based on the quality of the product.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

💡 ISO 9001 is the most commonly used standard in software companies because it ensures
software is developed systematically and meets quality requirements.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Why is ISO 9000 Important in Software Engineering?


✅ Ensures high-quality software
✅ Reduces bugs and errors
✅ Improves software development process
✅ Increases customer satisfaction
✅ Helps in better project management

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
 7 Key Principles of ISO 9000 in Software Engineering
1. Customer Focus
✔ Software should be built according to customer needs and expectations.
📌 Example: A banking app must be secure and easy to use because customers require
safety and simplicity.
2. Leadership
✔ Project managers and team leaders should guide developers to maintain quality.
📌 Example: A software team leader ensures that coding guidelines and testing
standards are followed properly.
3. Employee Involvement
✔ All software engineers, testers, and designers should work together to improve
quality.
📌 Example: Developers and testers collaborate to fix bugs quickly before software
release.
Download Notes : https://rzp.io/rzp/dhbqdFp
Software Engineering (BCS601)

4. Process Approach
✔ The software development process should be organized and well-defined.
📌 Example: A software project follows the SDLC (Software Development Life Cycle):
Planning → Designing → Coding → Testing → Deployment.
5. Continuous Improvement
✔ Software companies should regularly update and enhance their software.
📌 Example: Apps like WhatsApp and Instagram release updates to fix bugs and add
new features.
6. Evidence-Based Decision Making
✔ Software companies should analyze data before making decisions.
📌 Example: Developers use bug tracking reports and performance analytics to
improve software.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

7. Relationship Management
✔ Good communication with clients, software testers, and developers improves
quality.
📌 Example: A software company gathers customer feedback to improve future
versions of the software.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

5. SEI CMM (Software Engineering Institute - Capability Maturity Model)


• The Capability Maturity Model (CMM) was developed by the Software
Engineering Institute (SEI) at Carnegie Mellon University. It is a framework
that helps software development organizations improve their processes and
deliver high-quality software.
• SEI CMM is a model that assesses how mature and efficient a software
development process is. It provides five levels of maturity, where each level
represents a stage of process improvement.
• The CMM provides the different levels based on the standards a company
acquires so, if an "IT Company" is a new company then the CMM will provide
"Level 1" like this if the company starts developing and following the
guidelines provided by CMM to increase the maturity level.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

The CMM Provide 5 Levels :


i. Initial
ii. Repeatable
iii. Defined
iv. Managed
v. Optimizing
1. Initial Level (Level 1 )
🔹 At this stage, the software development process is unorganized.
🔹 No proper planning, and work depends on individuals.
🔹 Projects may face delays, and quality issues are common.
🔹 Example: A startup company without clear processes.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

2. Repeatable Level (Level 2 - Managed)


🔹 Basic project management is introduced.
🔹 Companies start documenting and following some processes.
🔹 Projects are more predictable but still depend on individual skills.
🔹 Example: A company maintaining records of past successful projects and reusing
methods.
3. Defined Level (Level 3 - Standardized)
🔹 The company has well-defined processes for software development.
🔹 Standards and guidelines are set for all projects.
🔹 Employees follow a structured way of working.
🔹 Example: A company follows specific rules for project design, testing, and
development.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

4. Managed Level (Level 4 - Measured)


🔹 The company starts measuring software quality and performance.
🔹 Data-driven decisions help improve processes.
🔹 The focus is on productivity and reducing defects.
🔹 Example: A company tracks bugs, project timelines, and efficiency using software
tools.
5. Optimizing Level (Level 5 - Continuous Improvement)
🔹 The company continuously improves its processes based on feedback.
🔹 Focuses on innovation and automation.
🔹 Uses the latest tools and technologies to improve software quality.
🔹 Example: A company adopting AI-based testing to improve software development
speed.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)
Software Engineering (BCS601)

🔹 Why is CMM important?


• Ensures better quality in software development.
• Helps organizations reduce defects and increase efficiency.
• Provides a structured way to improve software processes.
• Increases customer satisfaction by delivering reliable software.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

ISO CMM

1.It is a model developed by the Software


1. It is a standard developed by the
Engineering Institute.
International Standards Organization.
2.Applicable for software industry.
2. Applicable for any type of industry.
3.It verifies the quality of software, according
3. It verifies the quality of the product, then
to quality they provide level-based certificates.
provides a certificate to the organization.
4. It has five levels.
4. It has no levels.
5. It is mostly used in the USA.
5. ISO-9000 certificate is accepted by
6. CMM provides maturity of levels.
around 100+ countries.
6. ISO gives either pass or fail certificates.

Download Notes : https://rzp.io/rzp/dhbqdFp


Software Engineering (BCS601)

Thank You…

- Download Notes : https://rzp.io/rzp/dhbqdFp

You might also like