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.