Listing current as of 10-Nov-2002.
If you think you have found a bug that is not listed here, please mail it to
marc@executableumlbook.com.
Foreword Preface Acknowledgements 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Glossary Case Study
Page | Description |
---|---|
36 | Figure 3.2: Add a bridge from Messaging to the Model Compiler |
37 | First paragraph should read "�by messaging, the Web GUI, Inventory, and the bookstore." |
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
|
||||||||||||
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 |
---|---|
60 | Example 1: insurance product, which specifies which policy types you can buy |
64 | Fully factored--Each attribute captures a separate fact about the class abstraction. ("Aspect" is taking on the same meaning as "subject matter" or "domain" and consequently the use of "aspect" here could be confusing.) |
66 | Change "string types" to "symbolic types." Types can be symbolic, enumerated, etc. String, integer, real, � are core data types. |
Page | Description |
---|---|
84 | First paragraph should begin: Associations involving only two classes ("binary associations") � |
92 | Change association names to
CreditCardCharge IS AN ATTEMPT TO PAY FOR Order |
94 | Last sentence should read: Figure 6.10 shows how a ProductSelection is included in a Shipment. |
98 | First paragraph of 6.5.2: Each instance of a superclass must be one and only one of its subclasses and each instance of a subclass must be an instance of the superclass. |
102 | Figure 6.18: It is also a superclass of BookProduct, � |
106 | Figure 6.23 caption should be: Subclassing ProductCategory |
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 Childto 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 |
---|---|
171 | Reverse the two subcaptions: top one should be "from Shipment" and bottom one should be "from Order." |
172 | Figure 10.2 shows a rather extensive state procedure. The purpose of the diagram is to simply show how a procedure can use event parameters (rcvd_evt.something) and can send a signal with parameters. |
175 | The procedure in state 2 could be written as:
select any book from instances of Product where selected.productID == rcvd_evt.productID; relate book to self across R4 creating newSelection; . . .The callout for state 2 should read Create instance of ProductSelection (relating creates the link object)The callout for state 4 should read Delete instances of ProductSelection (unrelating deletes the link object). |
176 | Last two lines of the state procedure should read:
generate requestShipment (order:self) to Shipment creator; |
178 | Last paragraph: separate "diagramof" into "diagram of" by inserting a space. |
Page | Description |
---|---|
194 | Replace "instance handle" by "object reference" in all of 11.5:
generate <signal> to <object reference> delay <duration>; cancel <signal> from <object reference> to <object reference>; generate <signal> from <object reference> at <exact time>; |
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 |
---|---|
219 | Last paragraph: change "used below" to "in Figure 13.6." |
228 | Figure 13.12: change ShippingClerk.shipmentReady attribute to clerkAssigned. |
229 | Second action language example: change ShippingClerk to WarehouseClerk. |
231 | Figure 13.14: State 1: change R8 to R25 State 7: change R7 to R23 and change R8 to R25 |
233 | Section 13.5.1 should refer to Figure 13.15. Section 13.5.2 should refer to Figure 13.14. |
Page | Description |
---|---|
237 | Final paragaph: The signals addItem, removeItem, changeQuantity, cancel, and checkOut can each be accepted� |
244 | First sentence: "the pivot point is the shipmentItem." |
250 | Change Selection.quantity and Charge.chargeNumber to ProductSelection.quantity and CreditCardCharge.accountNumber |
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 |
---|---|
271 | Figure 16.3: Change the labels on the lines Ordering -- Shipping : {R6, R9} Ordering -- ProductSpecification : {R4} |
Page | Description |
---|---|
275 | Last line of first paragraph: "�and how to link together individual domains' models." |
276 | Figure 17.1: Add a bridge between Messaging and Model Compiler. |
289 | Last sentence of first paragraph: "...the table has three columns and one row per Book�" |
Page | Description |
---|---|
296 | First line of last paragraph: "selects all the attributes related to the object reference object across R105..." |
302 | Second bullet: The model compiler can be understood completely and separately from the semantics� |
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 |