Assignment title: Information
ITECH7201 Software Engineering: Analysis and Design
CRICOS Provider No. 00103D ITECH7201 Assignment 2 2016 Sem3 Page 1 of 5
Assignment 2
Sem 3, 2016
Overview
For this assignment, you will 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. This is a paired assignment.
Timelines and Expectations
Percentage Value of Task: 20%
Due: 11:55pm Sunday Week 11
Minimum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
Understand the significance of detailed project planning and control, good communication and
documentation and the use of appropriate tools in order to provide a quality product
Understand the distinction between software engineering and programming, and thus the
distinction between a software configuration and a program.
Understand the methods and techniques involved in designing, implementing and maintaining
an information system, in particular using an object-oriented approach
Understand how unit tests are used during software development to assist agile programming
techniques such as refactoring
Work together in small teams to complete a fully documented, detailed design and
implementation of a small business information system
Demonstrate skills in designing and implementing an information system
Assessment Details
You are required to 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 discouraged and will
only be approved when necessitated by circumstances. All documentation, other than the customized
game map, must be completed individually.
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.
CRICOS Provider No. 00103D ITECH7201 Assignment 2 2016 Sem3 Page 2 of 5
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.
Assignment Requirements
In Pairs:
1. Design and implement a custom environment for your maze game. This requires producing
your own unique hand-drawn map of the maze game environment and changing the
HardCodedData file to reflect the locations and items on your map. Seven (7) locations,
including at least one (1) shop, must be included in the map, as well as enough items to allow
for proper testing of the game functionality. For example, there must be sufficient items to
verify that a player cannot collect an item if the weight restriction has been met.
Note: you should not retain the original locations or items from the provided code base in your
version of the game.
2. Implement each of the following deliverables / milestones:
a. functionality as detailed in Lab 7 and Lab 8
b. commands to manage the various item management commands:
i. listItems, getItem and dropItem, to allow listing of all held items, collect a new item
and drop a held item.
ii. equipItem and unequipItem, to wear / wield a held item, and to stop wearing or
wielding an equipped item.
iii. purchaseItem and sellItem, to buy an item from a vendor and to sell an item to a
vendor.
Ensure that weight restrictions are not exceeded and that the context for each command is
appropriate. For example, purchasing and selling of items should only occur in a shop.
c. basic combat functions, allowing a player to attack or to be attacked by a non-player
character (NPC). A player may flee combat or continue to attack until such time as one
combatant loses all life points. The end result must not be hard-coded, and neither the
hostile NPCs nor player may have their attributes configured in such a way that the final
outcome is pre-determined. Note that combat functions should only be available when
the player is in the presence of a hostile NPC, and combat may take whatever form is
appropriate for your game context rather than being limited to just hits with a weapon.
d. Collectable items that, when used, restore life points to a player. The number of life
points regained should be determined by the roll of 2 six-sided dice up to the player’s
maximum health. You can elect to allow these to be used during combat if you wish.
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 to the discussion) in the
video to:
CRICOS Provider No. 00103D ITECH7201 Assignment 2 2016 Sem3 Page 3 of 5
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.
Individually:
Prepare an individual report, to be submitted as a Word document or a PDF, which includes:
1. The student number and name of each person on your team (including yourself)
2. User stories for each of the deliverables / milestones
3. Class diagrams for Lab 7 and Lab 8
4. A scanned image of your hand-drawn map
5. Sequence diagrams for two (2) of the item management commands, taken from separate
groupings (i.e. you will not get credit for both getItem and dropItem as they are both in the
same group)
6. A statement of your own personal contribution to the assignment
7. A statement of your partner’s contribution to the assignment.
8. A link to the demonstration video uploaded as an unlisted file on YouTube,
Do not work with your partner or any other person to complete your individual report. These must
be unique and your own work.
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 included in the report.
Submission
Each student must submit a single zip file which contains all assignment files in the Assignment 2
submission link provided in Moodle. Submission files include:
1. code for each deliverable / milestone, and
2. an individual report.
CRICOS Provider No. 00103D ITECH7201 Assignment 2 2016 Sem3 Page 4 of 5
Marking Criteria/Rubric
Student ID Partner ID
Student Name Partner Name
Pre-Requisites For Marking
Statement of personal contribution and partner’s contribution
Task Available
Marks
Student
Mark
Paired Tasks
a. Functionality as detailed in Lab 7 and Lab 8 1
b. Hand-drawn map detailing custom game environment, implemented in the game, with
7 different locations including at least 1 shop, and items to allow for full testing
1
c. Item management commands:
i. listItems / getItem / dropItem 1
ii. equipItem / unequipItem 1
iii. purchaseItem / sellItem 1
d. Appropriate management of weight restrictions 1
e. Implementation of combat sequences between a player and hostile NPCs, including
variable outcomes and the ability to flee.
2
f. Implementation of collectable items used to restore a player’s life points 1
g. Context-specific commands: purchases / sales only available in a shop; combat only
available in presence of hostile NPCs
1
h. Demonstration video uploaded as an unlisted file to YouTube, of no more than 5
minutes duration, providing a game demonstration, discussion of required design
patterns and development methodologies as per assignment specification description.
5
Individual Work
Individual report containing team details and:
a. User stories for each of the deliverables / milestones 2
b. Class diagrams for Lab 7 and Lab 8 1
c. Sequence diagrams for two of the item management commands from different groups. 2
Total 20