summaryrefslogtreecommitdiff
path: root/oop/11-point-of-sale/docs/03-design.uxf
blob: 8eaee198f4b5b983c5c68eec8c48d7f7991fafa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<diagram program="umletino" version="15.1"><zoom_level>10</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLClass</id><coordinates><x>880</x><y>470</y><w>130</w><h>70</h></coordinates><panel_attributes>Item
--
-id: String
-name: String
-unitPrice: BigDecimal</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>880</x><y>340</y><w>130</w><h>100</h></coordinates><panel_attributes>LineItem
--
itemId: String
itemName: String
quantity: int
unitPrice: BigDecimal
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>940</x><y>250</y><w>40</w><h>110</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=*</panel_attributes><additional_attributes>10;10;10;90</additional_attributes></element><element><id>UMLClass</id><coordinates><x>860</x><y>140</y><w>180</w><h>120</h></coordinates><panel_attributes>Bill
--
id: int
total: BigDecimal
tax: BigDecimal
cashByCustomer: BigDecimal
balance: BigDecimal
--
addLineItem(lineItem: LineItem)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>900</x><y>0</y><w>100</w><h>60</h></coordinates><panel_attributes>Cashier
--
name: String
id: String</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>940</x><y>50</y><w>30</w><h>110</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>10;10;10;90</additional_attributes></element><element><id>UMLClass</id><coordinates><x>270</x><y>20</y><w>100</w><h>60</h></coordinates><panel_attributes>TextUI
--
--
-printBill()
+start()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>480</x><y>20</y><w>250</w><h>140</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
PointOfSale
--
--
createNewBill(): Bill
addLineItem(itemId: String, quantity: int)
cashByCustomer(amount: String)
searchItems(q: String): ListsavBill()
saveBill()
finishBillSession()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>30</y><w>140</w><h>30</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>120;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>490</x><y>420</y><w>240</w><h>120</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
BillManager
--
--
createNewBill():Bill
addLineItem(itemId: String, quantity: int)
cashByCustomer(amount: String)
saveBill()
finishBillSession()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>600</x><y>320</y><w>30</w><h>120</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>10;100;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>890</x><y>640</y><w>100</w><h>30</h></coordinates><panel_attributes>TaxCalculator</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>370</y><w>370</w><h>100</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
ItemManager
--
--
createItem(id: String, name: String, unitPrice: BigDecimal): Item
findById(id: String): Item
searchItems(q: String): List</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>180</x><y>250</y><w>320</w><h>140</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>10;120;10;10;300;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>480</x><y>210</y><w>250</w><h>120</h></coordinates><panel_attributes>PointOfSaleImpl
--
--
createNewBill(): Bill
addLineItem(itemId: String, quantity: int)
cashByCustomer(amount: String)
searchItems(q: String): List
saveBill()
finishBillSession()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>600</x><y>150</y><w>30</w><h>80</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>10;10;10;60</additional_attributes></element><element><id>UMLClass</id><coordinates><x>490</x><y>600</y><w>240</w><h>120</h></coordinates><panel_attributes>BillManagerImpl
--
- currentBill:Bill
--
createNewBill():Bill
addLineItem(itemId: String, quantity: int)
cashByCustomer(amount: String)
saveBill()
finishBillSession()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>600</x><y>530</y><w>30</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>500</y><w>370</w><h>80</h></coordinates><panel_attributes>ItemManagerImpl
--
--
createItem(id: String, name: String, unitPrice: BigDecimal)
findById(id: String): Item
searchItems(q: String): List</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>180</x><y>460</y><w>30</w><h>60</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>10;10;10;40</additional_attributes></element><element><id>Relation</id><coordinates><x>364</x><y>380</y><w>190</w><h>60</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>10;10;170;10;170;40</additional_attributes></element></diagram>