title

Write to Mark Kellya

Functional and non-functional requirements

by Mark Kelly


Functional and non-functional requirements are an important part of a  software requirements specification (SRS).

Functional requirements (FR) ...

define what the software should be able to do.

Non-functional requirements (NFR) define the qualities or attributes the solution should have.

Functional requirements (FR) include abilities like:

  • print a receipt with 2 seconds;
  • adjust Australian prices to include GST
  • produce charts of the data

Consider a FR as a verb.

If you can say, “The software needs to be able to…” and then add a verb (e.g. “calculate”), it’s an FR.

 

Non-functional requirements (NFR)...

of the solution (solution attributes) are qualities it should have.

What qualities or features should distinguish the software?

e,g, it should be

  • accurate,
  • secure again unauthorised access,
  • user-friendly,
  • cheap to run,
  • responsive,
  • attractive
  • robust,
  • portable,
  • reliable,
  • easy to repair,
  • expandable,
  • easy to learn,
  • hard to crash,
  • forgiving of user errors,
  • etc

Consider a NFR as an adjective

If you can say, “The software needs to be…” and then add an adjective, it’s an NFR.

Some typical NFRs involve

  • Reliability
  • Performance
  • Security
  • Usability

NFRs often also form solution constraints. (e.g. "It's not worth creating this program/product unless it is... entertaining.")

 

Some real exam questions about FR and NFR

From the examiner's report - 2011 Software Development

A range of responses was accepted as long as the student could clearly articulate the functional requirements of the system. Functional requirements include:
• send data from roadside logger to central computer
• CDU detects the arrival/departure of a car
• transfer data from CDU to RDL
• send data to parking officers.
Functional requirements are statements about what the system is required to do; however, when responding to this question, many students confused functional and non-functional requirements. Reliability, robustness and maintainability were common answers, but these are all non-functional requirements.

2012 SD exam - question C1

Even though a range of responses was accepted, one of the most important non-functional requirements is 'ease of use'.

b.    Identify two important functional requirements. 2 marks

This question asked students to identify what AQADAS is required to do and should be able to do. There was a range of functional requirements that students could have identified, including 'facilitate entry of symptoms', 'obtain air quality measurements', 'obtain location and time' and 'keep data for up to 24 hours'.

c.    Identify one important functional requirement that a mobile phone alone cannot provide. 1 mark

This question asked students to analyse the case study and identify solution requirements – both functional (what it is required) and non-functional (the solution attributes, such as user-friendliness, response rates, robustness, portability, reliability and maintainability). Many students were unable to write solution requirements, and confused functional and non-functional requirements.
Throughout the year, clear and concise solution requirements should be modelled (using dot points, numbered lists, tables, etc.), where appropriate, in design briefs and SRS. In addition, students should practise identifying and writing appropriate solution requirements from provided stimulus material.

 

2013 SD exam, A16

Question 16

An application is designed that will record a person's heart rate every 10 minutes and keep a record of the heart rate readings for a week. What would be the functional requirements for this software?
A. The application is reliable and stores the heart rates for a week.
B. The application records the heart rates and stores them for a week.
C. The application is easy to turn on and off, and keeps accurate readings.
D. The application records the heart rates and provides a user-friendly screen.

Answer is B.

Functional requirements are those that need to be specifically programmed into an application so it can achieve a particular task.

Non-functional requirements are qualities that the software must possess, but are not necessarily coded in. They could, for example, be achieved by effective design of an interface.

In short, remember if you can say "The program must be able to..." followed by a verb - it's a functional requirement.
If you can say, "The program must be..." followed by an adjective, it's a non-functional requirement.

In this case, reliability (A), ease of use (C), and being user friendly (D) are all non-functional requirement.

85% of the state got this right.

2014 SD, A15

Question 15

A football club wants to create an electronic version of its membership records.
The functional requirements of the software solution include

A. being easily maintained.
B. storing all member details.
C. retrieving a record in less than a second.
D. displaying records in an easy-to-read format.

Answer is B.

Remember that an FR is what a solution should be able to do, usually because of a specific piece of coding.

An NFR refers to how the solution should do things (e.g. safely, quickly), or qualities that a solution should have (e.g. maintainability, readability.)

86% of students got this right.

2015 SD, C2

Question 2

Sally, as the manager of the voting software for MMS, is beginning to write the SRS document.
Provide two important non-functional requirements relevant to this voting software for Sally's SRS and explain why each is relevant to the software.

A number of non-functional requirements could have been discussed in response to this question;
however, the most common responses were user friendliness/ease of use and reliability. It was not
appropriate in this scenario to discuss maintainability.
The following are examples of high-scoring responses.

  • Ease of use – with so many voters of different ages and levels of technical ability, the system
    must be easy to understand, navigate and use.
  • User friendliness of the voting system- as thousands of residents will be voting (many of which
    may be inexperienced with IT) voting needs to be a quick and simple process to avoid large
    queues and waiting times.
  • The voting software must be 100% reliable – the software store the voters add their votes for
    transfer to the main server and must be able to operate with not breakdowns or all the important
    data will be lost and must be recollected.

 

Write to Mark Kelly

All original content copyright © vcedata.com
All rights reserved.

This page was created on 2022-05-04
Last modified on Saturday 7 May, 2022 12:13