Assignment 3
Due Date: Friday, Feburary 19th, 11:59 PM
Contents
Introduction
For Assignment 3, your company has decided to expand to a global market. In order to make your game stand out in a crowded marketplace, you have decided to implement a version using the Spanish Deck".
The "Baraja" or Spanish Deck is widely used in Spain, southern Italy, parts of France, Hispanic America, North Africa and the Philippines.
Leaning Goals for this Assignment
This assignment will help you learn the following:
- Work with your team to design and implement changes to your model
- Use UML diagrams to describe the current state of your application, as well as propose changes
- Learn about basic Continuous Integration
- Divide tasks among team members
- Use Github Issue Tracking, Pull Requests, and Branches correctly
Tasks for this Assignment
To complete this assignment, each group needs to do the following:
- You should start by getting your repo setup with TravisCI
Instructions have been posted here: TravisCI instructions
- You will begin by using the code that is currently in your Assignment 2 repo.
If there is some functionality that you would like to implement, you may copy it from any other repo. (Group 05 has a nice implementation of the error functionality, if you would like to incorporate that.)
- Create a UML Diagram of all the classes that are part of your Model. This should be a diagram of they way they are before you have made any changes to your Model. You may create these diagrams by hand, or use a UML tool.
Some good tools are:
TBD
- Review User Story.
Setup a page on your wiki with this user story, as well as complete it by adding in the Confirmation.
Card: As a User, I want to be able to choose which deck to play with, so that I feel the game is worth paying for.
Conversation:
-The user should have the chance to choose which deck they want to play with at the beginning of the game.
-The US deck option should have the deck as currently exists
-The Spanish deck option should support a standard Spanish Deck
The deck consists of 40 cards, divided into 4 suits: Coins, Cups, Swords and Clubs.
Each Suit consists of 1-7, Jack, Knight, and King. The "Ace" is 1, and is low.
-The game logic (such as remove and move) should work for both decks.
Confirmation: This is to be filled in by your group.
- Propose Design Pattern to Introduce using UML Class diagram
Once your group is familiar with the User story, it should develop a UML class diagram that shows what changes are needed to implement this user story. It should include the addition of at least one design pattern. This UML diagram is the "proposal" diagram.
- Develop using TDD Since we will be developing backend Model Code, it should be developed using TDD. Therefore your Model code should have >90% line test coverage.
- Describe actual implementation using UML Class diagram
After you have implemented this user story, you may find that the implementation is slightly different than what you proposed. You should then create a new version of your UML diagram that ACCURATELY represents the current state of your application.
Turning In and Late Policy
To turn in this assignment, someone on your team should make a commit with the string "Assignment 3" in the commit message before, February, 19th 11:59pm. 3
You will get your grade during the Grading meeting. If you need to reschedule your grading meeting, please send an email to the TA's and the instructor.
LATE POLICY:
Each team will have three late days to use for any milestone during the term. These late days will not be given automatically. If you intend to use your late day, you must email the instructor BEFORE the deadline.
Grading Rubric
Here is how this assignment will be graded. Notice that there will be both individual and group scores
Group Grading
|
%
|
Item
|
|
10
|
Setup TravisCI for your project |
|
15
|
Three UML Class Diagrams: Before, Proposal, and Implementation
|
|
10
|
Incorporate one Design Pattern (Hint, it should include object inheritance)
|
|
15
|
Implementation UML Diagram Matches Code Implementation
|
|
10
|
Implemented new User Story as assigned
|
|
5
|
>90% Line test coverage for all classes in Model
|
|
65%
|
Total:
|
Individual Grading
|
%
|
Item
|
Team Member 1
|
Team Member 2
|
Team Member 3
|
Team Member 4
|
|
10
|
Implement at least one Task
|
|
|
|
|
|
5
|
Code merged into Project from Pull Request
|
|
|
|
|
|
10
|
Make at least one comment on the source code (using inline comments) of a teammates pull request
|
|
|
|
|
|
5
|
Have Issue assigned in Issue Tracker
|
|
|
|
|
|
5
|
Attend Grading Meeting |
|
|
|
|
|
35%
|
Total |
|
|
|
|