Requirement Levels & Types

1. User Requirements

  • User requirements are statements of what the customer needs/wants (i.e., what actions the customer needs to accomplish with the system).
    • These are high level statements that management would typically understand.
  • User requirements serve as the guideline for further system specification and are used to verify that the system delivered meets the customer’s expectations.
  • An example would be: “The buyer will be able to track their order and delivery online via an automated tracking system.”
  • Use cases can be helpful in isolating user requirements.

2. System Requirements

  • System requirements specify what will be delivered and provide an outline of the system or product that will be provided to achieve the user needs/requirements. In other words, what the system or product must do, how it must behave, the properties it must exhibit and the qualities it must possess.
  • This level of requirements includes both functional and non-functional requirements.
    1. Functional Requirements
      • Functional requirements describe the behavior and information that the solution will manage.
    2. Non-Functional Requirements
      • Non-functional requirements designate the quality and performance of the system, such as speed, accuracy, reliability, and so on (Example:”Our delivery system will bring produce from harvest to the customer in less than 48 hours.”)
      • Non-functional requirements can also include compliance with legal or governmental regulations (“We will adhere to all Department of Agriculture standards for transporting produce”), scalability (“The delivery routing system will be designed in such a way that up to 50 new customers may be added each month,”), redundancy, etc.
      • While you don’t need these requirements for your project to function, non-functional requirements are still important if the system is to be successful.

3. Technical Requirements

  • Technical requirements define how the system will implement the system requirements.
  • These include the architectural design which outlines the high level (conceptual) design for the entire system (e.g., Internal and external interfaces, authentication & encryption methods, data storage, backup & recovery methods, IP addresses, firewall rules, etc.), as well as the low-level design documentation, or product specifications, which includes the definition for code organization (i.e., the modules, their relationships and dependencies along with the logic and algorithms to be used), the interfaces between different parts of the system, the data structure, etc.