Pre-refined Class Diagram
The diagram above shows a pre-refined class diagram. This diagram is the first draft derived from the use case diagram. Further refinement needs to be done in order to incorporate with the software requirements. Hence, a new set of necessary classes needs to be added. The new classes introduced can be seen from the refined class diagram below:
Refined UML Class Diagram
From the pre refined class diagram we have refined it into the new class diagram so that it has 4 menus: user, stock, client, schedule.
Inside the warehouse management system, we have inventory list, which shows all goods list. The warehouse management system has three functions. They are display menu, display list and get menuís option. Display list means the inventory list will be displayed.
In this context, Client class represents the supplier and the customer in the previous case, which are actually the users of the software system. We also split the stock and scheduling manager into two new classes: WarehouseStock and Schedule. Hence, the stock and schedule can be managed independently. History and Event class are introduced to incorporate with the client and goods summary. History class will summarize all the transaction events occurring in a certain period of time. Similarly, TimeSlot class is introduced to help incorporate with the goods movement summary. In conjunction with security matters, we also decided to add the Warehouse Security class.
The warehouse management system has six subclasses. They are:
This class is used to identify goods, which goes into the warehouse using barcode number. There is only 1 function defined in this class. It is scan barcode that is used to scan the barcode number.
This class has one subclass called client class. Client class stores clientís information such as name, address, clientís ID, and contact number. Client class later will be used as the attributes in client database. Using client database class we can do search client, add client, get client, and delete client.
This class has one subclass called event class, which stores information about time of movement, quantity (number of the goods), barcode number (to check which goods is being moved), type of movement (within the warehouse or outside the warehouse), and clientís name. Event class is used as the attribute of history class and it is put in an array of event. For history class, it has two functions: get client summary and get goods summary. Client summary shows us the summary of clientís name whose goods has been moved. And the goods summary shows us summary of goods in and goods out of the warehouse.
It consists of array slot. Slot also consists of array of item, which has the information such as: name, barcode number, item type, the owner of the item, volume, and quantity of item. Item class has three functions: get item type (to return the itemís type), get total volume (to get the total volume of the item), and get barcode number.
Slot class has two functions: get itemís location and detect whether the slot is still empty or full. This function is later being used in the warehouse stock class in order to check slotís vacancy. Warehouse stock can perform search goods (based on itemís name or barcode number), add new item, remove item, and check vacancies.
Schedule class used to check the time slot when the goods are being moved (in or out of warehouse). This class consists of 18 time slots from 8 a. m to 5 p.m because in half hours we have one time slots. Time slot class has set goods in and set goods out which is used to set the time when the goods in and when the goods out so we can set the schedule. Schedule class has two attributes: quantity (number of goods being moved), and time slot. It also has three functions, set schedule, check schedule (to check time slot), and make summary (later used in making the history).
It needs user ID, which consists of 8 characters, and password. There is only one function here and it is used for login validation.