1 Customer 1 customer 1 supplier Mark I

  • Slides: 19
Download presentation
1 Customer 1. . * customer 1 supplier : Mark I Vending Machine (MIVM)

1 Customer 1. . * customer 1 supplier : Mark I Vending Machine (MIVM) System Service Representative 1. . * servicer 1 vending machine

4 Client Interface Layer Coordination Layer The model layer contains 2 packages: • Role

4 Client Interface Layer Coordination Layer The model layer contains 2 packages: • Role package • Dispenser package Model Layer Server Interface Layer Foundation Layer

5 CLIENT INTERFACE Custom. Operating. System. Interrupts event (a. String) Door. Switch 10 Bill.

5 CLIENT INTERFACE Custom. Operating. System. Interrupts event (a. String) Door. Switch 10 Bill. Validator Refund. Button inserted (a. Bill) Number. Selection. Buttons pressed () tripped () pressed () 8 Coin. Validator inserted (a. Coin) Letter. Selection. Buttons Mode. Button pressed () Current. Mode. Proxy current. Mode valid (a. Bill) valid (a. Coin) door. Locked () selected (a. Letter) selected (an. Integer) change. Mode () refund () Door locked ()

6 COORDINATION Current. Mode. Proxy curent. Mode valid (a. Bill) valid (a. Coin) door.

6 COORDINATION Current. Mode. Proxy curent. Mode valid (a. Bill) valid (a. Coin) door. Locked () selected (a. String) selected (an. Integer) change. Mode () refund () {contains} Dispense. Item. Mode display. Messages () refund () reset () selected (an. Integer) selected (a. Letter) valid (a. Money) Customer display. Messages () refund () reset () selected (an. Integer) selected (a. Letter) valid (a. Money) Set. Pricemode refund () reset () selected (an. Integer) selected (a. Letter) valid (a. Money) Display. History. Mode refund () reset () selected (an. Integer) selected (a. Letter) valid (a. Money) Service. Representative coin. Dispenser. Assembly. Loaded () display. Total. Income () display. Total. Items. Sold () reset () selected (an. Integer) selected (a. Letter) Main. Display display (current. Mode)

8 DISPENSER Coin. Dispenser. Assembly Item. Dispenserassembly is. Warning. Needed () dispense (a. Money)

8 DISPENSER Coin. Dispenser. Assembly Item. Dispenserassembly is. Warning. Needed () dispense (a. Money) inserted (a. Coin) loaded () is. Practical (a. Price) dispense. At (a. Location) price. At (a. Location, a. Price) get. Total. Income () get. Total. Items. Sold () {contains} 3 Coin. Dispensing. Policy Coin. Dispensers dispense () is. Practical (a. Price) have. Coin () coin. Inserted () next () coin. Type () dispense () Item. Dispensers dispense () price (a. Money) {contains} Coin. Solenoid push () 80 Item. Stepper. Mode step (360) Item. Display display (a. Location, a. Price)

9 SERVER INTERFACE Coin. Solenoid push () Item. Stepper. Motor step (360) Item. Display

9 SERVER INTERFACE Coin. Solenoid push () Item. Stepper. Motor step (360) Item. Display display (a. Location, a. Price) Custom. Operating. System. Calls dispense. Coin. From (a. Port) dispense. Item. From (a. Port) item. Display (a. String, a. Port) main. Display (a. String) Main. Display display (a. String)

11 : MIVM Software Precondition: The mode is “Dispense. Item”. Insert a Valid Bill

11 : MIVM Software Precondition: The mode is “Dispense. Item”. Insert a Valid Bill Insert a Valid Coin Postcondition: The mode is “Dispense. Item”. Make a Payment.

12 : Custom. Operating. System Interrupts inserted (a. Bill) : Bill. Validator : Current.

12 : Custom. Operating. System Interrupts inserted (a. Bill) : Bill. Validator : Current. Mode. Proxy : Dispense. Item. Mode : Customer. Credit : Customer. Selection : Main. Display : Custom. Operating. System. Calls Precondition: current. Mode = dispense. Item. Mode valid (a. Bill) add (a. Bill) credit. Incremented () [item. Selected] Attempt to Dispense [no item. Selected] display () display (amount) display. Main (amount) Customer Inserts a Valid Bill.

: Customer. Credit : Coin. Dispenser. Assembly : Coin. Dispensing. Policy dispense (credit) [credit

: Customer. Credit : Coin. Dispenser. Assembly : Coin. Dispensing. Policy dispense (credit) [credit >= Money. none () ] Dispense Quarters [credit >= Money. none () ] Dispense Dimes [credit >= Money. none () ] Dispense Nickels Display Greeting Dispense Changes. 13

: Coin. Dispensing. Policy : Coin. Dispensers a. Coin. Dispenser : Coin. Solenoid :

: Coin. Dispensing. Policy : Coin. Dispensers a. Coin. Dispenser : Coin. Solenoid : Custom. Operating. System. Calls amount. To. Dispense = credit. amount () * [amount. To. Dispense >= quarter] next () coin. Type () * [amount. To. Dispense >= quarter and coin. Type () = Coin. quarter ()] dispense () push () If a quarter was dispensed, then amount. To. Dispense = amount. To. Dispense – Coin. quarter () dispense. Coin. From (a. Port) [quarter = not dispensed] Failed. Exception No. Coin. Exception Could. Not. Dispense. Exception Dispense Quarters. 14

16 : Software. MEA 1 a: 1 b: Insertar un Billete Válido Insertar una

16 : Software. MEA 1 a: 1 b: Insertar un Billete Válido Insertar una Moneda Válido Hacer un Pago.

Precondition: current. Mode = dispense. Item. Mode : Custom. Operating. System. Interrupts 1: inserted

Precondition: current. Mode = dispense. Item. Mode : Custom. Operating. System. Interrupts 1: inserted (a. Bill) 1. 1: valid (a. Bill) : Bill. Validator : Current. Mode. Proxy 1. 1. 1: valid (a. Bill) 1. 1. 2: credit. Incremented () : Customer. Selection 1. 1: valid (a. Bill) : Customer : Dispense. Item. Mode 1. 1. 1: add (a. Bill) 1. 1. 2. 2 [no item. Selected]: display () 1. 1. 2. 2. 1: display (amount) : Customer. Credit : Main. Display 1. 1. 2. 1 [item. Selected]: 1. 1. 2. 2. 1. 1: display. Main (amount) Attempt to Dispense : Custom. Operating. System. Calls Insert a Valid Bill. 17

18 1: dispense (credit) : Customer. Credit : Coin. Dispenser. Assembly 1. 1: dispense

18 1: dispense (credit) : Customer. Credit : Coin. Dispenser. Assembly 1. 1: dispense (credit) : Coin. Dispensing. Policy 1. 1. 1 [credit >= Money. none () ]: Dispense Quarters 1. 1. 2 [credit >= Money. none () ]: Dispense Dimes 1. 1. 3 [credit >= Money. none () ]: Dispense Nickels 1. 1. 4: Display Greeting Dispense Changes.

19 amount. To. Dispense = credit. amount () : Coin. Dispensing. Policy 2: coin.

19 amount. To. Dispense = credit. amount () : Coin. Dispensing. Policy 2: coin. Type () 3 * [amount. To. Dispense >= quarter and coin. Type () = Money. quarter ()]: dispense () a. Coin. Dispenser If a quarter was dispensed, then amount. To. Dispense = amount. To. Dispense – Coin. quarter () 3. 1. 1. 1: Could. Not. Dispense. Exception 3. 1. 1: No. Coin. Exception 3. 1: push () 1 * [amount. To. Dispense >= quarter]: next () 3. 1. 1: dispense. Coin. From (a. Port) : Coin. Solenoid : Custom. Operating. System. Calls 3. 1. 1. 1 [quarter = not dispensed]: Failed. Exception : Coin. Dispensers Dispense Quarters.