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 5 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 consists of hardware and software. In some situations, it could even include humans performing well defined processes (for instance, changing depleted batteries).

The requirements can be classified as User Requirements/System Requirements and Functional Requirements/Nonfunctional 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 into 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's non-functional requirement: The system should be able to attend up to 80 simultaneous requests 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

The definition of ‘functional requirement’ is that it essentially specifies something the system should do.

The definition for a non-functional requirement is that it essentially specifies how the system should behave and that it is a constraint upon the systems behaviour. One could also think of non-functional requirements as quality attributes for of a system.

Simply, the difference is that non-functional requirements describe how the system works, while functional requirements describe what the system should do.

functional requirements includes:

  • Business Rules
  • Transaction corrections, adjustments and cancellations
  • Administrative functions
  • Authentication
  • Authorization levels
  • Audit Tracking
  • External Interfaces
  • Certification Requirements
  • Reporting Requirements
  • Historical Data
  • Legal or Regulatory Requirements

Non-functional requirements:

  • Performance – for example Response Time, Throughput, Utilization, Static Volumetric
  • Scalability
  • Capacity
  • Availability
  • Reliability
  • Recoverability
  • Maintainability
  • Serviceability
  • Security
  • Regulatory
  • Manageability
  • Environmental, Data Integrity
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: http://en.wikipedia.org/wiki/Requirement

share|improve this answer

Your Answer

 
discard

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.