/* Warehouse System - sample system Last updated: May 22, 2008 */ //Namespace for facade class. namespace Warehouse //Namespace for core of the system. namespace Warehouse.core class MovementLocation{} class SlotSet{ isA MovementLocation; 0..1 -- 0..1 BoxOrPallet; 1 -- * Slot; } class Slot{ Integer number; Double width; } class Level{ Integer height; Integer number; 1 -- * Slot; } class LoadingGate{ Integer number; isA MovementLocation; } class Truck{ Integer registerNum; Boolean isWaiting; 1 -- * DeliverOrShipmentBOM; } class RWBM{ Integer ID; } class Item{ Double value; Integer hazardID; Integer breakability; } class Row{ Integer depth; Integer number; 1 -- * Level; } //Note that here we have the choice to use // Time or Double, if the customer requires Double due to // some interoperability issues with a legacy syste, we can easily // accomodate them and use Double instead of Time. class RWBMMovement{ Double startTime; Double endTime; * toMovement -- 1 MovementLocation to; * fromMovement -- 1 MovementLocation from; * -- 1 BoxOrPallet movedBox; 1 -- * RWBM; } class DeliverOrShipmentBOM { Double startTimeLoadOrUnload; Double endTimeExpected; * -> 0..1 LoadingGate sentThrough; * -> 0..1 LoadingGate arriveAt; } class BoxOrPallet{ Integer RFIDTagNumber; Double lengthINmm; Double widthINmm; Double heightINmm; Double weightINkg; String contentType; * -- * DeliverOrShipmentBOM; 1 -- * Item; }