requirements specification - overlord-supreme/checkers GitHub Wiki

Background

  • DUE: 2020-10-19
  • POINTS: 100




Functional and Non-Functional: What's the Difference?

Functional Requirement

  • Wikipedia: Functional Requirement
  • These test Behavior of a system
  • Example: All Toast is Butter-Side Up
  • This affects Systems Design, but does not care about how it is done

Non-Functional Requirement

  • Wikipedia: Non-Functional Requirement
  • These test Performance of a system
  • Example: All Toast is Delivered in 1000 ms
  • This affects Systems Architecture, but does not care about the intended purpose




Example Requirements Doc Structure

  • (39 pages, taken from a senior project called "Remote Raiders")

Cover

  • (1 page)
  • Name of Project
  • Text: "Requirements Specification"
  • List of Group Members
  • Faculty Advisor
  • Project Stakeholder

Revision History

  • (1 page)
  • Table of Name, Date, Reason for Change, and Revision Number
Name Date Reason Revision
Jeremy Bennett 2015-07-11 First Draft and Outline 0.9

Table of Contents

  • (2 pages)
  • (Goes 3 layers of indentation deep, is hyperlinked to following sections)

Introduction

  • (1 page)
  • lists purpose, scope, and overview

Description

  • (5 pages)
  • lists perspective, functions, target audience, assumptions/dependencies, and prioritization
  • Perspective: Briefly describe what the product is
  • Functions: Brief technical capabilities of product
  • Audience: Who this is intended for
  • Assumptions/Dependencies: Everything this project relies on just working and the tradeoffs therein
  • Prioritization: Describes how the rest of the document is described

Example Description

  • (not a page, but relevant)
  • This is how all of the following pages are written

3.1.4 Player Objectives

R4.1 Player Objectives Requirements

  • R4.1.1 Players should be assigned objectives at the beginning of the game. Priority 1
  • R4.1.2 Players should be able to complete objectives by performing various actions. Priority 1
  • R4.1.3 Players should receive new objectives when older objectives are completed. Priority 2
  • R4.1.4 Players will receive points when older objectives are completed. Priority 2

Functional Requirements

  • (14 pages)
  • Lists each Element
  • Breaks Elements into Rules
  • Each Rule has
    • ID Hash (Inherited from Element)
    • Priority: how important this rule is
    • Description (one sentence
  • Uses tables, diagrams
  • These are mostly gameplay related, and describe relationships between players, enemies, and the game

Non-Functional Requirements

  • (3 pages)
  • same pattern as Functional Requirements, but less detailed
  • mostly performance related (Operating System, Networking, Game Engine, Accessibility)

User Interface

  • (8 pages)
  • Mock-ups of the Interface, checklist of all required items
  • covers each screen, includes state diagrams for navigating between screens

Use Cases

  • (4 pages)
  • since this is a game, this covers every in-game action a player can take
  • written like this

6.1.8 Ending and Restarting Game (from Server)

Brief

The game ends after 5 minutes have passed from entering the Main Game Screen on Server. Then the game enters the Round End Screen on the screen. After 1 minutes have passed from entering the Round End Screen the game will start a new instance of the Main Game Screen. All players still connected to the server will be placed in new game instance with new avatars.

Precondition

Game timer ends

Action

Players wait a few moments

Postcondition

The new instance of the Main Game Screen will have representations of all connected players and newly spawned items.

Glossary

  • (1 page)
  • covers any used terms

References

  • (1 page)
  • Not well used, but where citations go
⚠️ **GitHub.com Fallback** ⚠️