Computer Science 121 - Project Phase 2
Alpha design and implementation
Spring 2011
Project Phase 2 Deliverables
Project Description
- Project Overview
- Project Component Description
- Grading
- Rules and Submission
1. Overview
In phase 1 you developed your game concept. In phase 2 you'll develop
an alpha release, which is a small, playable game that will
be tested in the Hillside classrooms. The alpha release will be a
scaled down version of your final game, but
one that provides a good representation
of the gameplay experience. In terms of implementation, the alpha
release should include a stable architecture
and user interface. It is up to you to define your alpha release then
carry out its planning, design,
construction, and testing.
2. Project Components
(25 pts. total)
For phase 2, you will be working both top-down and bottom-up to produce an alpha release. It is up to you to define your alpha
but it is important that it incorporate core architecture and provide a playable experience. The top-down efforts
include architecture, UI, and test plan designs
and reviews. Though The bottom up efforts are primarility prototypes and it is your job to define these well,
based on risk assessment, to ensure your alpha can
be completed on time. Your weekly meeting notes should include a rationale for your choices!
As in phase 1, your wiki should include:
- Meeting times/places (future and past) with links to meeting notes
- Weekly objectives including risk analysis, owners for each task (using tickets), and for prototype a clear articulation of its
function, features, and goals.
- Individual work logs
- A deliverables table that includes for each deliverable (as appropriate) its due date, possible point value, percentage
grade distribution to team members,
grade earned (to be filled in by our grutors), late day accounting,
link to a separate
wiki page that documents your progress/process on the deliverable, and a link to your actual submission.
Your management plan will be graded on clarity and completeness
- (5 pts) initial set up (due 2/15)
- (20 pts) degree to which it is maintained and adapted over the course of phase 1 (5 pts. each week,
evaluated on 2/24,3/3,3/10, and 3/24)
(40 pts. total)
A major component of the phase 2 work is development of your software architecture. You will develop a design,
the design will be reviewed by another team, and then you'll revise the design based on review recommendations.
2.2.1 Architectural Design Draft (10 pts.)
Your initial draft design will include:
- Use cases your architecture will realize (these will typically be the "must have" use cases for your alpha release)
- Domain diagram based on your use cases
- Initial class diagram identifying major responsibilities for each class; important models/algorithms and their parameters should
be identified
- Sequence diagrams illustrating how the classes collaborate to realize the use cases
- Critique of the design with respect to good design principles
Each section described above is worth 2 points and will be judged for clarity, correctness, completeness, and quality.
2.2.2 Architectural Review Package (10 pts.)
The second draft of your architecture should address issues raised in your critique. It should also define the important components of
the class interfaces and any input/output specifications. Finally, the underlying models and major algorithms and their parameters should
be described. This design will be reviewed by another team. You will prepare an architectural review package that
includes the following:
- Table of contents
- Introduction
- Architectural requirements including use cases
- Design documents including class diagrams, sequence diagrams, I/O specs, description of important models/algorithms/data structures
- Critique (problems you know about and ideas for resolving them)
- Where/how to access additional information (e.g. prototypes, proposal)
Your package will be evaluated for clarity and completeness (5 pts). Your design will be evaluated for quality (5 pts).
2.2.3 Architectural Review (10 pts.)
You will review another team's architectural design with the goal of answering the following questions:
- Will it be able to meet the project requirements?
- Is it practical to build, test, support?
- Does it satisfy good design principles?
Each team member will be assigned responsibility for some aspect of the architecture. That person will come to the design review
with an understanding of their portion, its strengths and weaknesses, and be able to lead discussion during the review.
You will be graded on your preparation and how well you can answer the questions described above.
2.2.4 Final Architecture (10 pts.)
Based on the design review and your own critique, you will finalize your architecture and critique it.
It will be graded on:
- (1 pts.) Appropriate choice of use cases
- (3 pts.) Quality of design (does it follow good design principles)
- (3 pts.) Completeness of the design (is the design able to realize the use cases)
- (3 pts.) Thoroughness of your critique
(30 pts. total)
You will design the user interface of your game (not the just the alpha
release), user test it, then revise the design based on the reviews.
2.3.1 Initial UI Design (10 pts.)
You will develop a preliminary UI design using whatever technology use deem best (e.g. paper, electronic wireframes, etc.).
You will critique the design in terms of usability principles. Your grade will be based on the
- (3 pts) quality of your design (how well does it measure up to good design principles)
- (3 pts) completness of your design (will it work for your final game?)
- (4 pts) the thoroughness of your critique (are your choices justified? are potential problems identified?)
2.3.2 User test (10 pts.)
You will user test your UI design on your classmates and on your grutors. You should test the entire design but focus, in particular, on the questions
raised in your critique. You need to do a run through with your teammates of the UI test; you should videotape the process
and upload the video to your wiki and post a copy to the Muddy Hill Games blog. You should also upload all material used in your tests and the test prototocol to
your wiki. Your grade will based on
- (3 pts) quality of your preparation
- (3 pts) how well you carry out the test
- (4 pts) effectiveness of your tests at identifying problems with your design
2.3.3 Final UI Design (10 pts.)
Your final design will graded on
- (4 pts.) quality of your final design (does it follow good design principles)
- (4 pts.) quality of your wireframes (do they clearly articulate your deisgn)
- (2 pts.) how well you adapated your design based on user tests
(35 pts. total)
You will develop a test plan, submit it to review, and revise it as necessary. You will execute it over the course of development, critique it
regularly, and update it as necessary.
2.4.1 Test Plan(10 pts.)
You will develop a test plan that includes unit, component (class or collection of classes), and
integration tests. You will use test-driven development; that is you will devise tests for your code before you
implement, then use the tests to evaluate the implementation. You will also use regression testing; that is a suite
of tests your code must pass every time you update the repository. Your test should include the following:
- For each non-trivial method, devise unit tests that, in particular, test boundary and error conditions.
- For each component, identify the areas of high risk (where errors are likely or where they would be difficult to
track) and develop component (black box and white box) tests.
- Identify areas of high risk cross-component functionality and devise appropriate (black box) tests.
Finally, you will document your plan and provide a rationalization for your choices.
Your test plan will be evaluated (by another team as well as the grutors) as follows:
- (5 pts.) coverage of your test plan
- (5 pts.) feasibility of your test plan
- (5 pts.) risk analysis
- (5 pts.) description and rationalization
2.4.2 Test Plan Review(10 pts.)
You will review another team's test plan. Each person on your team will be assigned an aspect of the review and come prepared ot
lead a discusion on that aspect during the review. You will be evaluated on your preparation and assessment.
2.4.2 Weekly Test Reports(15 pts. total)
You will implement your test plan and report weekly on progress, problems encountered, and changes to your plan. (Note, as your code
evolves, so should your plan.)
(40 pts. total)
You will plan and implement one or more prototypes or code advancements every week. The choice of what to focus on
should be based on risk analysis.
You will document your goals at the start of each week as well as how you plan to test/assess the results.
You will conduct an assessment at the end of the week.
Your weekly prototypes/code advancements will garner up to 10 points as follows:
- (3 pts) Appropriateness goals
- (3 pts) Quality of execution
- (3 pts) Thoroughness of assessment
- (1 pt) Documententation
(25 pts. total)
Your alpha release deliverable will include the game executable and
installation/execution instructions, source code, UML documenting the
implementation,
an evaluation of your testing and final bug report, and a discussion of
how your implementation differs from your original design. You will also give an in-class presentation and demo.
2.6.1 Executable (10 pts.)
Your executable will be graded for quality based on the quality:
- (5 pts) Quality as game: Is it a playable game? Does it convery the look and feel of the final game?
- (5 pts) Quality as software product: Does it work? How easy is it to break? How clean is the code?
2.6.2 Presentation (5 pts.)
You will give a 10 minute presentation/demo in class that will be evaluated by your classmates.
<\p>
- (2 pts) Selection of material to present: Does the presentation include/exclude the right materials
- (2 pts) Organization of selected material: Does the talk flow? Does it tell a cohesive story?
- (2 pts) Slide quality: Are the slides interesting? Are they well organized? Do they contain the right information?
- (2 pts) Presentation: Are the speakers prepared? Did they present material clearly? Did they answer questions well?
- (2 pts) Demo: Did it work? Was it well prepared? Did it convey a sense of the game?
2.6.3 Documentation(10 pts.)
Documenting your design, tests, and code should be an ongoing process across Phase 2. When the alpha release is complete you should
provide a wiki document that provides a roadmap to the various forms of documentation including:
- UML: use cases realized by the alpha release; class, sequence and other diagrams that provide a snapshop of your
architecture and how it works to realize your use cases
- Tests: results of UI tests and test plan execution as wells as known bugs/issues report
- Installation/users guide: what do I need to know to run/play your alpha release
- Coding conventions used
Each of these components is worth 2 points. In addition, you'll garner up to 2 points for the quality of your in-code documentation.
(10 pts.)
You will, as a team, perform a postmorten on the second phase of the project and write a report. The report should first
address the work products your produced through the phase and then your processes.
Product Postmortem
Which work products were most successful? Which were least successful? How did the outcomes compare to your goals? What are the major
problems in the alpha release? Why are those problems present and how could they have been avoided? What will you do in the next
phase to correct them?
Product Postmortem
Which processes were most successful? Most beneficial? Which were least successful/beneficial? What can you do to improve
your processes?
How did the outcomes compare to your goals? What are the major
problems in the alpha release? Why are those problems present and how could they have been avoided? What will you do in the next
phase to correct them?
This phase of the project is worth a total of 215 points. For each component,
the team will assign a percentage to each team member based on their contributions to the component
(the percentages should, of course, add up to 100%). Grades for each team member will be based on a
contribution weighted average of earned points for the components as well as peer reviews. The resulting score will be normalized
based on team size and overall scope of project.
It is your job to choose an appropriate scope to your project.
Your wiki should include deliverables table that includes for each deliverable (as appropriate) its due date, possible point value, percentage grade distribution to team members,
grade earned (to be filled in by our grutors), late days used,
link to a separate
wiki page that documents your progress/process on the deliverable, and a link to your actual submission.
Each team is entitled to four late days that can be applied to any phase 2 deadline except those involving in-class scheduled events
(e.g. review packages or reviews). A late submission that
is not redeemed with late days loses ten percent of its value for
each day missed. Note that a late day is only good for one
deliverable, subsequent delays require additional slip days. For example, if a prototype is one day late,
and that delays the final report by a day, you need to use two late days in order to avoid penalties.
You should apportion responsibility for each late day to team members. In the previous case, if one person was responsible
for missing the prototype deadlines, both late days should be attributed to that person.