--> Sayadasite

Multiple Ads

Search

Menu Bar

Requirement Gathering Techniques

Requirement Gathering is the process of collecting information from customers, users, and other stakeholders to understand what the software system should do.

Major Requirement Gathering Techniques

Interviews

Developers ask questions directly to customers or users.

Helps understand their needs, problems, and expectations.

Example: Interviewing teachers to identify requirements for a college management system.

Questionnaires / Surveys

A set of questions is given to many users.

Useful when information needs to be collected from a large number of people.

Example: Asking students what features they expect in a learning application.

Observation

The analyst observes users while they perform their normal work.

Helps identify requirements that users may forget to mention.

Example: Observing how a librarian manages book records.

Workshops

Customers, users, developers, and analysts meet together to discuss requirements.

Helps identify and resolve requirements quickly.

Example: A workshop with teachers and administrators to decide features of a college ERP system.

Document Analysis

Existing documents, forms, reports, manuals, and records are studied.

Useful when replacing or improving an existing system.

Example: Studying existing admission forms before developing an admission management system.

Prototyping

A simple model or prototype of the software is created.

Users can see it and suggest changes.

Example: Creating a sample screen of a mobile banking application before developing the complete system.

Brainstorming

Team members freely suggest ideas and requirements.

Helps generate many possible requirements.

Example: Developers and users brainstorming features for a new shopping application.

Focus Groups

A small group of selected users discusses their needs and opinions.

Useful for understanding user expectations and preferences.

Quick Summary

Technique

Main Purpose

Interview

Directly ask users

Questionnaire

Collect information from many users

Observation

Watch users perform their work

Workshop

Group discussion

Document Analysis

Study existing documents

Prototyping

Get feedback using a model

Brainstorming

Generate new ideas

Focus Group

Understand user opinions

 

Software Requirement Specification (SRS)

Software Requirement Specification (SRS) is a formal document that describes all the requirements of a software system. It explains what the system should do, how it should perform, and what constraints it must follow.

In simple words, SRS acts as a blueprint for software development.

Example

Suppose we are developing a College Management System. The SRS may specify:

1.                      Students can register and log in.

2.                      Teachers can enter attendance.

3.                      Students can view their attendance.

4.                      The system should respond quickly.

5.                      Only authorized users can access student records.

6.                      The system should be available during college working hours.

Main Contents of SRS

1. Introduction

Provides basic information about the software.

It contains the complete requirements of the software, including its functional requirements, non-functional requirements, interfaces, constraints, and expected behavior.

It acts as an agreement between the customer and the development team.

 

It includes:

a.                       Purpose of the system

b.                      Scope of the project

c.                        Definitions and abbreviations

d.                      Overview of the document

 

a. The main purpose of an SRS is to provide a clear and complete description of the software requirements.

b. Scope of the project: The College Management System (CMS) is designed to computerize and simplify the major administrative and academic activities of a college. Example

a.                       Student Management:

b.                      Faculty Management:

c.                        Admission Management:

d.                      Attendance Management:

e.                       Course and Subject Management:

f.  Examination Management:

 

It helps:

  • Customers explain what they need.
  • Developers understand what they have to build.
  • Testers determine what needs to be tested.
  • Project managers estimate time and cost.
  • Organizations maintain proper documentation.

Example

Suppose a college wants a Student Management System.

The SRS may specify that the system should allow:

  • Student registration
  • Attendance management
  • Fee management
  • Examination management
  • Result generation
  • Report generation

2. Overall Description

Gives a general description of the system.

It includes:

a.                       Product perspective (the ability to think about problems and decisions in a reasonable way without exaggerating them)

b.                      Product functions

c.                        User characteristics

d.                      Assumptions and dependencies

e.                       System constraints

3. Functional Requirements

Describe what the system should do.

Example:

The system shall allow users to log in.

The system shall generate student reports.

The system shall allow administrators to add or remove users.

4. Non-Functional Requirements

Describe how well the system should perform.

Examples:

Performance – System should respond quickly.

Security – Only authorized users should access confidential data.

Reliability – System should work consistently.

Availability – System should be accessible when required.

Usability – System should be easy to use.

Maintainability – System should be easy to modify.

5. External Interface Requirements

Describes how the software interacts with external components.

Examples:

User interface

Hardware interfaces

Software interfaces

Communication/network interfaces

6. Constraints

Specify limitations that must be followed.

Example:

The system must use a particular database.

The software must run on a specified operating system.

The project must follow organizational or legal requirements.

7. Assumptions and Dependencies

Describes conditions assumed to be true and external factors on which the system depends.

