YCP Logo Assignment 2: Requirements

Due: Friday, February 12th by 11:59 PM

Update, Feb 10th - due date extended

This is a team assignment

Your Task

Your overall task is to collect and document the requirements for the system you have chosen to develop as your team project.

Specifically, you have two tasks

1. Define the high-level requirements.

2. Write use cases.

High-level requirements

Each high-level requirement should be a single statement describing a property the system requires. For example, some of the high-level requirements for a TicTacToe program might be:

I. The system allows two players to play a game of TicTacToe

II. Each player can be either a human player or a computer (AI) player

III. The program determines which moves players can make, and determines the outcome of the game (win or draw)

IV. The game supports a GUI user interface

Use cases

A use case describes a scenario in which one or more actors (agents external to the system) use the system to accomplish a goal. One of the actors involved in the use case must be an initiator of the use case.

Each use case should have a name. The name should indicate which actor is the initiator of the use case, and what goal is accomplished. For example, in the TicTacToe system, we might have a use case called "Player takes a turn."

The use case should list a sequence of steps which accomplish the goal. If there are important options that might be encountered, such as error conditions, these can be listed in "nested" steps.

So, our "Player takes a turn" use case for TicTacToe might look like this:

Player takes a turn

Actor: a human player

0. Precondition: it is the player's turn

1. The player chooses a location on the board in which to place a piece

1.1 If the location is already occupied by a piece, display error message and go back to step 1

2. System checks to see if the player has won the game, or if a draw has resulted

2.1 If a player has won, indicate which player

2.2 If a draw has occurred, inform players

Note that TicTacToe is a pretty simple example: for a more complex problem, a use case might be be more involved.

You should write as many use cases as necessary to document the important behaviors of your system, as experienced by the relevant actors.

For each use case, document which high-level requirements are addressed by the use case. For example, the use case above addresses requirements I and III.

Submitting your work

Create a zip file containing

1. a text document containing your high-level requirements

2. your use cases, each in a separate text document

Text documents should be in Word, OpenOffice, or PDF format.

You can create a zip file using Windows by creating a folder, putting some files inside the folder, right-clicking on the folder, and choosing Send to->Compressed Folder.

Upload the zip file to the Marmoset server as assign2:

https://camel.ycp.edu:8443/

Only one team member needs to upload the report.