Purpose/Overview
Give a brief, high-level description of what this piece of software will do.
This is pretty much you restating the problem as you understand it.
Requirements
What are the functions that this software is supposed to perform?
Try to phrase them in a clear and concise manner.
Classes
What classes do you need to create?
- Describe the purpose of each class.
- What member data will they have? Why?
- What methods will they have? Why?
Make sure you describe each member variable and member function.
Global Data/Functions
What global data & functions do you have? Describe any
pieces of your program that are not within a class.
You don't need to describe every single variable you use,
but are there any global variables or functions that are
integral to how your program works?
High-level Architecture
What is the high level flow of data through your program?
How will all of your objects interact?
What are the algorithms that your code will use?
You will spend a lot of time describing in detail all the
objects and functions that you'll use,
but you need to talk a bit about how they all fit together.
User Interface
Describe how the user will interact with your software.
If you have a GUI, how will it be laid out (provide a sketch if possible)?
- Where will buttons and other controls be located?
- Describe how the user will interact with it.
If you don't have a GUI, what kind of interaction will the user have?
- What data will the user enter?
- How will they enter it?
Test Cases
- How do you plan on testing your system?
- What are the potential problem cases?
- What are some nominal test cases?
- For each function, describe some possible tests (what data would you pass in? What results do you expect?)
|