Page |
Description |
43 |
First paragraph can be restated as:
Sometimes here may be situations where different actors are somehow involved in initiating the same activity. For example, a delivery person delivers the order to the customer, but a dispatcher notifies the system that the delivery occurred. Who is the actor? The delivery person? The dispatcher? The customer? In this case, an effective strategy is to abstract away the mechanism and to focus on the eventual source of the request in terms of the role.
|
43 |
Last paragraph:
Hence, we prefer "Order Books" over "Customer Orders Books." |
45 |
Figure 4.3 table should read
Actor | Activity |
Online Customer | Order Books, Cancel Order |
Timer | Expire Order (or Cancel Order) |
Warehouse Clerk | Pack and Ship Order, Restock Product |
Credit Card Company | Approve Charge, Decline Charge |
Delivery Person | Deliver Order |
|
46 |
"Real-Time Systems": second paragraph:
�An actor is anything that interfaces to or interacts with the system� |
49 |
Change "actor requests a service" to "actor initiates an activity." |
51 |
First and second paragraphs of Section 4.3: Change "Order Merchandise" to "Order Books." |
54 |
Definition of "scenario:" �there is only one path through the model. |
Page |
Description |
111 |
Italicize "Capitalized Italics" as in "Capitalized Italics are class names." |
115 |
Figure 7.8: Boldface "to" on third line:
relate newBook to myPublisher �
|
118 |
Figure 7.12: Change reclassify action to:
reclassify object instance multiBook from StockedProduct to SpecialOrderProduct;
|
119 |
Figure 7.13: Rewrite as:
// Make this the shipment for the order
(Self, order) | link R6.'delivers contents of';
// Copy the delivery information for this shipment from the Order.
// (The write attribute operator is '>')
order.recipient > Self.recipient;
// Now copy the remaining information
order.(deliveryAddress, deliveryContactPhone) >
Self.(deliveryAddress, deliveryContactPhone);
|
121 |
Figure 7.16: Rewrite as
// Make this the shipment for the order
self->("delivers contents of")Order := order;
// Copy the delivery information for this shipment from the Order.
self {
.recipient := order.recipient;
.deliveryAddress := order.deliveryAddress;
.deliveryContactPhone := order.deliveryContactPhone;
}
// Notify the shipping clerk� (as is)
|
Page |
Description |
131 |
Figure 8.8 and Section 8.1.3: Change the attribute "tagNumber" to "licensePlateNumber" because of the other (UML) useof the word "tag" in this section. |
132 |
Section 8.2 OCL: first line should read
context ProductSelection inv |
133 |
First paragraph should read:
In this example, Order.totalValue is derived from the sum of all the associated ProductSelection.selectionValue values. Its definition in OCL looks like this: |
133 |
Second line of action language should read:
select many selections related by self->ProductSelection[R3]; |
137 |
Figure 8.13: Replace "bookISBN" by "bookNumber" in action language and in figure caption. |
144 |
"Loop Constraints with Referential Attributes":
Change District is resident of Child
to
District "is place of residence of" Child |
Page |
Description |
151 |
On all microwave statecharts:
1. State 4: remove "turn off light"
2. State 5: add "sound the beeper" |
153 |
Next-to-last paragraph:
�Figure 9.2 showed that when the oven is in the Ready To Cook state that opening the door transitions to DoorOpen, while pressing the button from the Ready To Cook state makes a transition to the Cooking state. |
153 |
Last paragraph:
There may be multiple transitions� |
156 |
Figure 9.4:
Transitions on doorClosed event should transition to Ready To Cook. |
161 |
Figure 9.9:
Change "Can't Happened" to "Can't Happen" and display in boldface italic. |
163 |
Last sentence: �on the statechart diagram, such final quiescent states can be identified by their lack of outbound transitions. |
Page |
Description |
201 |
Figure 12.3: Name of state 2 should be: "Waiting for Pick Up" |
201 |
Add attribute to Shipment:
waitingToBePacked: boolean |
203 |
Figure 12.6 should be the same as Figure B.8. |
206 |
Add a period to the end of the paragraph "Do not fall into the trap�on the statechart diagrams." |
206 |
First paragraph of Section 12.2.1: "by refactoring the behavior in one class into separate classes." |
208 |
Figure 12.10 should be the same as the ShoppingCart in Appendix B (B.5). |
209 |
Figure 12.11 should be the same as the Order in Appendix B (B.3). |
210 |
In states 1 and 2, change "R23" to "R22." |
Page |
Description |
256 |
Figure 15.2, state 2: To create a new selection, replace the lines
create object instance newSelection . . .
relate self to product . . .
by
relate self to product across R3.'contains customer selection of'
creating newSelection; |
258 |
This is actually the diagram as produced in the BridgePoint tool, not the current Executable UML format. |
260 |
Figure 15.5: Last line should read
productB.quantityOnHand = 62; |
261 |
Change the four lines of action language in Figure 15.6 to the following three lines:
create object instance order of Order in state "Adding Selection to Order";
relate order to productA across R3 creating existingSelection;
existingSelection.quantity = 3; |
263 |
Do not capitalize the word "order" in the last comment. |
266 |
In Figure 15.10, change "addItem" to "addSelection." |
Page |
Description |
315 |
Figure B.1: Reverse the multiplicities on R20. |
316 |
Add attribute currentlyAvailable to class Product. |
317 |
Description of R4: "�linked to the corresponding Product, creating an instance of a ProductSelection." |
318 |
Attribute groupCode: "�or language area that participates in the ISBN system." |
318 |
Description of R1: change "book" to "product." |
320 |
Description of BookProduct: �as part of the ProductSelection (attribute unitPriceOfSelection)� |
329 |
Remove the duplicate R18. |
331 |
Description of ComputerSoftware: "�on more than one platform and is often available�" |
335 |
Name of state 8 is "Submitting Charge" |
335 |
State 5 should read:
generate chageApproved (customerEmail: customer.email) to EE_OnlineCustomer; |
340 |
State 3 should read:
generate checkOut (
cartID: self.cartID, � |
344 |
Add attribute to WarehouseClerk:
goOffDutyAtEndOfJob: boolean
Add attribute to Shipment:
waitingToBePacked: boolean |
345 |
Type of attribute shippingCompany should be string. |
345 |
Add attribute waitingToBePacked: boolean
Description: True when a Shipment is ready to be packed. This attribute is used by the Warehouse (Shipment Assigner). |
347 |
Description of R6: add
All of the selections on an Order are shipped together in one shipment. |
349 |
Add attribute goOffDutyAtEndOfJob to WarehouseClerk |
351 |
Change first statement in state 2 to
select any freeClerk related by self->ShippingClerk[R25]
where selected.awaitingAssignment; |
353 |
Figure B.10:
State 1: Change R9 to R25
State 7: second statement should be
generate packed (clerkID: self.clerkID) to currentShipment; |
335 |
Last parameter on state 8 should be
order: self |