Professional Documents
Culture Documents
Functional and Non-Functional Requirements
Functional and Non-Functional Requirements
Functional and Non-Functional Requirements
1. Functional requirements
The functional requirements of a system are those that describe any activity that it must perform, in
other words, the particular behavior or function of a system or software when certain conditions are
met.
Typically, these should include functions performed by specific screens, descriptions of the workflows
to be performed by the system, and other business, compliance, security, or other requirements.
Like other types of software requirements, such as non- functional requirements , functional
requirements can be classified according to their purpose, such as business requirements,
requirements originating from regulatory aspects, security, among others.
Below are examples of functional requirements, classified by different areas:
• Billing of sales orders will be done in batches, through a pending billing orders screen, which
will show uninvoiced orders. Once orders have been invoiced they will not be shown in this
list.
• The system will also allow the registration of manual invoices not associated with orders,
however, these will require authorization from the Managers group before being posted.
• The purchasing process in the system covers the following steps and transactions: Entry of the
requisition, issuance of the quote request and issuance of the purchase order.
• The elements of the quote request will be the same as those of the associated requisition, as
well as those of the purchase order. The system will allow the issuance of quote requests and
partial purchase orders.
• The accounting of sales invoice and purchase invoice transactions can be configured to be
done automatically upon registration, or manually in batches (Batch Process).
• The software must be able to output the following financial statements: Balance Sheet, Profit
and Loss Statement, Cash Flow Statement. In addition, you must be able to issue a list of
general ledger and analytical ledger.
• Purchase orders that exceed the amounts established in the configured order release flow
must go through the approvals established in said approval flow.
• The name, total size, available space and format of a pen drive or flash drive connected to the
computer's USB port will be displayed.
• The system will control access and allow it only to authorized users.
• The database will be implemented with audit trails.
• Spreadsheets secure data using electronic signatures.
• The system will allow the preparation and issuance of the XX regulatory report, according to
the requirements established in the regulations and applicable law.
• The sales and purchase books will be issued in the format established by the tax authorities of
said matter.
• The system will control access and allow it only to authorized users. Users must log in to the
system with a username and password.
• The system will send an alert to the system administrator when any of the following events
occur: New account registration, customer login to the system, 2 or more failed attempts to
enter the user password, and user password change.
• Members of the Analyst user group can enter requests but cannot approve or delete them.
• Members of the Manager user group can enter and approve requests, but they cannot delete
them.
• Members of the administrators user group cannot enter or approve requests, but they can
delete them.
• Any data exchange via the Internet carried out by the software will be carried out through the
https encrypted protocol.
The functional requirements must be written in such a way that the reader can understand the
operation of the system without having particular technical knowledge of its operation.
The important thing is to define a standard way to express the requirements and be consistent with it
in all documents.
Likewise, functional requirements do not necessarily have to be defined in the form of written
narratives, but diagrams or process flows can also be used, which are included in the functional
specification of the software or system to be developed.
To identify and document software functional requirements, two steps are followed. First, requirements
gathering techniques are applied, such as observation, interviews, observation, among others.
2. Non-functional requirements
2.1. Why are non-functional requirements important?
All Information Technology (IT) Services, at some point in their life cycle, need to consider non-
functional requirements and the tests associated with them.
For some projects, these requirements involve a considerable amount of work and effort, while for
others they do not.
Non-functional requirements are often ignored or underestimated in the requirements analysis phase .
The error ends up being identified in the implementation phase when remediating them involves more
work and cost, and may cause them not to be adopted by users and clients.
Non-functional requirements are those that specify criteria to evaluate the operation of an information
technology service, in contrast to functional requirements that specify specific behaviors.
Functional requirements define the criteria that the software must meet for it to be suitable for its
purpose (Fitness-for-purpose), while non-functional requirements specify the criteria it must meet for it
to be suitable for its use (Fitness-for-purpose). for-use).
Other terms used for non-functional requirements can be: Constraints, Quality attributes, quality
objectives, service quality requirements.
There are various sources or frameworks to classify non-functional requirements. In fact, there is an
IEEE standard, Std 830 – 1993, that establishes 13 types of non-functional requirements that should
be included in every software specification.
Another model is the one proposed by Jacobson (1999) which is proposed for the Unified Process.
One of the most widespread models is the one established by Somerville, which we will present below.
Some of these requirements may be easy to quantify, for example performance and reliability, but
others are more difficult, such as usability and adaptability.
❖ Efficiency
• The system must be able to process N transactions per second. This will be
measured through the SoapUI tool applied to Software Testing of web services .
• All system functionality and business transactions must respond to the user in less
than 5 seconds.
• The system must be able to operate adequately with up to 100,000 users with
concurrent sessions.
• Modified data in the database must be updated for all accessing users in less than 2
seconds.
❖ Industrial safety
• The system will not continue operating if the external temperature is less than 4
degrees Celsius.
• The system will not continue operating in the event of fire. (Ex. An elevator).
❖ Usability
• The system learning time for a user must be less than 4 hours.
• The rate of errors committed by the user must be less than 1% of the total
transactions executed in the system.
• The system must have properly structured user manuals.
• The system must provide error messages that are informative and oriented to the end
user.
• The system must have an online help module.
• The web application must have a “Responsive” design in order to guarantee adequate
viewing on multiple personal computers, tablet devices and smartphones.
• The system must have well-formed graphical interfaces.
❖ Reliability
• The system must be available 99.99% of the time a user attempts to access it.
• The time to start or restart the system cannot be more than 5 minutes.
• The system failure time rate may not be greater than 0.5% of the total operating time.
• The average duration of failures may not be greater than 15 minutes.
• The probability of failure of the System may not be greater than 0.05.
They may include software development methodologies, programming (coding) standards and
software development support tools (e.g. CASE Tools) that must be used (following the organization's
policies), also reports to management that must be provided, among others.
The tools for software development management that we know are defined as non-functional
organizational requirements.
One of the aspects that are documented as organizational functional requirements are the
environment, specifically the maintenance and administration procedures of the software development
environment.
This administration also includes procedures for managing end-to-end test environments.
Examples of organizational non-functional requirements
• The software development procedure to be used must be explicitly defined (in procedure
manuals) and must comply with ISO 9000 standards.
• The software development methodology will be Behavior Driven Development (BDD)
supported by Cucumber .
• The system must be developed using CASE XYZ tools.
• The development process will be managed through a certain web tool to manage the software
development process .
• A disaster recovery plan must be specified for the system to be developed.
• Every two weeks, management reports must be produced showing the effort invested in each
of the components of the new system.
• Software testing will be managed with a software testing management tool .
• Software tests will be executed using Selenium and Ruby as a tool and scripting language for
software testing automation.
➢ External non-functional requirements
These derive from the organizational environment (not technical environment) in which the system is
developed and can be done either on the product (the developed software) or also on the software
development process.
These types of requirements include economic limitations, such as the budget of the software project ,
interaction or need for the system to interoperate with other systems, regulatory requirements in the
area of health, industrial safety or data protection, legal requirements. concerning licenses, regulations
or certifications that the product needs depending on the industry in which it operates, among others.
• Medical data systems: The new system and its data maintenance procedures must comply
with medical data protection laws and regulations.
• The new system will follow the rules of general public licenses (GNU), that is, it will be free,
open source in which anyone can change the software, without patents and without
guarantees.
• The web pages to be developed must comply with the law on equal treatment for people with
disabilities.
• The system will not reveal to its operators other personal data of clients other than names and
reference numbers.
Some final considerations:
Non-functional requirements are usually expressed in a general way and without reference to any
module, transaction or characteristic of the system, otherwise they would become functional
requirements . For example:
“The system must ensure that data is protected from unauthorized access.”
It is advisable to accompany the definitions of non-functional requirements with acceptance criteria
that can be measured.
Non-functional requirements can in turn lead to functional requirements. Taking the previous one as
an example:
“The system will include a user authorization procedure, in which users must
identify yourself using a username and password. Only users authorized in this way
They will be able to access system data.”
Written this way, the requirement becomes functional.
However, not all non-functional requirements can be derived into functional requirements, which is
why it is very important to define acceptance criteria.
Source : PMOinformatica.com