Reference no: EM132532552 
                                                                               
                                       
ITECH7201 Software Engineering: Analysis and Design - Federation University
Overview - For       this assignment, you will logically extend the functionality of  the      Maze Game introduced during the lectures, via the modification  of  the     code base as well as documentation and implementation of  various   user    stories.
Learning     outcome 1: 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.
Learning     outcome 2: Understand   the distinction between software engineering     and programming, and thus   the distinction between a software     configuration and a program.
Learning     outcome 3: Understand   the methods and techniques involved in     designing, implementing and   maintaining an information system, in     particular using an   object-oriented approach.
Learning     outcome 4: Understand   how unit tests are used during software     development to assist in agile   programming techniques such as     refactoring and demonstrate skills in   designing Unit tests.
Learning     outcome 5: Work   together in small teams to complete a fully     documented, detailed design   and implementation of a small business     information system.
Learning outcome 6: 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. All documentation, other  than   the    customized game map, must be completed individually.
The       codebase 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 codebase 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  the     quality of your documentation.
Note:       It is recommended that you spend some time familiarizing 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-8.
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. At least M (M>=4) locations,  including      exactly N (N>=3) shops with a condition M>N, must  be included,  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 codebase 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 the 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.
iv. getmazestatus to show the status of the maze (i.e., the value of M and N)
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.       Write 3 (Three) Unit test cases for each of the methods you are       developing in this assignment. You can write the test cases in any Java       framework, but Junit is preferred.
4.       Prepare a short Power-point presentation to demonstrate your       software/program as if you are going to sell this software/program to a       prospective customer. The Power-point presentation must contain the       following items:
i. A demonstration of the game - how the game play works and how this was implemented.
ii.       Explanation of the role of design patterns in the game, clearly       identifying the functionality where design patterns have had an impact       and how this has occurred.
iii. An       analysis of the use of a development methodology in creating the    game    describing how did this assist, or make the development of the    game   more  complicated.
This       presentation 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.
Individually:
1. Prepare an individual 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 (including yourself)
b. User stories for each of the deliverables/milestones
c. Class diagrams for Lab 7 and Lab 8
d.       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 group i)
e. A statement of your own personal contribution to the assignment
f. A statement of your partner's contribution to the assignment.
Do not work with your partner or any other person to complete your individual report. These must be unique and your own work.
Attachment:- Assignment File - Maze Game Analysis and Design.rar
Attachment:- GameDescription.rar