Characteristics of a Good SRS

A good SRS should be:

Correct – Contains accurate requirements.

Complete – Includes all necessary requirements.

Unambiguous – Each requirement has only one clear meaning.

Consistent – Requirements do not contradict each other.(No opposing rules)

Verifiable – Requirements can be tested.

Feasible – Requirements can realistically be implemented.

Traceable – Each requirement can be tracked throughout development.

Modifiable – Changes can be made easily.

Importance of SRS

1.                      Provides a clear understanding of the project.

2.                      Acts as a communication document between customers and developers.

3.                      Helps developers design and develop the system.

4.                      Provides a basis for testing.

5.                      Reduces misunderstandings.

6.                      Helps estimate cost and development time.

7.                      Makes future maintenance easier.

Feasibility Study-

A Feasibility Study is an analysis carried out to determine whether the proposed College Management System is practical, achievable, and beneficial for the college. It helps identify the technical, economic, operational, and other requirements before starting development.

1. Technical Feasibility

The system can be developed using commonly available technologies such as HTML, CSS, JavaScript, PHP/Python/Java, and MySQL. The required computers, database systems, and network facilities are generally available in a college environment. Therefore, the project is technically feasible.

2. Economic Feasibility

The system reduces expenses associated with paper-based records, manual data entry, and administrative work. Since the project can be developed using open-source software and existing infrastructure, the development and maintenance costs can be kept low. Therefore, it is economically feasible.

3. Operational Feasibility

The system will be easy for administrators, faculty, and students to use. It can simplify activities such as student management, attendance, examination, fees, and report generation. Proper training can help users operate the system effectively

Conclusion

The feasibility study indicates that the College Management System is technically, economically, operationally, and practically feasible. The proposed system can reduce manual work, improve data accuracy, save time, and provide faster access to college

Software Requirements & Analysis:

Software Requirements and Analysis is an important activity in the Software Development Life Cycle (SDLC). It focuses on understanding what the customer needs from the software and documenting those needs clearly before the actual design and coding begin.

Software Requirements & Analysis is the process of collecting, analyzing, documenting, and validating the requirements of a software system.

1. What is a Software Requirement?

A software requirement describes a service, function, or condition that the software must satisfy.

Example

For a College Management System, requirements may include:

1.                      Students should be able to register.

2.                      Teachers should be able to record attendance.

3.                      Students should be able to view their results.

4.                      Administrators should be able to manage student records.

5.                      The system should protect student information.

These statements describe what the software is expected to provide.

 

Requirement Engineering

Requirement Engineering is the systematic process of identifying, defining, documenting, managing and maintaining system needs to ensure a software product meets stakeholder expectations.

It acts as the foundational blueprint for a project, ensuring the development team builds the correct system to solve the user's actual problem

Key Stages of the Process

Inception: Establishes the basic project goals, scope, and initial communication with stakeholders.

Elicitation: Gathers raw requirements through interviews, surveys, and workshops.

Analysis & Elaboration: Refines and models the gathered data to check for clarity, consistency, and completeness.

Negotiation: Resolves conflicts and prioritizes features based on budget and constraints.

Specification: Creates a formal Software Requirements Specification (SRS) document.

Validation: Confirms that the specified requirements match actual customer needs.

Management: Tracks and controls requirement changes throughout the project lifecycle.

 

Types of Requirements-

Software requirements are mainly divided into Functional Requirements and Non-Functional Requirements.

A.        Functional

B.         Non-functional;

A. Functional Requirements

Functional requirements describe what the system should do. / What the software must do, specifying features, behaviors, and data processing rules

System Behaviors: How the system responds to user inputs or triggers.

Features: Specific tools like user login, search bars, or payment processing.

Data Handling: Rules for how data is captured, stored, and updated.

Examples

For an online banking system:

User should be able to log in.

User should be able to check account balance.

User should be able to transfer money.

User should be able to download statements.

 

 

Simple definition:

Functional requirements specify the functions and services that a software system must provide.

Non-Functional Requirements

Non-functional requirements describe how well the system should perform, covering quality attributes, performance goals, and operational constraints. Rather than what specific function it performs.

They may include:

1.                      Performance

2.                      Security

3.                      Reliability

4.                      Usability

5.                      Scalability

6.                      Availability

7.                      Maintainability

Example

For an online banking system:

The system should display the account balance within 2 seconds.

This is a performance requirement.

Another example:

Only authorized users should be allowed to access account information.

This is a security requirement.

1.          Performance: Speed, response time, and transaction capacity.

Performance refers to the ability of a software system to respond quickly and efficiently while using system resources effectively.

