CSCI 240 - Requirements Specification

Due Fri Sep 14 at the beginning of class

The Assignment

As the first step for your project, each group will produce a Software Requirements Specification for their division. This formal document will detail the various requirements that need to be met, in order to guide the system's implementation. These specifications will more-or-less follow IEEE Standard 830 for SRSs, with some customizations. Your document should have the following sections:

  1. Cover Page: Include a cover page with the name of the project, your division, and the names of all your team members.
  2. Introduction: Describe what the document is about and who created it. Make sure to include the names of all your team members. Also include a team profile: the individual qualifications and strengths (such as programming, design, presentation, documentation, management, etc) of each member. Note that this is NOT a list of responsibilities, but rather an accounting of individual strengths. Each team member will be involved in all project activities. This is probably around half a page.
  3. Executive Summary: A short (no more than 1 page) summary of the project and its requirements detailed in the document.
  4. Application Context: Describe in detail the end product your division will produce and the situation in which the software will be used. What is the project? Who are the users? This section will probably be a couple pages.
  5. Functional Requirements: List all the functions the system provides to the user. Make sure to distinguish between "key" features (which are needed to address the problem you're trying to solve) and secondary features (which would improve the user experience but are not strictly needed). Each functional requirement should be detailed through a Use Case.
    • Critical features should be given fully-dressed use cases, identifying Actors, Scenarios, Preconditions, Postconditions, and Alternatives.
    • Other requirements can be described with a brief or casual use case, but some use case is required for all features you plan to include in your final product.
    • You are encouraged to use diagrams (such as System Sequence Diagram) to help describe your most important use cases. The goal is to be as clear as possible about the system requirements.
  6. Nonfunctional Requirements: List and briefly describe (a couple of sentences to a paragraph) the nonfunctional requirements for your product. For example, you might describe:
    • Usability requirements
    • Reliability requirements
    • Performance requirements
    • Supportability requirements
    • Implementation requirements
    • Environmental requirements
    • ...etc. Search for FURPS for more ideas!
  7. Timeline: Create a detailed schedule that your group plans to follow. Include major milestones (e.g. finish install documentation, or project integration) and provide a description of each scheduled goal.
  8. Potential Challenges: Describe what you believe to be the biggest challenges you will face in working on this project. Highlight how you plan on addressing these challenges.
  9. Glossary and References: Be sure to define any technical terms you use (that may not be understood by a lay person), and to include links and pointers to any tools and references that you have looked at so far. This can include existing APIs, related systems, research articles, etc. Always cite others' work!

Submitting

Upload a pdf copy of your document through Moodle.