================================================================ CS314 Spring 2016 Grading Rubric (DRAFT) Assignment 5 (A5): Apply Design Patterns to Enhance the Adventure Game ================================================================ Total Possible Points: 100 ============================PART 1============================= Team Portion of Grade: overview.txt - 10 possible points. =============================================================== - Names of all team members: 1 pt - Specific contributions by each team member: 1 pt - Time spent by each team member: 1 pt - The CSU Honor Pledge: 1 pts "I have not given, received, or used any unauthorized assistance." with the team members' names listed below. - Description of the mechanism that you used to support "levels of difficulty". 2 pts Explain how you implemented and used the Abstract Factory design pattern. - Description of the other enhancements that your team has made to the Adventure Game. 1 pt - Describe what a user needs to know to play the game. 1 pt. - Any special instructions about running your program. 1 pt. - Test information: 1 pt - Number of new tests written, number of defects found, number of defects fixed =============================PART 2============================= Team Portion of Grade: Completeness of submission: 10 possible points. ================================================================ - If Android used: Android project zip file: - Android source files (both Java and xml files) These can be from Android Studio or the Eclipse Android plug-in. - If you used Eclipse: Eclipse project jar file. - The zip or jar file must have separate packages for the game model, view, and test code that are readily identified by name ("model", "view", and "test" packages). - The overview.txt should be in the src directory and contain the overview.txt file, and other source directories. - A UserStories directory must contain all the user stories for A5, each in a separate text file, e.g. A5-US-1.txt for user story 1 and A4-US2.txt for user story 2. Any additional split stories and all tasks must be documented in the same file as the split user story from which they were derived. - All split user stories, and any user stories that have not been split, must have associated tasks, which teammember worked on the task, and both estimated and actual time taken included in the file. =========================PART 3 ================================ Team Portion of Grade: Design Quality - 30 possible points. This grade is based, in part, on how consistent your implementation is with your design documentation. Use good object-oriented design and implementation methods: ================================================================ - Architectural design quality - maintain model-view separation: 16 pts. - Correct use of the Abstract Factory design pattern. (10 pts) - No game functionality in Android view classes, Swing classes, or other view files. (3 pts) View classes include only code relevant to the user interface & reference only AdventureGameModelFacade or other View classes. - AdventureGameModelFacade makes all connections to internal Adventure Game classes.(3 pts) - Modifications represent clear logic: 7 points - Program logic and data structures are clear and simple. - Aim for high cohesion and low coupling. - Maintain Model-View separation. - Declare all state variables (attributes, instance variables, fields) private, unless there is a very good reason to declare them protected, or public (very rare). - Capitalize the first letter in class names. - Use lower case letters for variables that reference objects. - Accurate documentation of the public interface for each class. - Class Diagram of your Java Model code involved in Abstract Factory Pattern: 7 pts - Diagram matches program code. - Includes the classes, interfaces, and methods involved in the Abstract Factory design pattern. - Indicate multiplicity, associations, and inheritance relationships. =============================PART 4 ============================ Team Portion of Grade: Functionality - 30 possible points. Determined by a scheduled demonstration. This is for having a running system that allows someone to play the game as specified, through the Android interface. You do not get any functionality points if your program will not compile or run. Android implementations should run in Android Studio as through an Android emulation, or in an Android Device. Swing implementations should run in Eclipse. ================================================================ - Player can move from room to room: 5 pts. - must be able to explore the cave system correctly. - must be able to bump into walls & remain in same room. - player can bring the gold bars to the outside. - should not crash. - Level of difficulty functions work: 10 pts. - player can start a new game at either level 0 or level 1. - level 0 and level 1 features work. - Save and restore works: 10 pts. - player can save current game - player can restore a saved game and return to the saved game state. - Player can pick up Items and drop them: 5 pt. - When the player pick up an Item it moves from the room into his/her hands. - Player can carry 2 items. - Room can contain 2 items. - Player can carry the goldBars out of the cave. - System acts appropriately if the player. - tries to drop an item that is not carried. - tries to drop items when his/her hads are empty. - tries to pick up items when the room is empty. ============================PART 5 ============================= Creativity - 10 possible points. ================================================================= This grade is based on the level of added enjoyment that the enhanced game provides a player. ============================PART 6=============================== Individual Portion of Grade: Development Process - 10 possible points. ================================================================= - GitHub logs show no work is done directly on the master branch: 5 pts. - GitHub logs show the student has requested reviews of their proposed changes to the master: 5 pts.