Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a newbie when it comes to Software Engineering and my question is not directly related to Quality Assurance or Testing.

When it comes to Requirement Engineering (RE), the requirements can be classified as:

  • User Requirements vs. System Requirements and
  • Functional Requirements vs. Non-Functional Requirements

System requirements are the translations of user requirements in a much more technical language. They are basically the things that a software must perform.

Functional requirements are much the same.

So where do they differ? Or are they the same way of referring to the same thing depending on the perspective?

share|improve this question
up vote 4 down vote accepted

System requirements are the translations of user requirements in a much more technical language. They are basically the things that a software must perform.

Not exactly. The system usually consist of hardware and software. In some situations, it could even include humans performing well defined processes (for instance, changing deployed batteries).

the requirements can be classified as User Requirements/System Requirements and Functional Requirements/Non-Functional Requirements

In my understanding you are mixing classifications. There are at least user requirements; and system, hardware and software functional and non-functional requirements. You could even decompose the system in subsystems, or the software requirements in modules... Examples of the "high level analysis" requirements:

  • User requirement: The user should be able to turn off the alarm bell after acknowledging the error message.
  • System non-functional requirement: The system should be able to attend up to 80 simultaneous request by attaching a new processor.
  • System functional requirement: The system must alert the user with a 2500 Hz acoustic tone if the message contains the code 0xEFAC.
  • Hardware non-functional requirement: The system must tolerate a power outage for at least 10 minutes.
  • Hardware functional requirement: If the JP14 jumper is on and the register R4 has a 0xEFAC, the hardware must put +5V on PK1.
  • Software non-functional requirement: The software should be able to attend 50 simultaneous INFO requests.
  • Software functional requirement: The software must render a red alert box in the left corner if the message is corrupt.
share|improve this answer

In my opinion, there is incorrect use of terms:

User's requirements in plain language should be called user's stories or etc.
Requirements for the hardware are often called system requirements.
Functional requirements cover what your Application need to do and in which way (i.e. its functions)

P.S. Also, you can read about requirements from the wiki:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.