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 Systemcan have unlimited number ofCraftingLogic. - If
Crafting Systemis destroyed, then it is meaningless to have aCraftingLogicclass, hence they have a strong relationship to each other. - One
Crafting Systemcan have unlimited number ofweapons/items. - If the
Crafting Systemis destroyed,weapons/itemscan still exist in the game by itself with a meaningful reason, hence, they form a weak aggregation. weapons/itemswill implement theBuildableinterface.- One
Crafting Systemwill only have oneCraftingSystemclass. (At least for sprint one, it is the case.) - If
Crafting Systemfeature is removed from the gameplay, thenCraftingSystemclass will also be abandoned, hence, they form a strong aggregation. - One
Crafting Systemcan only have one OneCrafting Displayfeature. (At least for sprint one, it is the case.) - And one
Crafting Displayfeature 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 Displayfeature is removed,GameAreaDisplaycan still be existed by itself for display other features of the game, hence, they form a weak aggregation. - One
Crafting Displayfeature uses oneServiceLocatorclass. - If
Crafting Displayfeature is removed,ServiceLocatorclass can still be used for other feature implementation, hence, they form a weak aggregation. Crafting Displayfeature will only have one "OpenCraftingComponents" class, since this class will just handle open/close the crafting table.- If
Crafting Displayfeature 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