Project Milestone 1: Requirements:

Part I: Functional Requirements

Part I of your Requirements Document should contain the following information.

System Purpose

Explain the purpose of your system. The basis for this explanation should be the system summary you wrote for Milestone 0. Incorporate any revisions that the course staff suggests when we hand back comments on your Milestone 0 submission. Your system purpose should answer the following questions:

Functional Requirements

Invent a list of functional requirements for the system you are building. For the purposes of this project, a functional requirement comprises the following data:

Here is an (incomplete!) example of five functional requirements, based on CMS:

U. typeAssetsImport.User story
professorassignmentM As a professor, I can create a new assignment by specifying its name, number of possible points, and due date.
studentsubmissionS As a student, I can submit a file as a solution to an assignment.
gradergradeM As a grader, I can assign a number of points as a grade to a student for an assignment.
studentgradeS As a student, I can view my grades for all assignments.
professorsurveyC As a professor, I can conduct online surveys of students, so that I don't have to print and collect paper surveys.

The last user story is not exemplary: it lacks estimability and testability, because it doesn't specify what a survey is, how students will take it, how results will be tabulated and presented, etc. It should be broken down into smaller stories. And this is likely how you will proceed with inventing requirements: write stories that are too "big" at first, then refine them.

You might find it helpful to organize your requirements in a spreadsheet, so that you can sort them in various ways.

How many requirements should we invent? It's impossible to give a general answer to this question: groups write at different levels of detail, have differently scoped projects (especially those using the 5431 project as their MEng project), and build systems with different tradeoffs between feature set size and implementation difficulty. What's important is not the number of requirements, but whether (i) they clearly fulfill your system purpose and (ii) satisfy the INVEST criteria.

Evaluation

We will evaluate Part I of your Requirements Document against the following criteria: