Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details....
-
Upload
annabel-mclaughlin -
Category
Documents
-
view
214 -
download
0
Transcript of Object Collaboration. Sales ClerkSystem 1. Fill in retailer’s number2. Show retailer’s details....
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!
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.
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…
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
…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
…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
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.
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.
The objects added to the diagram
: Sales clerk
: OrderUI
: RegisterNewOrder
: Design
: DesignUI
: Retailer Order
: Retailer Order Line : Retailer
The objects as icons, in layers
: Sales clerk
: OrderUI
: RegisterNewOrder
: Design
: DesignUI
: Retailer Order
: Retailer
: Retailer Order Line
The objects communicating
: Sales clerk
: OrderUI
: RegisterNewOrder
: Design
: DesignUI
: Retailer Order
: Retailer
: Retailer Order Line
: 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
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( )
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
…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
…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
…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
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.
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
• 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.
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
…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
…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
…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
: 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( )