Lecture 2: Introduction

System and User Requirements

  • User Requirements: High-level description of services requested and constraints imposed. Built for the user.
  • System Requirements: A more detailed and structured description of services and constraints. Usually part of the contract between developer and client.

Types of Requirements

  • Functional Requirements: Describe the requested functionality or behavior of the system

    • e.g. services, reaction to input, exceptions, modes of operation
  • Non-functional Requirements: Represent constraints on the system and its functionality

    • e.g. performance constraints, compliance with standards
  • Domain Requirements: can be either functional or non-functional and reflect the particularities of the application domain

Functional Requirements

  • Describe the functionality of the system or service

  • Can be expressed at different levels of detail (user/system requirements)

  • desirable to have a complete and consistent set of functional requirements

    • Completeness: all required system facilities are defined
    • Consistency: there are no contradictions or conflicts in the requirements

Problems arise when requirements are not precisely stated. Ambiguous requirements may be interpreted in different ways by developers and users.

Non-functional Requirements

These define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc.

  • Many apply to the system as a whole
  • More critical than individual functional requirements. If they are not met, system may be useless
  • More difficult to verify

They can be classified into three types

  • Product Requirements: specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.

  • Organizational Requirements: a consequence of organizational policies and procedures e.g. process standards used, implementation requirements, etc.

  • External Requirements: arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc

Two terms

  • Goal: general intention of the user such as ease of use

  • Verifiable non-functional requirement: statement using some measure that can be objectively tested

Some non-functional properties and their measures

Domain Requirements

  • Derived from the application domain and describe system characteristics and features that reflect the domain.
  • Domain requirements may be new functional requirements, constraints on existing requirements or define specific computations.
  • If domain requirements are not satisfied, the system may be unworkable.