Defines functions of the system under development and describes what a system should do.

  • What inputs should the system accept
  • What outputs should the system produce
  • What data should the system store other systems might use
  • What computations should the system perform
  • The timing and synchronization of the above
  • Depend on the type of software, expected users, and the type of system where the software is used