Top Banner
Object Collaboration
27

Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Dec 17, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Object Collaboration

Page 2: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Sales Clerk System

1. Fill in retailer’s number 2. Show retailer’s details. **Set up a new order.

3. Inputs design number 4. Retrieve and display garment price, size range and description

5. Input design no, quantity and size 6. Write order line with order no, design no, quantity and size. Write ‘quantity’ new instances of garment with status ‘not started’.Display accumulated price.Display new set of orderliness.

7. Indicate finished 8. Enable ‘confirm order’ button.

9. Order confirmed 10. Order saved.

Happy path

** New retailer is now an alternate path!

Page 3: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Elaborate Steps 1 & 2

1. Control class RegisterNewOrder displays OrderUI.

– Sales clerk responds• Uses OrderUI to enter the retailer’s number

2. System responds:– RecordOrder requests retailer info from Retailer.

– If successful, • requests constructor on order, giving retailer number and

waiting for order number in response.

Page 4: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

3. Signals to OrderUI to display order number and value.4. Sales clerk responds

• Clicks AddLine on OrderUI

5. RecordOrder displays DesignUI6. Sales Clerk responds

– Enters Design number

• RecordOrder requests design info from Design.– If successful,

• Sends info to DesignUI• DesignUI

– displays info– Waits for size and quantity– enables buttons.– Awaits confirmation…

Page 5: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Continue building…

• Invent your classes as you go.

Page 6: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Messages…No Message From class To class

1 Enter CustomerId Sales clerk OrderUI

2 GetRetailer OrderUI RegisterNewOrder

3 Get Customer RegisterNewOrder Retailer

4 DisplayCustomer RegisterNewOrder OrderUI

5 AddOrder Retailer Retailer Order

6 AddGarment Sales Clerk OrderUI

7 Display OrderUI DesignUI

Page 7: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…Messages…No Message From class To class

8 Enter Design Sales Clerk DesignUI

9 PickDesign DesignUI RegisterNewOrder

10 Get Design RegisterNewOrder Design

11 Show Design RegisterNewOrder DesignUI

12 EnterSize and Quantity

Sales Clerk DesignUI

13 EnableOrder DesignUI DesignUI

14 ConfirmLine Sales Clerk DesignUI

Page 8: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…Messages

No Message From class To class

15 OrderDesignSize DesignUI RegisterNewOrder

16 AddaLine RegisterNewOrder RetailerOrderLine

17 DisplayLine+Totals RegisterNewOrder OrderUI

18 ConfirmOrder Sales Clerk OrderUI

19 ConfirmOrder OrderUI RegisterNewOrder

20 ConfirmOrder RegisterNewOrder Retailer Order

Page 9: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Collaboration Diagram

• Is another illustration of the interaction between objects during a Use Case.

• Classes are shown as icons on the diagram.• Classes that collaborate are linked.• The links are populated with messages, showing

the operation that the sender invokes on the recipient.

Page 10: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Making a Collaboration diagram

• Identify the objects involved– Sales Clerk, OrderUI, RegisterNewOrder, Retailer,

Retailer Order, Retailer Order Line, DesignUI, Design.

• Arrange them in layers.• Link all objects that communicate with each other.• Add the messages.

Page 11: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

The objects added to the diagram

: Sales clerk

: OrderUI

: RegisterNewOrder

: Design

: DesignUI

: Retailer Order

: Retailer Order Line : Retailer

Page 12: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

The objects as icons, in layers

: Sales clerk

: OrderUI

: RegisterNewOrder

: Design

: DesignUI

: Retailer Order

: Retailer

: Retailer Order Line

Page 13: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

The objects communicating

: Sales clerk

: OrderUI

: RegisterNewOrder

: Design

: DesignUI

: Retailer Order

: Retailer

: Retailer Order Line

Page 14: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

: Sales clerk : OrderUI : RegisterNewOrder

: Retailer

: Retailer Order Line

1. Enter CustomerId( )2. getRetailer( )

3. Get customer( )

4. DisplayCustomer( )6. AddGarment( )

: DesignUI

7. display( )8. enter design( )

: Design

9. PickDesign( )

11. show design( )

12. Enter size and quantity( )

: Retailer Order

5. add order( )

13. EnableOrder( )

14. ConfirmLine( )

15. OrderDesignSize( )

17. DisplayLine and totals( )18. ConfirmOrder( )

19. confirmOrder( )

10. get design( ) 16. addaline( )

20. confirm order( )

Collaboration Diagram

Page 15: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Adding the garment class

: Sales clerk : OrderUI : RegisterNewOrder

: Retailer

: Retailer Order Line

: DesignUI

: Design

: Retailer Order

13. EnableOrder( )

1. Enter CustomerId( )

6. AddGarment( )

18. ConfirmOrder( )

8. enter design( )

12. Enter size and quantity( )

14. ConfirmLine( )

2. getRetailer( )

4. DisplayCustomer( )

17. DisplayLine and totals( )

19. confirmOrder( )

7. display( )

10. get design( )

16. addaline( )

20. confirm order( )

3. Get customer( )

5. add order( )

9. PickDesign( )

11. show design( )

15. OrderDesignSize( )

: Garment

16.1. create garment( )

Page 16: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Messages…No Message From class To class

1 Enter CustomerId Sales clerk OrderUI

2 GetRetailer OrderUI RegisterNewOrder

3 Get Customer RegisterNewOrder Retailer

4 DisplayCustomer RegisterNewOrder OrderUI

5 AddOrder Retailer Retailer Order

