10

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?

4 Answers 4

7

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.

6

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

5

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 behavior. 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
1

Okay, so user requirements and system requirements are related but distinct concepts in requirement engineering. User requirements are typically expressed in natural language and describe the needs and expectations of the end-users of the system. System requirements, on the other hand, are more technical and precise specifications that define how the system should behave and perform. I would say, system requirements are derived from user requirements through analysis and refinement.

Similarly, functional requirements and non-functional requirements are also related but different concepts. Functional requirements define what the system should do, such as its input/output behavior, processing logic, and user interfaces. Non-functional requirements, on the other hand, describe how well the system should perform, such as its reliability, scalability, usability, and security.

So, while there is some overlap between these concepts, they are distinct in their focus and purpose. User requirements are concerned with the needs and expectations of the users, while system requirements are focused on the technical specifications of the system. Similarly, functional requirements are focused on the system's behavior, while non-functional requirements are concerned with its performance characteristics.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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