ITECH3201 Software Engineering: Analysis and Design
Assignment 2
Important Note
This assignment requires the use of a provided code base. You must use the code provided in Moodle. Do not use code
given to you by another student (or past student) as you will be awarded ZERO MARKS for the assignment task.
Overview
You are required to modify and logically extend the functionality of the Maze Game introduced during lectures, via the
modification of the code base as well as documentation and implementation of various user stories. You will use the
Boost methodology discussed during lectures, which requires the use of pair programming. Working individually on
programming tasks for this assignment is strongly discouraged and will only be approved when necess itated by
circumstances – a group of three is preferable to an individual working alone.
The code base provided for this assignment has already implemented the “warm up” and some “sets”. You will be
implementing numerous other “sets” for this assignment using the Boost methodology. The “warm down” stage is not
required.
You are free to take ideas discussed during lectures and implement these in your own version of the code base provided
in Moodle for this assignment.
This assignment will be marked according to the functionality of your code, in addition to the elegance and extensibility
of your design and quality of your documentation.
Note: It is recommended that you spend some time familiarising yourself with the provided code base prior to beginning
any work on this assignment. You should start by spending some time exploring the structure of the code to gain an
understanding of the roles each class plays within the system and then complete Lab 7.
Timelines and Expectations
Percentage Value of Task: 20%
Due: 16:00 Friday of week 11, SGU Semester 1, 2017
Minimum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
S1. Apply software design principles to design and document software that utilises
design patterns
S2. Analyse source code and develop comprehensive unit test suites
S3. Operate CASE software to document the design of a piece of software
S4. Apply refactoring to identify poor programming practice in existing source code
and improve its structure and readability
S5. Apply an appropriate software development methodology to the development of
a software system
Assessment Details
For the 2018 Chinese New Year, you have been assigned the task of implementing a maze game in which a
player prepares for Guo Nian on your university campus. Players will roam around different locations at your
university, collecting various items in preparation for Nian’s arrival. One location at your university will be the
final destination in the maze, where the encounter with Nian occurs. Scaring Nian away wins the game.
This assignment must be completed in pairs.
1. Design and implement a custom environment for your game. This requires:
a. Creating your own hand-drawn representation of the mazegame locations map and changing
the HardCodedData file to reflect the details on this map. This needs to include:
i. at least six (6) locations to travel through, in addition to the starting location of your lecture room
for ITECH3201. One of the six custom locations is to be the place where Nian will arrive. Another
must be a university shop where goods may be bought or sold. The locations mus t be linked so
that the player is able to move around the university campus until they arrive at the final location.
These links must be clearly identified on the map. Note that all of the locations provided in the
start up version of the code base must be removed from your game.
ii. For each location, documenting the non-player characters and items that will be available in that
location. The final location will need to include the Nian as one of the non-player characters.
The items will be available for the player to use when they encounter Nian, so should include an
assortment of red items, candles, fireworks and anything else that makes noise, as well as
items that would be less effective at scaring Nian.
2. Implement each of the following deliverables / milestones:
a. functionality as detailed in Lab 7 and Lab 8.
b. commands to enable game play. You may customize these commands to suit your variation of the
game, but at a minimum, need to include:
i. showInventory, pickupItem and discardItem, to show all items currently held by the player, to
place an item from a location in the player’s bag, and to remove an item from the player’s bag
to leave in the current location.
ii. buy and sell items from the university shop. The commands to buy and sell items must only be
available when the player is in the shop.
Ensure that weight restrictions are not exceeded and that the context for each command is appropriate. For
example, buying and selling of items should only be able to occur in a designated trading location
c. basic battle functions, allowing a player to use items to scare off Nian. A player may flee the battle or
continue to battle until either the player or Nian gets scared and runs away. The end result must not be
hard-coded, and neither Nian nor the player may have their attributes configured in such a way that the
final outcome is pre-determined. Note that battle functions should only be available when the player is in
Nian’s presence. Any player who scares Nian away wins the game.
3. Produce a short video (up to 5 minutes) and upload this to YouTube as an unlisted file. A link to view this on
YouTube must be submitted with your assignment. All team members must actively participate (be visible
throughout the recording and contribute equally to the discussion) in the vid eo to:
a. Provide a demonstration of the game – how the game play works and how this was implemented
b. Explain the role of design patterns in the game, clearly identifying the functionality where design
patterns have had an impact and how this has occurred.
c. Reflect on the use of a development methodology in creating the game. How did this assist, or make the
development of the game more complicated?
This video will be assessed based on the clarity and accuracy of the explanations and how clearly it
demonstrates an understanding of how the game was coded, the design patterns used and the impact of using a
development methodology. All required design patterns must be implemented to be eligible for full credit for this
component, otherwise marks will be available on a pro-rata basis. All team members must contribute equally to
the discussion and be visibly involved in the demonstration. The quality of the video itself will not be assessed –
using a mobile phone to record this is fine. If you do not have access to recording facilities, please speak with
your tutor prior to week 9 to make arrangements to have this recorded.
4. Prepare a report, to be submitted as a Word document or a PDF, which includes:
a. The student number and name of each person on your team
b. User stories for each of the deliverables / milestones
c. Class diagrams for Lab 7 and Lab 8
d. Sequence diagrams for any two (2) of the game play commands of your choice. These must not be
related commands; for instance, pickupItem and discardItem are the reverse of each other, so only
one of these could be included.
e. A link to the YouTube video demonstration
Individually
5. Prepare an individual report that includes:
a. A statement of your own personal contribution to the assignment
b. A statement of your partner’s personal contribution to the assignment.
Please note that assignments will NOT be marked and zero marks will be allocated if the individual statements of
personal and partner contributions are not submitted.
Submission
Each student must submit a single zip file which contains all the assignment files. This includes a photograph or a
scanned image of your hand-drawn map, source code for each deliverable / milestone, a report containing UML diagrams
and user stories, and your own individual contribution statement.
Pre-Requisites For Marking
Statement of personal contribution and partner’s contribution
Task Available Student
Marks Mar k
Paired Tasks – Note: penalty of half the available marks for work completed individually
without prior written approval from the lecturer
a. Functionality as detailed in Lab 7 and Lab 8
b. Hand-drawn map detailing custom game environment, implemented in the game,
with at least 6 different locations from the university campus (plus the starting lecture
theatre) including at least 1 shop, and items to allow for full testing
c. Item management commands:
i. showInventory / pickupItem / discardItem
ii. buyItem / sellItem
d. Appropriate management of weight restrictions
e. Implementation of battle sequences between a player and Nian, including variable
outcomes and the ability to flee. This includes using various items to assist in the
battle.
f. Context-specific commands: purchases / sales only available in a shop; battle only 10
available in presence of Nian
g. Demonstration video uploaded as an unlisted file to YouTube, of no more than 5
20
minutes duration, providing a game demonstration, discussion of required design
patterns and development methodologies as per assignment specification description
h. Report, including:
a. User stories for each of the deliverables / milestones 5
b. Class diagrams for lab 7 and lab 8 functionality 5
c. Sequence diagrams for any two (2) unrelated game play commands 10
d. Link to the YouTube demonstration video 0
Feedback
Assignments will be marked within 2 weeks of submission. Marks will be loaded in fdlGrades, and a
completed marking sheet will be available via Moodle.
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is
one's own without properly acknowledging that person. You must not allow other students to copy
your work and must take care to safeguard against this happening. More information about the
plagiarism policy and procedure for the university can be found at