Case Study Three: Happy Duck Game.
You are hired by a company GameX to create an online game called Happy Duck. The point of the game is to have your ducks avoid being hit by mud pies and other objects. The end-user can select a duck as their main character. Each ducks can fly and quack throughout the game. You decided to use Agile for your software development. In the first sprint, the clients have provided the initial characters and behaviors for the game. During the design sessions, your team of developers decides to use the strategy pattern. The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
US01 US02 US03 US04 As a developer, I want to create the following ducks for the game: Joey, Decoy, Robo and Bubba, as characters a user can select to play the game. As a developer, I want each duck to fly and quack, as the characters move around to avoid the mud pies and other objects. As a developer, I want my duck with the flying optional actions: Fly with boosters, fly with wings and not fly so that they can avoid the mud pies and other objects. As a developer, I want my duck to make the following quacking noises: mute, squeak, and quack, when they avoid or get hit by the mud pies.
1. Apply the following object oriented principle: Separate what varies. Remember the concept of nouns (Characters) and verbs (actions). (10 points) Characters Actions
2. Apply the following object oriented principle: Program to Interface. Provide the interfaces and specific behaviors for each? (10 points) Interface behaviors
3. The clients request a UML USE CASE diagram in order to understand what types of actions each duck will perform. Draw a USE CASE diagram with the top-level interaction and system box. No need to include relationship labels. Include the following actors and behaviors: (20 points) ? ? ? Joey and Bubba’s action: fly with wings. Robo’s actions: can fly with Boosters, not fly and fly with wings. Decoy’s action: not fly.
4. Arrange the classes into the following categories: Superclass, Concrete subclasses, interfaces and concrete behaviors. Use proper naming conventions when naming your classes and interfaces. Note: Classes start with uppercase and no space is allowed e.g. JoeyDuck, DecoyDuck. (20 points) Reference: http://java.about.com/od/javasyntax/a/nameconventions.htm Superclass Concrete subclass Interface Concrete Behaviors Concrete Behaviors 5. Apply the strategy pattern. Draw a UML diagram with ALL the classes you noted in Q4. Draw the specific arrows showing the relationship between the Superclass, Concrete subclasses, interfaces and concrete behaviors. (20 points)
6. After your sprint’s demo, GameX clients are thrilled with what you have designed. They want to add three new user stories for the game. Draw the modified UML class diagram by applying the strategy pattern. (20 points) US05 US06 As a developer, I want to create a new duck named Donald, in order to play the game. As a developer, I want each duck to swim in order to avoid the mud pies and other objects. 2
As a developer, I want my ducks to swim with the following actions: dive, paddle and back float in order to avoid the mud pies and other objects.
Note: ? Save your diagrams as IMAGES e.g. png, gif or jpg and insert them in your document. Do not embed files in the document or send separate files for me to open. ? Penalty for late submission of deliverables and assignments: 5 points will be deducted each day the assignment is late. Three weeks late (0%).
PLACE THIS ORDER OR A SIMILAR ORDER WITH US TODAY AND GET AN AMAZING DISCOUNT