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 ofCraftingLogic
. - If
Crafting System
is destroyed, then it is meaningless to have aCraftingLogic
class, hence they have a strong relationship to each other. - One
Crafting System
can have unlimited number ofweapons/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 theBuildable
interface.- One
Crafting System
will only have oneCraftingSystem
class. (At least for sprint one, it is the case.) - If
Crafting System
feature is removed from the gameplay, thenCraftingSystem
class will also be abandoned, hence, they form a strong aggregation. - One
Crafting System
can only have one OneCrafting Display
feature. (At least for sprint one, it is the case.) - And one
Crafting Display
feature can have unlimited number ofGameAreaDisplay
. 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 Display
feature 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 oneServiceLocator
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