Software requirements

Reading Time: 2 minutes

Requirement definition & types

  • A condition or capability needed by a user.
  • Types:
    • Functional requirement
    • Non-functional requirement

Functional requirement

  • It specifies what the system should do – the services, tasks, or functions it must perform.
  • Examples:
    • User can login using username and password.
    • System should generate monthly reports.
    • Atm should dispense cash.
  • Key point: it describes behavior or functionality.

Non-functional requirement

  • It specifies how the system performs a function – quality attributes of the system.
  • examples:
    • System should respond within 2 seconds.
    • System should support 10,000 users.
    • Data must be encrypted.
    • System availability should be 99.9%.
  • Common categories: performance, security, reliability, usability, scalability, maintainability.

SRS (software requirement specification)

  • A formal document describing system requirements clearly.
  • Benefits: acts as contract, avoids misunderstandings.
  • Purpose: defines system scope, acts as agreement between client and developer, helps in design and testing.

Requirement elicitation

  • Collecting requirements from stakeholders.
  • Methods: interviews, questionnaires, observation, prototyping.

Key process steps

  • Elicitation: engage stakeholders to uncover domain details, services, and constraints.
  • Analysis: classify, prioritize (e.g., mandatory vs. optional), and negotiate trade-offs.
  • Specification: create models like use cases, er diagrams, or data flow diagrams in a software requirements specification (srs) document.
  • Validation: review for accuracy via prototypes or walkthroughs.