Requirements Document Guidelines
The following guidelines should help you to create the contents for
your requirements document. They are also used for grading.
Completeness
You cannot have anything in the design document, for which there
is
no requirement. In principle, everything in the design document has to
be traceable to
a requirement in the requirements document. In this sense, the
requirements document
needs to be complete.
Testability
Quantify your requirements, so that you will be able to write
test cases to test each of the requirements. This is required for the
System Acceptance Test. Each requirement should be testable. This holds
for functional and non-functional requirements.
Context Diagram
Draw a context diagram which depicts your software system and
the external entities that interact with your system. The context
diagram defines the
boundaries of your project with respect to external entities.
Inputs and Outputs
Ensure that you capture each input to the system and each output
from the system. Account for all data that your system uses. If it
comes from an external entity, provide detailed information about the
input. In the same way, define all the outputs from the system.
Data Storage
Clarify whether there is any data stored in your software
system. You may later need to draw an entity-relationship diagram for
the data.
User interfaces
If there is a user interface, sketch all the user interfaces.
The data input and the validation of the data through the UI must be
specified in detail.
Use Cases
It is a good idea to use UML diagrams such as Use Cases to
visualize your requirements. This could in turn drive the development
of other UML diagrams such as Class diagrams, State Diagrams,
Interaction Diagrams etc.
Process Diagram
You could include a process diagram in your Requirements
Document. Examples of process diagrams are Figures 3.1, 3.5, 3.8 of
Roger S. Pressman,
Software Engineering: A Practitioner's Approach, 6th ed., McGraw-Hill,
2005.
10. *Validity* - The requirements must capture a complete description
of what was
desired for the application such that it could be given to an
outsourcing firm and,
if the firm met the contractual obligation outlined by your
requirements, you would
be happy with the results.