CMPS183, Fall 2011, Section 01: Requirements - Description

The goal of this phase is to write a document containing a detailed specification of the functionality, and constraints on that functionality, of the Web application being developed by your team. Additionally, this document will contain revised and improved paper prototype or storyboard figures. Your requirements specification must contain the following elements (more details can be found in the template):

  • Change Record: Every time the document is changed, an entry is made in this table.
  • Table of Contents: Must show the functional grouping of requirements in the requirements section.
  • Overview: Provides a high-level overview of the goals of the Web application you are developing.
  • Reference Documents: Documents and Web sites that are useful in understanding the domain of the project, and the current document. For example, if you're developing a Web application for a specific organization, list its current Web site.
  • Definitions: Definitions of important and specialized terms and acronyms used throughout the remainer of the specification.
  • Classes of users: The kind of users expected to be using the system. For a Web application developed for a specific organization, the kinds of users might include the general public, members of the organization, officers of the organization, and full time staff members.
  • Scenarios document feedback: (This section only applies if you have an external customer (i.e., if your customer is someone not associated with the class)). Comments and improved understanding developed from discussing the project scenarios document with your team's customer. There are two parts to this section:
    • A printout of an email message from your project customer stating:

      "I have read the project scenarios document produced by {your team name} and have discussed its contents with them. I am satisfied that the team understands the problem well enough to proceed with writing a detailed requirements document."
    • A written summary of any changes in understanding or functionality that resulted from reviewing the project scenarios document with your customer. The intent of this section is to make it easy for your customer to see what changes have occurred between the scenarios document and this requirements specification.
  • Requirements: A precise description of the capabilities of the Web application. Each specific requirement must be individually numbered, so they can be referred to again in future documents. This usually means that every sentence or paragraph is numbered (depending on how concisely requirements are stated). These requirements can describe:
    • Functionality - define specific functionality, that is, what the application should do, not howit does it. If the functionality is specific to a particular class of user, that should be stated.
    • Performance - characteristics of the performance of the application, such as minimum acceptable levels, or maximum number of users
    • Usability - how users must be able to interact with the system, such as minimum times to learn system features
    • Constraints - limitations on the functionality of the system (e.g., no more than five players)
    • Wish list - system features that will be implemented if time permits

Requirements must be:

  • Understandable: The meaning of the requirement must be clear from the text in the document.
  • Unambiguous: Each requirement must have a single, clear meaning.
  • No redundancy: Each requirement should be stated only once.
  • Complete: Every functional behavior in the implemented project must appear in a requirement, and the requirements must capture the entire functionality of your modifications to the system. All functionality described in your scenarios must be described by a requirement.
  • Consistent: The requirements must not contradict each other.
  • Correct: The requirements must not specify invalid or undesirable behavior.
  • Testable: It must be possible to construct a test that can be executed by a person who is not a member of the development team to determine whether the requirement is satisfied.

The user interface diagrams must capture all of the major menus, screens, behaviors, and dialog boxes of the project.

For more information, see the template.