CS-314, Spring 2016
Assignment 4. Android Adventure Game (DRAFT)

Adding an Android GUI to the Adventure Game.

This is an assignment with both team and individual portions.


Check the A4 discussion on the Discussion board regularly.

(DRAFT: Expect Updates.)


DUE Wednesday 30 March 2016, 11:55 PM

CREDIT: 100 assignment points possible.

Updates:


User Stories:

User Story 1: As a game player, I want an improved GUI for the Adventure game, so that I can play the game on an Android device.

Acceptance Criteria:

  1. Split story A: As a CS 314 student, I want to create a new GUI as a new game view, so that the game will run on an Android device. (See the Notes in the Description section below for additional information you need to deliver the acceptance criteria listed below.)
  2. Acceptance Criteria (AC):
    1. The new interface works on the Android platform.
    2. The game retains its Model-View separation design: All 'view' software only accesses functional parts of the game through the AdventureGameModelFacade class.
    3. New tests for your Android Java code are written and pass. Any defects they find are fixed.
    4. All previous JUnit tests are run and pass.
    5. Meet 'Definition of Done' (DoD), below.

  3. Split story B: As a CS 314 student, I want to evaluate my Android GUI with respect to usability, so that I can provide evidence and rationale for subsequent GUI design changes.
  4. Acceptance Criteria (AC):
    1. Two usability goals are evaluated:
      1. Efficiency of the user interacting with the user interface to complete a task. A typical task related to efficiency might be to explore all rooms. Another task related to efficiency might be to find treasure ("gold bars" for example) and bring it out of the cave.
      2. Effectiveness of the user interface in causing the program to follow the user's intent. A typical task related to effectiveness might be to go in a desired direction. Another task related to effectiveness might be to pick up and/or drop the desired items.
    2. Two questions based on specific user tasks are created for each of the 2 usability goals.
    3. Answering all 4 questions generates data that can drive design changes in the GUI, and that can provide rationale for design improvement. No question can be answered with a simple "yes" or "no" answer.
    4. Meet 'Definition of Done' (DoD), below.

Definition of Done (DoD):

For all user stories:

For CS314 development:

Notes:
 

Android Studio:
  1. Android Studio is available on several machines in the lab. You can also install Android Studio on your own computer from http://developer.android.com /sdk/index.html

  2. Once you have installed Android Studio (or Eclipse and the Android SDK and its necessary components, and the ADT plugin), you are ready to develop your applications. However, we recommend that before developing the project, you follow the steps described here to develop a simple Hello World application. If you have already installed a platform skip the "Install a Platform" section. Once you have successfully created and executed the Hello World project, try developing simple layouts and widgets in your application. This tutorial provides examples to create simple layouts and widgets. The "Form Stuff" section contains tutorials to create radio buttons, text fields, buttons, some of which you will be using in your project.

  3. You will want to be able to have your Android interface reference the Java code developed for Assignment 3. Here is a good way to do this:
    1. Create a new Android Studio project. This should be a Java project, not an Android project.
    2. Set the compilation level to 5.0.
    3. Put the Java code (and other needed files) from Assignment 3 into the project. You can modify this code and correct any faults found during testing on this code. Compile and test this code.
    4. Now add this Java project to the build path of the Android project with your Android code.

    You should now be able to call methods in AdventureGameModelFacade from your Android code.

  4. References:

Tasks:

1. Continue splitting the user stories if needed. With your team, estimate story points for all split user stories. If you find a split story still has 13 or more story points, split it.

2. With your team, create the tasks needed to implement each split user story so that the Acceptance Criteria can be met. Make sure to meet the definition of done listed above. Add to your team's definition of done if needed. Estimate the number of hours for each task. Create tasks that are between 1 and 10 hours long.

3. Decide which teammembers will be working on which tasks.

4. Add the split user stories and tasks to the UserStory folder of your project, one text file for each user story: e.g. A4-US-1.txt. Please see previous assignment A2, A2-US-1.txt, for an example file format; estimated story points and task estimated and actual times must be included.

5. As each person finishes a task, update the task information in the respective User Story file to include the time it actually took to complete.

6. Make sure the plain text file in the src directory called overview.txt has been modified by each person so that it contains the information required in A4rubric.txt.

7. Create a zip file of your Android Studio project or jar file of your Eclipse project. (WATCH FOR UPDATES TO THE SUBMISSION REQUIREMENTS): The zip (or jar) file should be named cs314Android_A4. It should include the entire Android Studio project, including all source code files, test code source source files, the overview.txt file, and the user story file(s) (e.g. A4-US-1.txt). (See A4rubric.txt, PART 2 for details on the required jar file structure.)

8. Submit your zip file (or jar file) to the Canvas dropbox for Assignment 4 (A4) to check-in your assignment.

Post questions or comments about this assignment, or problems with the design to the Assignment 4 Discussion on the Canvas discussion board, or send email to cs314@cs.colostate.edu.


Grading: (for details see A4rubric.txt)

1. You will receive a team grade based on the Canvas submission, new tests/test results, usability evaluation, design, and game functionality.

2. You will receive an individual grade based on GitHub logs of your repository submissions and review system comments. Each team member is expected to have created and used branches for their own work for A4, with frequent pushes from their local systems to GitHub, and review requests when they are ready to merge to the master. Each team member is expected to review code changes proposed by their teammates and provide comments.


Return to CS-314 Home Page