PROBLEMS
(Top)
Event: Customer Places Order Message Stimulus: Receive Order Update Response: Create Order with entered state Message Response: Send Order to ShippingEvent: Customer Cancels Order Message Stimulus: Receive Order Cancellation Notice Message Response: If state is shipped, send reject notice to Customer Update Response: If state is entered, set Order state to cancelled Update Response: If state is entered, send Cancel Notice to Shipping
Event: Shipping Ships Order Message Stimulus: Receive Shipping Notice from Shipping Update Response: Set Order state to shipped Message Response: Send Invoice to Customer
Event: Customer Pays Invoice Message Stimulus: Receive Payment from Customer Update Response: Set Order state to Paid Message Response: If prior state was overdue, send Paid Notice to Collections
Event: Customer Fails to Pay Invoice Temporal Stimulus: Invoice has not been paid within forty days Update Response: Set Order state to overdue Message Response: Send Overdue Notice to Collections
Event: Collections Can not Collect Message Stimulus: Receive Uncollectable Notice from Collections Update Response: Set Order state to uncollectable
In order to save space and avoid confusion, I did not show the request for the form or the system returning the form. But, every stimulus to the system would have been preceeded by these two interactions.
See the Job Shop Model Construction sidebar to see how this model is constructed from the sequence of events.
Note that you could argue that there are subclasses of the
Part class, one for generic and one for custom.
This might be useful because custom parts are only ever ordered
by one customer.
But, we can easily tell which parts are custom parts because only
the custom parts will have a DesignedFor association with
a customer.
Use reasonable values for the attributes whose values are not given in the scenario. You only need to show the final diagram.
Root --> * Customer --> * Part --> 1 JobStep ---+
| 0,1 |
+-------+
|
| |||||||||||||||||||||||||||||||||||
|
Prepared by David L. March -- Last Revised on October 22, 2002
COPYRIGHT © 1998-2002 BY DAVID L. MARCH