This assignment is to be completed with a new partner of your choosing. Choose carefully, because you will have the same partner for Homework 7 as well.
Purpose
To begin designing larger programs.
Problems
For this assignment, you will write design a document (specification) based on reverse-engineering a space shooter game that we provide. “Reverse-engineering” is a fancy way of saying that you will play the game, observe it carefully, and think about how it must/could work.
We have provided playable example games for Windows, Mac, and Linux/x86 (32 bit or 64 bit). (We think that should cover everyone, but if not, please let us know. For Mac users, if you see the message “can't open application from unidentified developer,” press the Control key and click the App. Choose “Open” from the dropdown menu.)
Write the design document as a plain text file
What?
Plain text means a file with the extension .txt
,
which you can create with WordPad on Windows or
TextEdit on Mac. Or you can get a fancier text editor
like Sublime Text.
,
so that it’s easy to discuss by email.
(It shouldn’t need to be an attachment; this means
no Microsoft Word.)
Be sure to list both partners’ names and email addresses at the top of your design document.
The design document must include:
- Synopsis: A high-level description of what the program does and how to use it.
- Parameters: Defined constants that the program will depend on. These determine things like the size of the window or colors of things.
- Information Analysis & Data Definitions: A description of the information your program needs to represent, the necessary data definitions, and discussion of relevant representation issues.
- Main Program Tasks: A list of main things the program needs to do, with high-level descriptions of how you might solve them.
- Wishlist: A list of the functions (both the
main
big-bang
handlers and important helpers) that you anticipate needing, along with signatures, purposes, and any other information you deem helpful for understanding your design. - Open Questions & Anticipated Difficulties: What don’t you know yet, but will need to figure out at some point? What do you think might be hard?
- Implementation Plan: In what order do you plan to tack the programming tasks? Think about how this plan could help you adapt if you find you need to make changes to your design.
The sections must be in the above order, and must have prominent, numbered headings. Make it easy for your mentor to digest your document.
You can check homework 7 for list of features your space shooter needs to support. To give you an idea what the document you write should look like, see this example design document, which describes this program.
Turn In
Before submitting your design document, join a group on Canvas pic, by:
- Visit the People section on Canvas.
- Find the tab for HW6–7 Groups.
- Join a HW6–7 Group group together with your partner.
Do not create a group under Student Groups. It will not work for submitting the homework.
After joining a group, submit through Assignments → hw6 as usual.
You may submit early to get your response earlier. You may also revise your design document based on feedback and resubmit before the deadline.
You may find use this Piazza post helpful to search for a teammate.