Description:

  • The process of establishing the services that a customer requires from a system and the constraints under which it operates and is developed.
  • The system requirements are the descriptions of the system services and constraints that are generated during the requirements engineering process.
  • It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification.  
  • This is inevitable as requirements may serve a dual function
    • May be the basis for a bid for a contract - therefore must be open to interpretation;
    • May be the basis for the contract itself - therefore must be defined in detail;

Types of requirements

  • User vs system requirement
    • Business requirement
    • User requirements
      • Statements in natural language plus diagrams of the services the system provides and its operational constraints.
      • Written for customers.
    • System requirements
      • A structured document setting out detailed descriptions of the system’s functions, services and operational constraints.
      • Defines what should be implemented so may be part of a contract between client and contractor.
  • Functional vs Non-functional requirement
  • Domain requirement

Requirement engineering processes:

  • Requirement elicitation:
    • Sometimes called requirements elicitation or requirements discovery.
    • Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints.
    • May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. These are called stakeholders.
    • Software engineers work with a range of system stakeholders to find out about the application domain, the services that the system should provide, the required system performance, hardware constraints, other systems, etc.
    • Stages include:
      • Requirements discovery,
      • Requirements classification and organization,
      • Requirements prioritization and negotiation,
      • Requirements specification.
  • Requirement specification:

  • Requirement validation:

Requirement change: