Functional 1
Functional 1
NON FUNCTIONAL
REQUIREMENTS
TYPES OF REQUIREMENTS
Business requirements
User (stakeholder) requirements
Solution requirements
Transition requirements
BUSINESS REQUIREMENTS
1. The system sends a confirmation email when a new user account is created.
2. The system sends an approval request after the user enters personal information.
3. A search feature allows users to search content/items by entering the query in the
search bar.
4. The user can review items in the cart, change their number, or remove them before
checkout.
5. The app should allow users to create accounts and log in using credentials like email
and password or through social media integration.
6. The app can send notifications to users for updates, reminders, or promotional
content.
7. Users should be able to provide feedback or rate services/products within the app.
FUNCTIONAL REQUIREMENTS TYPES
Authentication. This group is about verifying the identity of a user before allowing access
to the system, including entering usernames and passwords, biometric verification, or
multifactor authentication.
Authorization levels. These requirements aim to define and control the access levels of
different users within a system. For example, an admin may have complete system access,
while a regular user has limited access to certain features.
Data processing. These requirements can include data entry, validation, storage, and
retrieval.
FUNCTIONAL REQUIREMENTS TYPES
User interface and user experience (UI/UX). These are the requirements related to the
design and interaction elements of the system. Their goal is to ensure that it’s user-friendly
and meets users’ needs.
Reporting. These requirements define generating reports, e.g., data sources, formats, etc.
System integration. These requirements describe how the system interacts and integrates
with other systems or third-party services.
FUNCTIONAL REQUIREMENTS TYPES
Transaction handling. This group contains requirements for handling transactions. They
are especially important in systems that deal with financial processes or require record-
keeping of transactions.
Error handling and logging. These requirements specify how the system should handle
errors and log them, e.g., defining error messages, troubleshooting steps, and maintaining
logs for system activities.
Backup and recovery. These are the requirements for data backup and system recovery
processes, ensuring data integrity and system availability in case of failure.
WHAT ARE NONFUNCTIONAL REQUIREMENTS?
Efficiency of use: the average time it takes to accomplish a user’s goals, how many tasks a user
can complete without help, the number of transactions completed without errors, etc.
Low perceived workload: how many attempts users need to accomplish a particular task.
Example: Usability requirements can consider language barriers and localization tasks: People
with no understanding of French must be able to use the product.
Or you may set accessibility requirements: Keyboard users who navigate a website using <tab>,
must be able to reach the “Add to cart” button from a product page in 15 <tab> clicks.
NONFUNCTIONAL REQUIREMENTS TYPES (SECURITY)
Security requirements ensure there is protection from unauthorized access to the system and its
stored data. It considers different levels of authorization and authentication across different user
roles. For instance, data privacy is a security characteristic that describes who can create, see,
copy, change, or delete information. Security also includes protection against viruses and
malware attacks.
Example: Only the system’s data administrator can change access permissions for the particular
system information may only be changed by the system’s data administrator.
NONFUNCTIONAL REQUIREMENTS TYPES (RELIABILITY)
Reliability defines how likely it is for the software to work without failure for a given time.
Reliability decreases because of bugs in the code, hardware failures, or problems with other
system components.
Example: The database update process must roll back all related updates when any update fails.
NONFUNCTIONAL REQUIREMENTS TYPES (PERFORMANCE)
Performance is a quality attribute that describes the system's responsiveness to various user
interactions. Poor performance leads to a negative user experience. It also jeopardizes system
safety when it’s overloaded.
Example: The front-page load time must be no more than 2 seconds for users that access the
website using an LTE mobile connection.
NONFUNCTIONAL REQUIREMENTS TYPES (AVAILABILITY)
Availability reflects the time that the system’s functionality and services are available for use
with all operations. So scheduled maintenance periods directly influence this parameter. And it’s
important to define how the impact of maintenance can be minimized. When writing the
availability requirements, the team has to define the system's most critical components that
must be available at all times. You should also prepare user notifications in case the system or
one of its parts becomes unavailable.
Example: New module deployment mustn’t impact the front page, product pages, and
checkout page availability and mustn’t take longer than one hour. The rest of the pages that
may experience problems must display a notification with a timer showing when the system is
going to be up again
NONFUNCTIONAL REQUIREMENTS TYPES (SCALABILITY)
Scalability requirements describe how the system must grow without negatively impacting its
performance. It means serving more users, processing more data, and doing more transactions.
Scalability has both hardware and software implications. For instance, you can increase
scalability by adding memory, servers, or disk space. On the other hand, you can compress data,
use optimizing algorithms, etc.
Example: The website attendance limit must be scalable enough to support 200,000 users at a
time.