NOTE: As an example, to be updated to the current project (but valuable to set your targets!)

------------------------------------------------------
2002/2003  Project
CSC 405/406 project requirements
Version 3.0
10/17/02
by Dan Stearns, approved by Clark S. Turner

Overview
--------

This document describes the CSC 405 project requirements from
a different perspective - the CSC 405 students and professor.

There are two sets of requirements - from two distinct points
of view:

1. As the professor for CSc 405/406.
2. As the CSC 405/406 development manager who is about to
undertake the management of 240 (mostly) inexperienced developers.

The professor's requirements:

a. A traceable SRS that is ready to go, with minimum effort, when the class begins.
b. A project that can feasibly be completed (prototype quality) and
delivered by the end of winter quarter 2003. Prototype quality is
defined in my coding standards.

The development manager's requirements:

c. An SRS that contains the following core
material. In my opinion, it isn't possible to complete a
large successful project unless all of the following are
available early in the life cycle. (i.e. at the start of
405)

A set of use cases described in English AND in some graphical
(e.g. UML) or formal (e.g. RSL) way.

For the non-trivial use cases, a graphical or formal language
depiction of the business logic. Some typical and acceptable
methods are (listed in no particular order):

Z or RSL
Nassi-Schneiderman diagrams
Petri net diagram
State machine diagrams (for appropriate domains)
UML sequence diagrams
Pseudo-code
Data flow diagrams

Note: Dr. Fisher would argue there is no such thing as a trivial use case; you can read his argument in his RSL tutorial.

A data dictionary written WITHOUT CIRCULAR LANGUAGE at a
language level that the CSC 205 students can understand.
The data dictionary would also show the major relationships
between the data elements. Those relationships could be
defined in one of several acceptable ways: (RSL, ER diagrams,
formal language defined in Wiegers, relational algebra, ...)
Note: this was the biggest problem in the previous CSC 405;
the data dictionary was entirely circular and there
were few described element relationships.

A draft set of "real" non-functional requirements written in measurable
terms. The most important are likely:

Accuracy
Maintainability
Performance
Reliability
Supportability (specific software quality requirements)
Installability
Testability
???

For GUIs, a high-quality horizontal prototype or set of
horizonal story boards.

For textual UIs, a draft quality user manual or BNF definition
of the user interface.

d. Software Architecture
A first-cut at the software architecture for the project, defined
in some graphical or formal way. (e.g. UML diagrams, ...)