Types of Software Requirements

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Types of Software Requirements

Functional and Non-Functional Requirements

Lecture 2
Engr. Syed Muhammad Ali Imran
Department of CS&IT, Superior University, Sargodha Campus
Types of Software Requirements
• In the realm of software
development, establishing a
comprehensive set of
requirements is paramount to the
success of any project.

• This distinction is vital for


ensuring that software systems
not only meet their intended
functionality but also observe to
important quality attributes.
A high-level business objective of the organization that builds a
Business requirement product or of a customer who procures it.

Level & Types of Requirements


A policy, guideline, standard, or regulation that defines or
constrains some aspect of the business. It is not a software
Business rule requirement in itself, but the origin of several software
requirements.
A restriction that is imposed on the choices available to the
Constraint developer for the design and construction of a product.
External interface A description of a connection between a software system and a
requirement user, another software system, or a hardware device.
One or more logically related system capabilities that provide value
Feature to a user and are described by a set of functional requirements.
Functional A description of a behavior that a system will exhibit under specific
requirement conditions.
Nonfunctional A description of a property or characteristic that a system must
requirement exhibit or a constraint that it must respect.
A kind of nonfunctional requirement that describes a service or
Quality attribute performance characteristic of a product.
A top-level requirement for a product that contains multiple
System requirement subsystems, which could be all software or software and hardware.
A goal or task that specifc classes of users must be able to perform
User requirement with a system, or a desired product attribute.
Relationships among several types of requirements information. Solid arrows mean “are stored in”;
dotted arrows mean “are the origin of” or “influence.”
Types of Software Requirements

Software requirements can be


broadly categorized into two main
types;

➢Functional Requirements
➢Non-Functional Requirements
I. Functional Requirements
It defines what the system should do
and is often considered the
cornerstone of software
development.

• Types of Functional Requirements


• Essential FR
• Desired FR
• Mandatory FR
1. Essential Functional
Requirements

These are the core functionalities


without which the software cannot
perform its primary tasks. For
instance, in an e-commerce
application, essential functional
requirements would include user
registration, product catalog, and
shopping cart management.
2. Desired Functional
Requirements

These requirements represent


additional features that enhance the
software's functionality but are not
absolutely essential. For instance, in
a word processing software, spell-
check and grammar-check features
would be considered desired
functional requirements.
3. Mandatory Functional
Requirements

These are requirements imposed by


external standards, regulations, or
legal obligations. For example, if
developing software for a financial
institution, compliance with data
security standards such as SSL
would be a mandatory functional
requirement.
II. Non-Functional Requirements
Non-functional requirements, on the
other hand, are attributes that describe
the quality, performance, and usability of
the software. They are equally critical as
functional requirements, as they ensure
that the software not only works but also
works well.

Types of Non-Functional Requirements


• Performance
• Usability
• Reliability
• Security
• Scalability
• Compatibility
1. Performance Requirements:
These specify how the software
should perform under various
conditions. Examples include
response time (e.g., the system
should respond to user inputs
within 2 seconds) and throughput
(e.g., the system should handle
1000 concurrent users).
2. Usability Requirements:
Usability requirements focus on the user experience. They encompass
user interface design, accessibility (e.g., compliance with Web Content
Accessibility Guidelines (WCAG) for web applications), and user
documentation.
3. Reliability Requirements:
Reliability requirements ensure that
the software operates consistently
and without unexpected failures.
Examples include system uptime
(e.g., 99.99% availability) and fault
tolerance (e.g., the system should
gracefully handle hardware failures).
4. Security Requirements
Security requirements deal with
protecting the software and its
data from unauthorized access,
breaches, and vulnerabilities.
These may include encryption
standards, authentication
mechanisms, and access control
policies.
5. Scalability Requirements:

Scalability requirements address


the software's ability to handle
increased loads and expand as
needed. This is crucial for software
intended to support a growing user
base or changing workloads.
6. Compatibility Requirements:
Compatibility requirements ensure that the software functions correctly
on various platforms, browsers, or devices. For example, a mobile app
might need to be compatible with both Android and iOS platforms.
CONCLUSION

In short, software requirements can be categorized into functional


and non-functional requirements, each serving a distinct but equally
vital purpose in software development. Functional requirements
define what the software should do, while non-functional
requirements define how well it should do it. Understanding and
clearly defining these requirements are fundamental steps toward
delivering successful software projects that meet user expectations
and industry standards.
Class Task
• Collect requirements of any project/software and make SRS
document.

You might also like