The specification document should be at least one page and no more than 5. The purpose of the document is to provide a detailed description of the program's behaviors. The specification document should not include any design information.
The first item in your specification document should be a one paragraph description of what the program will do. This paragraph should be high level, and not include the specific detailed behaviors.
After the high level system behavior description, you should specify the detailed system behaviors. You should organize the behaviors based upon the section of the program that will be responsible for the behaviors. For instance, the furnace will exhibit certain behaviors, while a user exhibits different behaviors. You should also think about identifying individual behaviors for the reader. You need to ensure that a person reading your document with no knowledge of the project is able to understand what the program will do.
An example program behavior would be the following: The system needs to monitor the room temperature to ensure that the temperature remains at the user setting. The system turns on the furnace when the temperature falls 3' below the user defined setting. The system turns off the furnace when the temperature rises 3' above the user defined setting. Finally, the system monitors the current temperature to determine if the furnace should be turned on or off.
You should specify not only the internal behaviors of the program but also the behaviors and interactions that the user will need. For instance, a user behavior would be specifying the temperature setting for the room. You should also specify ranges for data. For instance, the user is able to set the temperature between 30' and 120' F (yes you should specify the unit type).
The Design document should be at least two pages. The purpose of the design document is to provide a programmer with no knowledge of the requirement and specification documents the ability to program the system. This implies that the design document specifies exactly what classes, attributes, methods, algorithms, data types, and data ranges are required. In addition, the design document also needs to specify what user interface components are used for each element of the user interface as well as the method the user will use for entering information and the ranges the user can enter. The design document needs to also specify what exceptions the program requires and what should happen when an exception is thrown.
The design document should begin with a high level description of the system, remember the program has not seen the requirement or specification documentation. After the description, each class that will exist in the system should be detailed. You can think of this document as essentially an extended JavaDoc.
Each class description should include the class description, attributes and methods. The class description should provide:
The attribute definitions should include information such as:
Each method specification should include:
The GUI program that you will submit should be a non-functioning UI. The UI should contain all the components that you intend to include in your final submission. The components should be properly laid out using containers as you intend your final program to look. This file should include the standard comments, adhere to the coding standard, and RCS is to be used.