Crafting UML Diagram Sprint One - UQdeco2800/2022-studio-2 GitHub Wiki

Introduction

Below is the UML diagram designed for the whole crafting system by @Rey-666.

The UML diagram consists with the following classes:

CraftingLogic, CraftingSystem, GameAreaDisplay, ServiceLocator, OpenCraftingComponent

The interface: Buildable

The Enumeration: Materials

UML Description:

  • For this game, we only ever going to have one Crafting System.
  • One Crafting System can have unlimited number of CraftingLogic.
  • If Crafting Systemis destroyed, then it is meaningless to have a CraftingLogic class, hence they have a strong relationship to each other.
  • One Crafting Systemcan have unlimited number of weapons/items.
  • If the Crafting System is destroyed, weapons/items can still exist in the game by itself with a meaningful reason, hence, they form a weak aggregation.
  • weapons/items will implement the Buildable interface.
  • One Crafting System will only have one CraftingSystem class. (At least for sprint one, it is the case.)
  • If Crafting System feature is removed from the gameplay, then CraftingSystem class will also be abandoned, hence, they form a strong aggregation.
  • One Crafting System can only have one One Crafting Displayfeature. (At least for sprint one, it is the case.)
  • And one Crafting Display feature can have unlimited number of GameAreaDisplay. Because As the game progresses, the game level will progress and the possibilities of having other game areas should not be ignored.
  • If the Crafting Displayfeature is removed, GameAreaDisplay can still be existed by itself for display other features of the game, hence, they form a weak aggregation.
  • One Crafting Display feature uses one ServiceLocator class.
  • If Crafting Display feature is removed, ServiceLocator class can still be used for other feature implementation, hence, they form a weak aggregation.
  • Crafting Display feature will only have one "OpenCraftingComponents" class, since this class will just handle open/close the crafting table.
  • If Crafting Display feature is removed, then crafting table will not be displayed, hence, the "OpenCraftingComponents" class will be meaningless to exist. Therefore, they form a strong aggregation.

Appendix

Sprint One Use the below link to access the UML on MIRO: https://miro.com/app/board/uXjVOtWEOHY=/?share_link_id=625470507806