CS121 Software Development
Final Project
In the third and final project, you will conceive, design, and develop a game of your choosing. You
will present your game during the last class period of the semester. At that point your game and
all documentation/artifacts must be submitted via the cs121submit program.
As in previous projects,
your team grade will be based on the game (50%) and the process (50%). Your personal
grade will be the team grade multiplied by a factor that reflects your contributions.
You are expected to use good software development practices and design principles in the project. For example,
-
You should use CVS to manage your documents and code. Here is a tutorial
to get started.
-
You should use the team wiki to link all documents, executable, and personal
logs.
-
To develop your concept, you should identify use cases, elaborate important ones, and develop a set
of requirements that are described in a game design document. This document should include a development
schedule in which you set out the major milestones of the project.
-
You should design before you develop. While your high-level design may evolve over the course of
the project, it is important to have one. Document your design and its changes using UML class diagrams,
sequence diagrams, and whatever other tools you find useful.You are expected to use good object-oriented design and, when appropriate,
design patterns. You should document how design patterns are used in your game.
-
You should practice incremental design and development.
Get a rudimentary game working
early on then work to fill in the details. Use prototyping to test ideas quickly.
-
Your process should be driven by risk analysis. You should produce risk reports at least once
a week that elaborate the major risks and how they will be tackled. You should specify
concrete and specific
objectives to demonstrate that the risk is resolved. Your risk report should state
who is assigned each risk and
discuss back up plans in case the risk cannot be resolved. Last but not least,
the report should also provide a detailed update on
the risks identified in the previous report.
-
You are expected to use good object-oriented programming practices and good style.
-
If you are personally responsible for producing some code, you must also document your unit test plan for the
code.
When you check new or modified code into cvs, you are responsible for
making sure the project compiles and that your code has not broken anything that worked before.
-
You need to write a users' guide. Since this project will be graded after you've gone home, it is
extremely important that I am able to understand how your game works.
-
You should build a web page that links a game executable (zipped) and the users' guide so others can
access the game in the future.
-
You should write a final report that (at least) describes your final game, its design, known problems, and future
enhancements.
If you are unclear on any of these issues, or if I failed to address an issue, please see me. It is
up to you and your team to plan and execute this project. I am more than willing to advise you but
I will not set your deadlines or plan your project. If personnel issues arise, please let me know.
I will be happy to intercede. If you have any problems, concerns, or questions contact me.