Queen's Logo

Beyond Code: An Introduction to Model-Driven Software Development (CISC 836, Winter 2020)

Assignment 2 (MDD with RSARTE)

Due: Thurs, Feb 13

  1. Purpose of the Assignment:

  2. Preparation:
    1. Note that this is an individual assignment. That is, each student must prepare and submit his/her own solution. All work submitted must be your own. Queen's Arts and Science regulations on Academic Integrity are in effect and will be enforced, https://www.queensu.ca/artsci/students-at-queens/academic-integrity
    2. The RSARTE installation that you used for Assignment 1 will also be used for this assignment.
    3. Make sure that you are aware of the design guidelines discussed in class.
    4. If you don't know it already, familiarize yourself with the 'Rock, Paper, Scissors' game.

  3. Problem Description:
    In this assignment, your task is to use RSARTE to design and develop an implementation of the Rock, Paper, Scissors game. More precisely, the implementation should simulate game play for two simulated (i.e., non-human) players.

    Game play consists of a sequence of rounds. In each round, the referee should ask each player for their choice, collect the responses, and determine the outcome. Each round can have one of three possible outcomes: Player 1 wins, Player 2 wins, or there is a tie (because both players returned the same choice to the referee). When asked for her choice, a player should randomly return one of the three possible choices (Rock, Paper, or Scissors). The choice should be determined using a random number generator.

    The number of rounds played in a game should depend on a command line parameter bestOf. The game should end as soon as a winner can be determined and after bestOf rounds the latest. In other words, the game should end as soon as it has become impossible for one player to lose (and for the other player to win), assuming a maximum of bestOf rounds. For instance, if bestOf is 1, game play always consists of exactly 1 round. If bestOf is 2, game play always consists of exactly 2 rounds. However, if bestOf is 3, game play could end after 2 rounds (if one player has won both of these rounds), but must end after 3 rounds. If bestOf is 7, the game could end after 4, 5, 6, or 7 rounds. Note that regardless of the value of bestOf, a game can always have 3 different outcomes (Player 1 wins, Player 2 wins, or the game is tied).

    Your design should

  4. Task description:

  5. What to hand in:
    As for Assignment 1, export the project containing your final system (i.e., the model with the most functionality) and the 'ReadMe.txt' file into a .zip file and upload it to OnQ (again, no need to include the generated code into the export). Use '[firstName]_[lastName]_A2_CISC836_W20.zip' as name where '[firstName]' and '[lastName]' are replaced by your first and last names, respectively.

  6. Marking:
    For Part 1, your model will be marked based on their correctness and completeness (with respect to the assignment instructions and the system descripion), but also using the design guidelines discussed in class. You can find a summary of these guidelines on slides 50 to 52 of the UML-RT slide deck used in class, http://research.cs.queensu.ca/~dingel/cisc836_W20/slides/UML_RT_W20_Parts1To3_4up.pdf. Your answer to Part 2 will be marked based on appropriateness of each of the identified steps and the entire sequence, but also on the clarity of the writing. Your answer to Part 3 will be marked on completeness, precision and clarity.