requirements

Complete

Concept

  • specifies a need to be fulfilled by the software
  • comes from stakeholders

Functional Requirements

  • must be:
    • unambiguous

    • testable (verifiable)

    • clear (concise, terse, simple, precise)

    • correct

    • understandable

    • feasible (realistic, possible)

    • independent

    • atomic

    • necessary

    • implementation-free (i.e., abstract)

    • consistent

    • non-redundant

    • complete

Prioritization

  • based on importance and urgency
  • keep in mind other constraints
  • discard ‘out of scope’ requirements

Non-Functional Requirements(NFR)

  • specify constraints under which the system is developed and operated
  • deal with:
    • data requirements
    • env requirements - eg. OS
    • accessibility
    • performance/scalability
    • security

Gathering requirements

Brainstorming

  • group discussion
  • generate ideas - there are no bad ideas

User surveys

  • get opinions from largen number of stakeholders

Observation

  • observe user in natural work environment
  • observing the use of an existing system -> make a better replacement

Interviews

  • interview stakeholders
  • interview domain experts

Focus groups

  • informal interview with stakeholders
  • potential users or beta testers

Prototyping

  • mock up/partial system
  • get users’ feedback
  • validate technical concept
  • preview of system
  • compare alternative implementations
  • field testing

Product surveys