Functional Requirements

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 24

FUNCTIONAL REQUIREMENTS

FUNCTIONAL REQUIREMENTS
• Functional requirements can be most simply defined as:
• Something the system must do .If the system does not meet a functional requirement it
will fail. This is because it will not be able to achieve something it must do to operate
properly. The functional requirement concept can also be understood through reviewing
the system in terms of inputs and outputs. Functional requirements specify what the
system must do in response to different inputs and what it must output.
FUNCTIONAL REQUIREMENTS EXAMPLES

• Functional requirements examples


• Looking at some functional requirements examples is helpful to understand what they
are. Generally speaking, functional requirements are comprised of both product features
and user requirements. 
• Some examples of functional requirements include:
• Specifications of what the system must do
• Business rules that must be met
FUNCTIONAL REQUIREMENTS EXAMPLES

• Steps that the system must take in authentication


• Details of what must be tracked in the system
• The reporting requirements of the system
• Specifics relating to legal or regulatory compliance
• Outlines the levels of user and their authorization
• Details of how transactions must occur
• The external interfaces of the system
NON FUNCTIONAL REQUIREMENTS
NFR
WHAT ARE NON-FUNCTIONAL REQUIREMENTS?

• Non-functional requirements or NFRs are a set of specifications


that describe the system’s operation capabilities and constraints
and attempt to improve its functionality. These are basically the
requirements that outline how well it will operate including things
like speed, security, reliability, data integrity, etc.
EXMAPLE

• Imagine you’re buying a motorcycle. What features do you have in mind? Do


you expect it to travel at 170 miles an hour and not to fall apart? Can you
attach a sidecar to it or expand luggage space by attaching a pull-behind
trailer? And let’s not forget about security systems. While these requirements
don’t directly describe the vehicle’s primary function – delivering a person
from point A to point B – they are still important to satisfy your needs as the
driver.
• Like motorcycles or any other kind of machinery, any software product has
its own non-functional requirements. Be it a website, a mobile, or a desktop
app, it should have a set of quality attributes to meet end-user needs.
FUNCTIONAL AND NON-FUNCTIONAL
REQUIREMENTS

• Both functional and non-functional requirements describe


specific characteristics that a product must have to meet the
needs of the stakeholders and the business itself. But, as you
can tell from the name, they focus on different things.
• Functional requirements define what a software product must
do: its features and functions. An example of a functional
requirement for a messenger will be something like, “A user
must be able to edit messages after they are sent to correct
errors.” (Well yeah, Meta, the system must provide this
functionality. Just so you know 😉)
CONT…

• Non-functional requirements specify the quality attributes of the


system, hence their second name — quality attributes.
Continuing our messaging platform example, a non-functional
requirement can be the speed with which a system must
perform editing to satisfy user expectations, “The message must
be updated for all users in a chat within 0.1 seconds, given that
all users are online and have LTE connection or better.”
WHAT ARE THE KEY TYPES OF NON-
FUNCTIONAL REQUIREMENTS?

• The most common ones are performance, scalability, portability,


compatibility, reliability, availability, maintainability, security,
localization, and usability. But there are 
quite a few types of non-functional requirements that can make
it to your checklist too.
TYPES
• Performance and scalability. How fast does the system return results? How much will
this performance change with higher workloads?
• Portability and compatibility. Which hardware, operating systems, and browsers,
along with their versions does the software run on? Does it conflict with other
applications and processes within these environments?
• Reliability, maintainability, availability. How often does the system experience critical
failures? How much time does it take to fix the issue when it arises? And how is user
availability time compared to downtime?
• Security. How well are the system and its data protected against attacks?
• Localization. Is the system compatible with local specifics?
• Usability. How easy is it for a customer to use the system?
PERFORMANCE AND SCALABILITY
• Performance and scalability are the two core non-functional requirements no system can
do without. Since they go hand in hand, we’ve put them in one section.
PERFORMANCE

• Performance defines how fast a software system or a particular


piece of it responds to certain users’ actions under a certain
workload. In most cases, this metric explains how long a user
must wait before the target operation happens (the page
renders, a transaction is processed, etc.) given the overall
number of users at the moment. But it’s not always like that.
Performance requirements may describe background processes
invisible to users, e.g. backup. But let’s focus on user-centric
performance.
EXAMPLE OF PERFORMANCE REQUIREMENTS:

• The landing page supporting 5,000 users per hour must provide
6 second or less response time in a Chrome desktop browser,
including the rendering of text and images and over an LTE
connection.
SCALABILITY

• Scalability assesses the highest workloads under which the


system will still meet the performance requirements. There are
two ways to enable your system scale as the workloads get
higher: horizontal and vertical scaling.
• Horizontal scaling is provided by adding more machines to the
pool of servers.
• Vertical scaling is achieved by adding more CPU and RAM to
the existing machines.
EXAMPLE OF SCALABILITY REQUIREMENTS:

• The system must be scalable enough to support


1,000,000 visits at the same time while maintaining
optimal performance.
• Portability and compatibility
• Two more key players in the world of non-functional requirements are such attributes as
portability and compatibility.
PORTABILITY

• Portability determines how a system or its


element can be launched within one environment
or another. It usually includes hardware, software,
or other usage platform specifications. Put simply,
it establishes how well actions performed via one
platform are run on another. Also, it prescribes
how well system elements may be accessed and
may interact from two different environments.
EXAMPLE OF PORTABILITY REQUIREMENTS:

• A program running on Windows 10 must be able to run on


Windows 11 without any change in its behavior and
performance.
COMPATIBILITY

• Compatibility, as an additional aspect of portability, defines how a


system can coexist with another system in the same environment. For
instance, software installed on an operating system must be compatible
with its firewall or antivirus protection.
• Example of compatibility requirements:
• The iOS application must support iPhone devices running on OS versions:
• 3.6
• 3.3
• 3.4
• 4.3
• 2.3
RELIABILITY, MAINTAINABILITY, AVAILABILITY

• While these three types of requirements are usually documented


separately, we aggregate them in one section, since they
approach the same problem from different angles. Another thing
to keep in mind with these requirements is that they are
extremely hard to express in terms of calculating. And, frankly,
many system providers don’t document them at all. Let’s see.
THE END

You might also like