6 AddGarment Sales Clerk OrderUI

7 Display OrderUI DesignUI

Page 17: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…Messages…No Message From class To class

8 Enter Design Sales Clerk DesignUI

9 PickDesign DesignUI RegisterNewOrder

10 Get Design RegisterNewOrder Design

11 Show Design RegisterNewOrder DesignUI

12 EnterSize and Quantity

Sales Clerk DesignUI

13 EnableOrder DesignUI DesignUI

14 ConfirmLine Sales Clerk DesignUI

Page 18: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…MessagesNo Message From class To class

15 OrderDesignSize DesignUI RegisterNewOrder

16 AddaLine* RegisterNewOrder RetailerOrderLine

17 DisplayLine+Totals RegisterNewOrder OrderUI

18 ConfirmOrder Sales Clerk OrderUI

19 ConfirmOrder OrderUI RegisterNewOrder

20 ConfirmOrder RegisterNewOrder Retailer Order

* This version omits the creation of garment instances – see later

Page 19: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…MessagesNo Message From class To class

15 OrderDesignSize DesignUI RegisterNewOrder

16 AddaLine* RegisterNewOrder RetailerOrderLine

16a AddAGarment RetailerOrderLine Garment

17 DisplayLine+Totals RegisterNewOrder OrderUI

18 ConfirmOrder Sales Clerk OrderUI

19 ConfirmOrder OrderUI RegisterNewOrder

20 ConfirmOrder RegisterNewOrder Retailer Order

Page 20: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Refining the OCD

• 2. Separate out reusable functionality into another control class.

• There are a group of messages that only use the DesignUI boundary class and the Design entity.– Introduce a new control class called OrderDesign.– The main control class invokes OrderDesign.– OrderDesign acts as ‘go-between’ between the DesignUI

and the Design entity.– When all functionality relating to picking a quantity of a

particular design has been completed, OrderDesign hands control back to RegisterNewOrder.

Page 21: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Contained functionality

Msge no

Message From class To class

11 Show Design OrderDesign DesignUI

12 EnterSize and Quantity

Sales Clerk DesignUI

13 EnableOrder DesignUI DesignUI

14 ConfirmLine Sales Clerk DesignUI

15 OrderDesignSize DesignUI OrderDesign

Page 22: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

• Make all the messages in a happy path step be increments of the step.– To do this, you need to

• Check the model properties to ensure that hierarchical numbering is enabled on diagrams.

• Create the Sequence diagram from the OCD.

• Move the messages so that they originate in the lifeline that has been created by the previous message in the group.

Page 23: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

Messages…No Message From class To class

1 Enter CustomerId Sales clerk OrderUI

1.1 GetRetailer OrderUI RegisterNewOrder

1.1.1 Get Customer RegisterNewOrder Retailer

1.1.2 DisplayCustomer RegisterNewOrder OrderUI

1.1.1.1 AddOrder Retailer Retailer Order

2 AddGarment Sales Clerk OrderUI

2.1 PickDesign OrderUI RegisterNewOrder

2.1.1 AddOrderLine RegisterNewOrder OrderDesign

2.1.1.1 Display OrderDesign DesignUI

Page 24: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…Messages…No Message From class To class

3 Enter Design Sales Clerk DesignUI

3.1 GetDesign DesignUI OrderDesign

3.1.1 Get Design OrderDesign Design

3.1.2 Display OrderDesign DesignUI

4. EnterSize and Quantity

Sales Clerk DesignUI

4.1 EnableOrder DesignUI DesignUI

4.2 Showsubtotal DesignUI DesignUI

Page 25: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…MessagesNo Message From class To class

5. ConfirmLine Sales Clerk DesignUI

5.1 AddOrderLine DesignUI OrderDesign

5.1.1 OrderDesignSize OrderDesignSize RegisterNewOrder

5.1.1.1 AddALine RegisterNewOrder RetailerOrderLine

5.1.1.1.1 AmendOrder RetailerOrderLine RetailerOrder

* This version omits the creation of garment instances – see later

Page 26: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

…Messages…No Message From class To class

5.1.1.1.2

Create garment RetailerOrderLine Garment

5.1.1.2

DisplayLine and total

RegisterNewOrder OrderUI

6. ConfirmOrder Sales Clerk OrderUI

6.1 ConfirmOrder OrderUI RegisterNewOrder

6.1.1 ConfirmOrder RegisterNewOrder Retailer Order

Page 27: Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details. ** Set up a new order. 3. Inputs design number4. Retrieve.

: Sales clerk

: OrderUI

: RegisterNewOrder

: Retailer

: Retailer Order Line

: DesignUI

: Design

: Retailer Order

: OrderDesigns

3.2. EnableOrder( )4.1. ShowSubTotal( )

: Garment

1. Enter CustomerId( )2. AddGarment( )6. ConfirmOrder( )

3. enter design( )4. Enter size and quantity( )

5. ConfirmLine( )

1.1.2. DisplayCustomer( )5.1.1.2. DisplayLine and totals( )

1.1. getRetailer( )2.1. PickDesign( )

6.1. confirmOrder( )

1.1.1. Get customer( )

1.1.1.1. add order( )

5.1.1.1.2. create garment( )

5.1.1.1.1. amend order( )

2.1.1.1. display ( )2.1.1.3. show design( )

3.1. get design( )5.1. AddOrderLine( )

2.1.1.2. get design( )

5.1.1.1. addaline( )

6.1.1. confirm order( )

2.1.1. AddOrderLine( )

5.1.1. OrderDesignSize( )