Simple Example

In an online shopping application, when a user clicks “Buy Now,” the system should process the request and display the result quickly. A system that responds quickly has good performance.

Important Performance Factors

Response Time – How quickly the system responds to a user request.

Throughput – The number of tasks or requests the system can process in a given time.

Resource Usage – Efficient use of CPU, memory, storage, and network.

Processing Speed – How quickly the system performs calculations or operations.

Scalability – Ability to maintain performance when users or workload increase.

2.          Security: Data encryption, user authentication, and access control.

Security is the ability of a software system to protect data, resources, and users from unauthorized access, misuse, modification, or attacks.

Simple Example

In an online banking system, only the authorized user should be able to access their account. Passwords, OTPs, and encryption help protect the user's information.

Important Security Measures

Authentication – Verifying the identity of a user.

Example: Username and password.

Authorization – Giving users permission to access specific resources.

Example: Only an administrator can delete user accounts.

Encryption – Converting data into a protected form so unauthorized people cannot understand it.

Access Control – Restricting access to sensitive data and functions.

Data Protection – Protecting personal and confidential information.

Backup and Recovery – Keeping copies of important data and restoring it after failures or attacks.

3.          Reliability: Uptime targets and disaster recovery protocols.

Reliability is the ability of a software system to perform its required functions correctly and consistently for a specified period of time without failure.

Simple Example

An ATM system should correctly process withdrawals, deposits, and balance inquiries every time. If it works correctly without frequent failures, it has high reliability.

Important Factors of Reliability

Fault Tolerance – The system continues working even when some components fail.

Error Handling – The system properly detects and handles errors.

Testing – Thorough testing helps identify and remove defects.

Recovery – The system can recover quickly after a failure.

Consistency – The system produces correct results repeatedly.

4.          Usability: Interface design and accessibility for users.

Usability refers to how easy and convenient a software system is for users to learn, understand, and operate.

Simple Example

A mobile banking application should have clear menus, simple buttons, readable text, and easy navigation so that users can perform transactions without confusion.

Important Factors of Usability

Easy to Learn – New users can understand the system quickly.

Easy to Use – Users can perform tasks without difficulty.

User-Friendly Interface – The interface is simple, clear, and well organized.

Accessibility – The system can be used by people with different abilities.

Consistency – Similar buttons, menus, and actions work in the same way throughout the system.

Error Prevention – The system helps users avoid mistakes and provides clear error messages.

5.          Scalability:  Scalability is the ability of a software system to handle an increasing amount of work, users, data, or transactions without a major decrease in performance.

Simple Example

Suppose an online shopping website initially has 1,000 users.

If the website continues to work efficiently when users increase to 10,000 or 1,00,000, the system is said to be scalable.

Types of Scalability

Vertical Scalability (Scaling Up)

Increasing the power of an existing computer/server.

Example: Increasing RAM from 8 GB to 32 GB and adding a faster CPU.

Horizontal Scalability (Scaling Out)

Adding more computers/servers to share the workload.

Example: Using 10 servers instead of 2 servers to handle more website users.

Database Scalability

Ability of a database to handle increasing amounts of data and requests efficiently.

Network Scalability

Ability of a network to support more users, devices, and traffic.

Importance of Scalability

1.                      Supports growth in users.

2.                      Handles increasing data.

3.                      Maintains good performance.

4.                      Reduces system failures.

5.                      Makes future expansion easier.

6.                      Helps control costs when the system grows.

6.          Availability: Availability is the ability of a software system to remain accessible and operational whenever users need it.

Simple Example

An online banking system should be available 24 hours a day, 7 days a week. If users can access their accounts whenever required, the system has high availability.

Factors that Improve Availability

1.                      Backup systems

2.                      Fault tolerance

3.                      Regular maintenance

4.                      Disaster recovery

5.                      Redundant servers

6.                      Monitoring and quick error recovery

7.          Maintainability :

Maintainability is the ability of a software system to be easily modified, corrected, updated, or improved after it has been developed.

Simple Example

If a college management system needs a new student attendance feature, a maintainable system allows developers to add the feature easily without affecting the existing functions.

Types of Maintenance

Corrective Maintenance – Fixing errors and bugs.

Adaptive Maintenance – Modifying software to work with new environments or technologies.

Perfective Maintenance – Improving features and performance.

Preventive Maintenance – Making changes to prevent future problems.

Factors that Improve Maintainability

Simple and modular design

Clean and readable code

Proper documentation

Good testing

Low complexity

Proper error handling

Example: 24×7 banking system

Example: Easily adding a new feature