Merge git.wmi.amu.edu.pl:s444417/Automat_spozywczy

This commit is contained in:
MikoPat 2021-01-26 18:58:36 +01:00
commit bee4d2b03b
24 changed files with 3650 additions and 0 deletions

66
models/128013.diagram Normal file
View File

@ -0,0 +1,66 @@
format 223
classinstancecanvas 128269 classinstance_ref 128013 // Zaopatrzeniowiec
xyz 12.6 16.6 2005 life_line_z 2000
end
classinstancecanvas 128397 classinstance_ref 128514 // KontrolerAutomatu
xyz 631.3 30.3 2005 life_line_z 2000
end
classinstancecanvas 128909 classinstance_ref 128141 // Ekran_dotykowy
xyz 322.8 28.7 2005 life_line_z 2000
end
classinstancecanvas 131725 classinstance_ref 128269 // Automat
xyz 920 25 2005 life_line_z 2000
end
durationcanvas 129421 classinstance_ref 128269 // Zaopatrzeniowiec:Zaopatrzeniowiec
xyzwh 124 117 2010 11 80
end
durationcanvas 129549 classinstance_ref 128909 // Ekran_dotykowy:Ekran_dotykowy
xyzwh 430 118 2010 11 40
end
durationcanvas 129805 classinstance_ref 128269 // Zaopatrzeniowiec:Zaopatrzeniowiec
xyzwh 124 219 2010 11 66
end
durationcanvas 129933 classinstance_ref 128909 // Ekran_dotykowy:Ekran_dotykowy
xyzwh 430 216 2010 11 112
overlappingdurationcanvas 131469
xyzwh 436 275 2020 11 35
end
end
durationcanvas 130189 classinstance_ref 128397 // KontrolerAutomatu:Automat
xyzwh 721 214 2010 11 96
end
durationcanvas 131853 classinstance_ref 131725 // Automat:Automat
xyzwh 976 251 2010 11 37
end
msg 129677 synchronous
from durationcanvas_ref 129421
to durationcanvas_ref 129549
yz 118 2015 explicitmsg "dodajProdukty()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 230 101
msg 130061 synchronous
from durationcanvas_ref 129805
to durationcanvas_ref 129933
yz 220 2015 explicitmsg "logowanie(haslo: String)"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 203 203
msg 130317 synchronous
from durationcanvas_ref 129933
to durationcanvas_ref 130189
yz 218 2015 explicitmsg "sprawdzHaslo(haslo: String)"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 485 201
msg 131597 synchronous
from durationcanvas_ref 130189
to durationcanvas_ref 131469
yz 299 2025 explicitmsg "logowanie(status: Boolean)"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 492 282
msg 131981 synchronous
from durationcanvas_ref 130189
to durationcanvas_ref 131853
yz 264 2015 explicitmsg "gotowoscOtrzymaniaTowarow()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 748 247
end

327
models/128014.diagram Normal file
View File

@ -0,0 +1,327 @@
format 223
classcanvas 128002 class_ref 128002 // Karta_platnicza
classdiagramsettings member_max_width 0 end
xyz 958.37 1057.87 2000
end
classcanvas 128142 class_ref 128142 // Klient
classdiagramsettings member_max_width 0 end
xyz 799.49 572.57 2000
end
classcanvas 128270 class_ref 128270 // Produkt_gotowy
classdiagramsettings member_max_width 0 end
xyz 1452.43 1536.52 2000
end
classcanvas 128398 class_ref 128398 // Produky_do_przygotowania
classdiagramsettings member_max_width 0 end
xyz 1712.76 1311.75 2000
end
classcanvas 128514 class_ref 128514 // Kasetka
classdiagramsettings member_max_width 0 end
xyz 416.1 449.56 2000
end
classcanvas 128526 class_ref 128526 // Sprzedaz
classdiagramsettings member_max_width 0 end
xyzwh 1193.94 569.16 2000 221 57
end
classcanvas 128654 class_ref 128654 // Terminal
classdiagramsettings member_max_width 0 end
xyz 985.84 864.55 2000
end
classcanvas 128770 class_ref 128770 // Produkt
classdiagramsettings member_max_width 0 end
xyzwh 1456.25 1220.94 2000 146 125
end
classcanvas 128898 class_ref 128898 // Dzial_serwisowy
classdiagramsettings member_max_width 0 end
xyz 1440.6 185.84 2000
end
classcanvas 129026 class_ref 129026 // Monety_klienta
classdiagramsettings member_max_width 0 end
xyz 819.19 773.75 2000
end
classcanvas 129038 class_ref 129038 // Zaopatrzeniowiec
classdiagramsettings member_max_width 0 end
xyz 427.04 1242.63 2000
end
classcanvas 129166 class_ref 129166 // Serwisant
classdiagramsettings member_max_width 0 end
xyz 1462.34 317.3 2000
end
classcanvas 129282 class_ref 129282 // Alarm
classdiagramsettings member_max_width 0 end
xyz 1891.59 608.86 2000
end
classcanvas 129294 class_ref 129294 // Dzial_zaopatrzeniowy
classdiagramsettings member_max_width 0 end
xyz 786.35 1173.42 2000
end
classcanvas 129410 class_ref 129410 // Proba_wlamanie
classdiagramsettings member_max_width 0 end
xyz 1580.02 786.45 2000
end
classcanvas 129550 class_ref 129550 // Saldo_klienta
classdiagramsettings member_max_width 0 end
xyz 678.16 905.3 2005
end
classcanvas 129666 class_ref 129666 // Awaria
classdiagramsettings member_max_width 0 end
xyz 1816.19 454.44 2000
end
classcanvas 129678 class_ref 129678 // Raport_statu_magazynowego
classdiagramsettings member_max_width 0 end
xyz 1157.1 1169.66 2000
end
classcanvas 130050 class_ref 130050 // Procedura_przygotowania_produktu
classdiagramsettings member_max_width 0 end
xyz 2041.92 1306.15 2000
end
classcanvas 130178 class_ref 136578 // Raport_o_awarii
classdiagramsettings member_max_width 0 end
xyz 1727.98 179.31 2000
end
classcanvas 130562 class_ref 136962 // Raport_sprzedazy
classdiagramsettings member_max_width 0 end
xyz 1056.64 294.84 2000
end
classcanvas 130690 class_ref 137090 // Czujnik_wlamaniowy
classdiagramsettings member_max_width 0 end
xyz 1563.69 611.38 2000
end
classcanvas 131586 class_ref 144002 // Platnosc
classdiagramsettings member_max_width 0 end
xyz 976.98 659.62 2000
end
classcanvas 135298 class_ref 128014 // Automat
classdiagramsettings member_max_width 0 end
xyzwh 1417.12 441.58 2000 175 77
end
classcanvas 139394 class_ref 144130 // Gotowka_automatu
classdiagramsettings member_max_width 0 end
xyz 640.38 456 2000
end
classcanvas 140290 class_ref 144258 // Blad_wprowadzania_gotowki
classdiagramsettings member_max_width 0 end
xyz 556.14 1085.55 2000
end
classcanvas 148354 class_ref 129422 // Zwrot_monet
classdiagramsettings member_max_width 0 end
xyz 824.6 994.13 2000
end
classcanvas 149378 class_ref 150786 // Nominal
classdiagramsettings member_max_width 0 end
xyz 806.88 371.62 2000
end
relationcanvas 132866 relation_ref 129026 // Wplacanie
decenter_begin 349
decenter_end 699
from ref 129026 z 2006 label "Wplacanie" italic max_width 255 xyz 756 857 2006 to ref 129550
no_role_a no_role_b
multiplicity_a_pos 751 879 3000 multiplicity_b_pos 821 827 3000
end
relationcanvas 133250 relation_ref 129410 // Skanuje
decenter_begin 430
from ref 128654 z 2001 label "Skanuje" italic max_width 255 xyz 983 971 2001 to ref 128002
no_role_a no_role_b
multiplicity_a_pos 993 1032 3000 multiplicity_b_pos 991 916 3000
end
relationcanvas 133890 relation_ref 129666 // Podlega
decenter_begin 531
decenter_end 485
from ref 128398 z 2001 label "Podlega" italic max_width 255 xyz 1967 1318 2001 to ref 130050
no_role_a no_role_b
multiplicity_a_pos 2015 1342 3000 multiplicity_b_pos 1934 1343 3000
end
relationcanvas 134914 relation_ref 130562 // Jest_realizowana
from ref 129026 z 2001 label "Jest_realizowana" italic max_width 255 xyz 833 721 2001 to ref 131586
no_role_a no_role_b
multiplicity_a_pos 951 713 3000 multiplicity_b_pos 921 771 3000
end
relationcanvas 135042 relation_ref 130690 // Jest_realizowana
decenter_end 423
from ref 131586 z 2001 label "Jest_realizowana" italic max_width 255 xyz 960 770 2001 to ref 128654
no_role_a no_role_b
multiplicity_a_pos 991 839 3000 multiplicity_b_pos 988 724 3000
end
relationcanvas 136066 relation_ref 131074 // <Zawiera
from ref 131586 z 2001 label "<Zawiera" italic max_width 255 xyz 1078 626 2001 to ref 128526
no_role_a no_role_b
multiplicity_a_pos 1182 629 3000 multiplicity_b_pos 1063 680 3000
end
relationcanvas 136194 relation_ref 131202 // Dokonuje
decenter_begin 441
decenter_end 535
from ref 135298 z 2001 label "Dokonuje" italic max_width 255 xyz 1370 535 2001 to ref 128526
no_role_a no_role_b
multiplicity_a_pos 1323 543 3000 multiplicity_b_pos 1471 523 3000
end
relationcanvas 136322 relation_ref 131330 // Dokonuje
from ref 128142 z 2001 label "Dokonuje" italic max_width 255 xyz 883 627 2001 to ref 131586
no_role_a no_role_b
multiplicity_a_pos 957 683 3000 multiplicity_b_pos 859 632 3000
end
relationcanvas 136450 relation_ref 131458 // Uczestniczy>
from ref 128526 z 2001 label "Uczestniczy>" italic max_width 255 xyz 976 579 2001 to ref 128142
no_role_a no_role_b
multiplicity_a_pos 859 617 3000 multiplicity_b_pos 1174 607 3000
end
relationcanvas 136962 relation_ref 131714 // Otrzymuje
decenter_end 546
from ref 129678 z 2001 label "Otrzymuje" italic max_width 255 xyz 1023 1174 2001 to ref 129294
no_role_a no_role_b
multiplicity_a_pos 966 1205 3000 multiplicity_b_pos 1129 1205 3000
end
relationcanvas 137346 relation_ref 132098 // <Generuje
from ref 135298 z 2001 label "<Generuje" italic max_width 255 xyz 1294 385 2001 to ref 130562
no_role_a no_role_b
multiplicity_a_pos 1259 383 3000 multiplicity_b_pos 1394 457 3000
end
relationcanvas 138498 relation_ref 132738 // Jest
decenter_begin 901
decenter_end 523
from ref 128770 z 2001 label "Jest" italic max_width 255 xyz 1658 1311 2001 to ref 128398
no_role_a no_role_b
multiplicity_a_pos 1671 1343 3000 multiplicity_b_pos 1615 1341 3000
end
relationcanvas 138626 relation_ref 132866 // Jest
decenter_end 555
from ref 128770 z 2001 label "Jest" italic max_width 255 xyz 1509 1420 2001 to ref 128270
no_role_a no_role_b
multiplicity_a_pos 1484 1511 3000 multiplicity_b_pos 1500 1352 3000
end
relationcanvas 138754 relation_ref 132994 // Dodaje
from ref 128770 z 2001 label "Dodaje" italic max_width 255 xyz 980.5 1267 2001 to ref 129038
no_role_a no_role_b
multiplicity_a_pos 580 1297 3000 multiplicity_b_pos 1415 1290 3000
end
relationcanvas 138882 relation_ref 133122 // Ma
decenter_begin 483
decenter_end 578
from ref 128770 z 2001 label "Ma" italic max_width 255 xyz 1509 848 2001 to ref 135298
no_role_a no_role_b
multiplicity_a_pos 1494 526 3000 multiplicity_b_pos 1487 1193 3000
end
relationcanvas 139522 relation_ref 133506 // <Posiada
from ref 135298 z 2001 label "<Posiada" italic max_width 255 xyz 1069 466 2001 to ref 139394
no_role_a no_role_b
multiplicity_a_pos 803 492 3000 multiplicity_b_pos 1393 489 3000
end
relationcanvas 139650 relation_ref 133634 // <Laduje
from ref 139394 z 2001 label "<Laduje" italic max_width 255 xyz 579 466 2001 to ref 128514
no_role_a no_role_b
multiplicity_a_pos 591 493 3000 multiplicity_b_pos 599 493 3000
end
relationcanvas 140930 relation_ref 134274 // Ma
decenter_end 578
from ref 129666 z 2001 label "Ma" italic max_width 255 xyz 1689 463 2001 to ref 135298
no_role_a no_role_b
multiplicity_a_pos 1606 495 3000 multiplicity_b_pos 1775 491 3000
end
relationcanvas 141186 relation_ref 134402 // <Wywoluje
decenter_end 558
from ref 130178 z 2001 to point 1790.6 396.4
line 149122 z 2001 label "<Wywoluje" italic max_width 255 xyz 1796 377 2001 to point 1870.6 397.2
line 148994 z 2001 to ref 129666
no_role_a no_role_b
multiplicity_a_pos 1848 430 3000 multiplicity_b_pos 1766 242 3000
end
relationcanvas 141314 relation_ref 134530 // Otrzymuje
from ref 128898 z 2001 label "Otrzymuje" italic max_width 255 xyz 1614 186 2001 to ref 130178
no_role_a no_role_b
multiplicity_a_pos 1686 216 3000 multiplicity_b_pos 1587 216 3000
end
relationcanvas 141442 relation_ref 134658 // Wysyla
decenter_end 490
from ref 128898 z 2001 label "Wysyla" italic max_width 255 xyz 1473 264 2001 to ref 129166
no_role_a no_role_b
multiplicity_a_pos 1464 292 3000 multiplicity_b_pos 1479 236 3000
end
relationcanvas 141570 relation_ref 134786 // Naprawia
decenter_begin 507
from ref 129166 z 2001 label "Naprawia" italic max_width 255 xyz 1470 392 2001 to ref 135298
no_role_a no_role_b
multiplicity_a_pos 1479 417 3000 multiplicity_b_pos 1465 368 3000
end
relationcanvas 141954 relation_ref 134914 // Posiada
from ref 135298 z 2001 label "Posiada" italic max_width 255 xyz 1549 545 2001 to ref 130690
no_role_a no_role_b
multiplicity_a_pos 1575 586 3000 multiplicity_b_pos 1521 526 3000
end
relationcanvas 142082 relation_ref 135042 // Aktywuje^
decenter_end 504
from ref 130690 z 2001 label "Aktywuje^" italic max_width 255 xyz 1608 699 2001 to ref 129410
no_role_a no_role_b
multiplicity_a_pos 1619 760 3000 multiplicity_b_pos 1603 663 3000
end
relationcanvas 142978 relation_ref 135426 // Dodawanie^
decenter_end 333
from ref 139394 z 2006 label "Dodawanie^" italic max_width 255 xyz 674 691 2006 to ref 129550
no_role_a no_role_b
multiplicity_a_pos 688 880 3000 multiplicity_b_pos 690 520 3000
end
relationcanvas 143362 relation_ref 135554 // Dotyczy
decenter_begin 231
decenter_end 958
from ref 128770 z 2001 label "Dotyczy" italic max_width 255 xyz 1421 901 2001 to ref 128526
no_role_a no_role_b
multiplicity_a_pos 1381 633 3000 multiplicity_b_pos 1465 1193 3000
end
relationcanvas 143618 relation_ref 135682 // <Wysyla
decenter_end 52
from ref 129038 z 2001 label "<Wysyla" italic max_width 255 xyz 644.5 1200 2001 to ref 129294
no_role_a no_role_b
multiplicity_a_pos 764 1220 3000 multiplicity_b_pos 580 1274 3000
end
relationcanvas 143746 relation_ref 135810 // Oproznia^
decenter_end 495
from ref 128514 z 2001 label "Oproznia^" italic max_width 255 xyz 459.5 862 2001 to ref 129038
no_role_a no_role_b
multiplicity_a_pos 469 1217 3000 multiplicity_b_pos 469 534 3000
end
relationcanvas 145282 relation_ref 136066 // Generuje
decenter_end 331
from ref 129678 z 2001 label "Generuje" italic max_width 255 xyz 1234 877 2001 to ref 128526
no_role_a no_role_b
multiplicity_a_pos 1243 633 3000 multiplicity_b_pos 1226 1145 3000
end
relationcanvas 146562 relation_ref 136194 // Aktywuje
from ref 130690 z 2001 label "Aktywuje" italic max_width 255 xyz 1776 613 2001 to ref 129282
no_role_a no_role_b
multiplicity_a_pos 1865 638 3000 multiplicity_b_pos 1739 639 3000
end
relationcanvas 147074 relation_ref 136450 // Otrzymuje
decenter_begin 685
from ref 130562 z 2001 label "Otrzymuje" italic max_width 255 xyz 332 867 2001 to point 373 345.6
line 147202 z 2001 to point 369.8 1351.4
line 147458 z 2001 to point 861.4 1355.6
line 147330 z 2001 to ref 129294
no_role_a no_role_b
multiplicity_a_pos 843 1224 3000 multiplicity_b_pos 1025 354 3000
end
relationcanvas 148482 relation_ref 143618 // Wywoluje
from ref 140290 z 2001 label "Wywoluje" italic max_width 255 xyz 735 1041 2001 to ref 148354
no_role_a no_role_b
multiplicity_a_pos 797 1039 3000 multiplicity_b_pos 723 1088 3000
end
relationcanvas 148610 relation_ref 143746 // Oddaje
decenter_begin 527
from ref 148354 z 2001 label "Oddaje" italic max_width 255 xyz 852 892 2001 to ref 129026
no_role_a no_role_b
multiplicity_a_pos 840 838 3000 multiplicity_b_pos 854 968 3000
end
relationcanvas 150018 relation_ref 156802 // Dotyczy
from ref 129678 z 2001 label "Dotyczy" italic max_width 255 xyz 1375 1241 2001 to ref 128770
no_role_a no_role_b
multiplicity_a_pos 1416 1268 3000 multiplicity_b_pos 1368 1238 3000
end
relationcanvas 150274 relation_ref 156930 // Dotyczy
decenter_begin 136
decenter_end 800
from ref 130562 z 2001 label "Dotyczy" italic max_width 255 xyz 243 867 2001 to point 273 308
line 150402 z 2001 to point 270.6 1419.8
line 150530 z 2001 to point 859.8 1420.6
line 151170 z 2001 to ref 128770
no_role_a no_role_b
multiplicity_a_pos 1416 1327 3000 multiplicity_b_pos 1011 313 3000
end
end

66
models/128141.diagram Normal file
View File

@ -0,0 +1,66 @@
format 223
classinstancecanvas 128013 classinstance_ref 128013 // Zaopatrzeniowiec
xyz 19 15 2005 life_line_z 2000
end
classinstancecanvas 128141 classinstance_ref 128269 // Automat
xyz 356 29 2005 life_line_z 2000
end
classinstancecanvas 128269 classinstance_ref 128514 // KontrolerAutomatu
xyz 580 28 2005 life_line_z 2000
end
classinstancecanvas 129421 classinstance_ref 128397 // Dzial_zaopatrzeniowy
xyz 829 28 2010 life_line_z 2000
end
durationcanvas 128397 classinstance_ref 128013 // Zaopatrzeniowiec:Zaopatrzeniowiec
xyzwh 131 109 2010 11 91
end
durationcanvas 128525 classinstance_ref 128141 // Automat:Automat
xyzwh 412 109 2010 11 59
end
durationcanvas 128781 classinstance_ref 128013 // Zaopatrzeniowiec:Zaopatrzeniowiec
xyzwh 131 213 2010 11 88
end
durationcanvas 128909 classinstance_ref 128141 // Automat:Automat
xyzwh 412 214 2010 11 106
overlappingdurationcanvas 129805
xyzwh 418 289 2020 11 25
end
end
durationcanvas 129165 classinstance_ref 128269 // KontrolerAutomatu:Automat
xyzwh 670 232 2010 11 76
end
durationcanvas 129549 classinstance_ref 129421 // Dzial_zaopatrzeniowy:Dzial_zaopatrzeniowy
xyzwh 974 246 2010 11 49
end
msg 128653 synchronous
from durationcanvas_ref 128397
to durationcanvas_ref 128525
yz 109 2015 explicitmsg "dodajProdukty(produkt: Produkt)"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 188 92
msg 129037 synchronous
from durationcanvas_ref 128781
to durationcanvas_ref 128909
yz 214 2015 explicitmsg "uzupelnionoTowar()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 228 197
msg 129293 synchronous
from durationcanvas_ref 128909
to durationcanvas_ref 129165
yz 233 2015 explicitmsg "sprawdzProdukty()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 508 216
msg 129677 synchronous
from durationcanvas_ref 129165
to durationcanvas_ref 129549
yz 266 2020 explicitmsg "wyslijRaport(raport: Raport)"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 738 249
msg 129933 synchronous
from durationcanvas_ref 129165
to durationcanvas_ref 129805
yz 289 2025 explicitmsg "gotowoscDoZamkniecia()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 466 272
end

42
models/128269.diagram Normal file
View File

@ -0,0 +1,42 @@
format 223
classinstancecanvas 128013 classinstance_ref 128013 // Zaopatrzeniowiec
xyz 18 16 2005 life_line_z 2000
end
classinstancecanvas 128141 classinstance_ref 128269 // Automat
xyz 322 28 2005 life_line_z 2000
end
classinstancecanvas 129037 classinstance_ref 128514 // KontrolerAutomatu
xyz 536 27 2005 life_line_z 2000
end
durationcanvas 128269 classinstance_ref 128013 // Zaopatrzeniowiec:Zaopatrzeniowiec
xyzwh 130 113 2010 11 76
end
durationcanvas 128397 classinstance_ref 128141 // Automat:Automat
xyzwh 378 118 2010 11 147
overlappingdurationcanvas 129421
xyzwh 384 213 2020 11 42
end
end
durationcanvas 129165 classinstance_ref 129037 // KontrolerAutomatu:Automat
xyzwh 626 148 2010 11 100
end
msg 128525 synchronous
from durationcanvas_ref 128269
to durationcanvas_ref 128397
yz 118 2015 explicitmsg "zamknijAutomat()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 203 101
msg 129293 synchronous
from durationcanvas_ref 128397
to durationcanvas_ref 129165
yz 153 2015 explicitmsg "poprawnoscZamkniecia()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 423 136
msg 129549 synchronous
from durationcanvas_ref 129165
to durationcanvas_ref 129421
yz 231 2025 explicitmsg "gotowoscNaZamowienie()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 426 214
end

12
models/13.session Normal file
View File

@ -0,0 +1,12 @@
window_sizes 1920 1017 278 1637 860 104
diagrams
active classdiagram_ref 128014 // domain-model
1624 1177 90 A2 0 0
end
show_stereotypes
selected classdiagram_ref 128014 // domain-model
open
classview_ref 128014 // domain
end
end

117
models/134658.diagram Normal file
View File

@ -0,0 +1,117 @@
format 223
classinstancecanvas 128130 classinstance_ref 128514 // KontrolerAutomatu
xyz 107 26 2010 life_line_z 2000
end
classinstancecanvas 128258 classinstance_ref 128642 //
xyz 450 29 2015 life_line_z 2000
end
classinstancecanvas 132226 classinstance_ref 128770 //
xyz 811 27 2000 life_line_z 2000
end
classinstance 133890 class_ref 128142 // Klient
name "" xyz 8 15 2000 life_line_z 2000
classinstancecanvas 134146 classinstance_ref 135682 //
xyz 647 29 2020 life_line_z 2000
end
durationcanvas 128770 classinstance_ref 128130 // KontrolerAutomatu:Automat
xyzwh 230 146 2010 11 158
overlappingdurationcanvas 129538
xyzwh 236 257 2020 11 27
end
overlappingdurationcanvas 134914
xyzwh 236 150 2020 11 25
end
end
durationcanvas 129026 classinstance_ref 128258 // :ManagerTransakcji
xyzwh 514 191 2010 11 329
end
durationcanvas 132354 classinstance_ref 132226 // :ModulPlatnosciGotowkowej
xyzwh 990 222 2010 11 260
overlappingdurationcanvas 135170
xyzwh 996 250 2020 11 26
end
overlappingdurationcanvas 136706
xyzwh 996 450 2020 11 26
end
end
durationcanvas 134274 classinstance_ref 134146 // :Sprzedaz
xyzwh 712 225 2010 11 315
overlappingdurationcanvas 135810
xyzwh 718 498 2020 11 26
end
overlappingdurationcanvas 136450
xyzwh 718 406 2020 11 25
end
end
durationcanvas 134786 classinstance_ref 133890 // :Klient
xyzwh 24 149 2010 11 27
end
msg 129154 synchronous
from durationcanvas_ref 128770
to durationcanvas_ref 129026
yz 204 2015 explicitmsg "rozpocznijTransakcje()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "idProdukt:String"
label_xy 249 187
msg 129666 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 129538
yz 272 2025 explicitmsg "wyswietlKwote()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 260 252
msg 134402 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 134274
yz 230 3005 explicitmsg "create()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "status:State, idProduktu:String, kwota:Kwota"
label_xy 547 212
msg 135042 synchronous
from durationcanvas_ref 134786
to durationcanvas_ref 134914
yz 153 2025 explicitmsg "wybranyProdukt()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "numerProduktu:Int"
label_xy 26 129
msg 135298 synchronous
from durationcanvas_ref 134274
to durationcanvas_ref 135170
yz 264 2025 explicitmsg "aktywuj()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 832 247
msg 135426 return
from durationcanvas_ref 132354
to durationcanvas_ref 134274
yz 336 2015 explicitmsg "kwota:Kwota"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 818 319
msg 135938 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 135810
yz 498 2025 explicitmsg "end()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "status:State"
label_xy 580 481
msg 136066 return
from durationcanvas_ref 134274
to durationcanvas_ref 129026
yz 354 2015 explicitmsg "kwota:Kwota"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 592 337
msg 136578 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 136450
yz 413 2025 explicitmsg "reszta()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 546 396
msg 136834 synchronous
from durationcanvas_ref 134274
to durationcanvas_ref 136706
yz 450 2025 explicitmsg "zwrocReszte()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 772 433
end

117
models/134658_13.d Normal file
View File

@ -0,0 +1,117 @@
format 223
classinstancecanvas 128130 classinstance_ref 128514 // KontrolerAutomatu
xyz 107 26 2010 life_line_z 2000
end
classinstancecanvas 128258 classinstance_ref 128642 //
xyz 450 29 2015 life_line_z 2000
end
classinstancecanvas 132226 classinstance_ref 128770 //
xyz 811 27 2000 life_line_z 2000
end
classinstance 133890 class_ref 128142 // Klient
name "" xyz 8 15 2000 life_line_z 2000
classinstancecanvas 134146 classinstance_ref 135682 //
xyz 647 29 2020 life_line_z 2000
end
durationcanvas 128770 classinstance_ref 128130 // KontrolerAutomatu:Automat
xyzwh 197 146 2010 11 158
overlappingdurationcanvas 129538
xyzwh 203 257 2020 11 27
end
overlappingdurationcanvas 134914
xyzwh 203 150 2020 11 25
end
end
durationcanvas 129026 classinstance_ref 128258 // :ManagerTransakcji
xyzwh 514 191 2010 11 329
end
durationcanvas 132354 classinstance_ref 132226 // :ModulPlatnosciGotowkowej
xyzwh 902 222 2010 11 260
overlappingdurationcanvas 135170
xyzwh 908 250 2020 11 26
end
overlappingdurationcanvas 136706
xyzwh 908 450 2020 11 26
end
end
durationcanvas 134274 classinstance_ref 134146 // :Sprzedaz
xyzwh 681 225 2010 11 315
overlappingdurationcanvas 135810
xyzwh 687 498 2020 11 26
end
overlappingdurationcanvas 136450
xyzwh 687 406 2020 11 25
end
end
durationcanvas 134786 classinstance_ref 133890 // :Klient
xyzwh 24 149 2010 11 27
end
msg 129154 synchronous
from durationcanvas_ref 128770
to durationcanvas_ref 129026
yz 204 2015 explicitmsg "rozpocznijTransakcje()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "idProdukt:String"
label_xy 249 187
msg 129666 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 129538
yz 272 2025 explicitmsg "wyswietlKwote()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 260 252
msg 134402 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 134274
yz 230 3005 explicitmsg "create()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "status:State, idProduktu:String, kwota:Kwota"
label_xy 547 212
msg 135042 synchronous
from durationcanvas_ref 134786
to durationcanvas_ref 134914
yz 153 2025 explicitmsg "wybranyProdukt()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "numerProduktu:Int"
label_xy 26 129
msg 135298 synchronous
from durationcanvas_ref 134274
to durationcanvas_ref 135170
yz 264 2025 explicitmsg "aktywuj()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 832 247
msg 135426 return
from durationcanvas_ref 132354
to durationcanvas_ref 134274
yz 336 2015 explicitmsg "kwota:Kwota"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 818 319
msg 135938 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 135810
yz 498 2025 explicitmsg "end()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "status:State"
label_xy 580 481
msg 136066 return
from durationcanvas_ref 134274
to durationcanvas_ref 129026
yz 354 2015 explicitmsg "kwota:Kwota"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
label_xy 592 337
msg 136578 synchronous
from durationcanvas_ref 129026
to durationcanvas_ref 136450
yz 413 2025 explicitmsg "reszta()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 546 396
msg 136834 synchronous
from durationcanvas_ref 134274
to durationcanvas_ref 136706
yz 450 2025 explicitmsg "zwrocReszte()"
show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default
args "kwota:Kwota"
label_xy 772 433
end

12
models/14.session Normal file
View File

@ -0,0 +1,12 @@
window_sizes 1852 1016 434 1412 843 120
cleanlooks_style
diagrams
active classdiagram_ref 128014 // domain-model
1129 674 100 A4 0 0
end
show_stereotypes
selected classdiagram_ref 128014 // domain-model
open
classview_ref 128014 // domain
end
end

15
models/2.session Normal file
View File

@ -0,0 +1,15 @@
window_sizes 1920 1017 472 1443 890 74
diagrams
active sequencediagram_ref 134658 // 2-1-wprowadzenieNumeruProduktu
1443 890 100 A3 0 0
classdiagram_ref 128014 // domain-model
1316 815 100 A1 708 705
end
show_stereotypes
selected classinstance_ref 128770 //
open
class_ref 128142 // Klient
sequencediagram_ref 134658 // 2-1-wprowadzenieNumeruProduktu
end
end

13
models/cpp_includes Normal file
View File

@ -0,0 +1,13 @@
// "a type" "needed cpp_includes"
"vector" "#include <vector>
using namespace std;"
"list" "#include <list>
using namespace std;"
"map" "#include <map>
using namespace std;"
"string" "#include <string>
using namespace std;"

332
models/generation_settings Normal file
View File

@ -0,0 +1,332 @@
cpp_h_extension "h" cpp_src_extension "cpp" cpp_h_add_extensions "" cpp_src_add_extensions "" java_extension "java" php_extension "php" python_extension "py" idl_extension "idl"
cpp_inline_dont_force_incl_in_h
type_forms 15 // uml cpp java idl cpp_in cpp_out cpp_inout cpp_return
"void" "void" "void" "void" "${type}" "${type} &" "${type}" "${type}"
"any" "void *" "Object" "any" "const ${type}" "${type}" "${type} &" "${type}"
"bool" "bool" "boolean" "boolean" "${type}" "${type} &" "${type} &" "${type}"
"char" "char" "char" "char" "${type}" "${type} &" "${type} &" "${type}"
"uchar" "unsigned char" "char" "octet" "${type}" "${type} &" "${type} &" "${type}"
"byte" "unsigned char" "byte" "octet" "${type}" "${type} &" "${type} &" "${type}"
"short" "short" "short" "short" "${type}" "${type} &" "${type} &" "${type}"
"ushort" "unsigned short" "short" "unsigned short" "${type}" "${type} &" "${type} &" "${type}"
"int" "int" "int" "long" "${type}" "${type} &" "${type} &" "${type}"
"uint" "unsigned int" "int" "unsigned long" "${type}" "${type} &" "${type} &" "${type}"
"long" "long" "long" "long" "${type}" "${type} &" "${type} &" "${type}"
"ulong" "unsigned long" "long" "unsigned long" "${type}" "${type} &" "${type} &" "${type}"
"float" "float" "float" "float" "${type}" "${type} &" "${type} &" "${type}"
"double" "double" "double" "double" "${type}" "${type} &" "${type} &" "${type}"
"string" "string" "String" "string" "${type}" "${type} &" "${type} &" "${type}"
relations_stereotypes 5 // uml cpp java pythonidl
"sequence" "vector" "Vector" "list" "sequence"
"vector" "vector" "Vector" "list" "sequence"
"list" "list" "List" "list" "sequence"
"set" "set" "Set" "set" "sequence"
"map" "map" "Map" "dict" "sequence"
classes_stereotypes 17 // uml cpp java php python idl
"class" "class" "class" "class" "class" "valuetype"
"trait" "class" "class" "trait" "class" "valuetype"
"interface" "class" "interface" "interface" "class" "interface"
"exception" "class" "class" "class" "class" "exception"
"enum" "enum" "enum" "enum" "enum" "enum"
"enum_class" "enum_class" "enum" "enum" "enum" "enum"
"enum_pattern" "enum" "enum_pattern" "enum" "enum" "enum"
"struct" "struct" "class" "class" "class" "struct"
"union" "union" "class" "class" "class" "union"
"typedef" "typedef" "ignored" "ignored" "ignored" "typedef"
"template_typedef" "template_typedef" "ignored" "ignored" "ignored" "ignored"
"boundary" "class" "class" "class" "class" "interface"
"control" "class" "class" "class" "class" "valuetype"
"entity" "class" "class" "class" "class" "valuetype"
"actor" "ignored" "ignored" "ignored" "ignored" "ignored"
"@interface" "ignored" "@interface" "ignored" "ignored" "ignored"
"stereotype" "ignored" "ignored" "ignored" "ignored" "ignored"
cpp_enum_default_type_forms "${type}" "${type} &" "${type} &" "${type}" // in out inout return
other_cpp_types_default_type_forms "const ${type} &" "${type} &" "${type} &" "${type}" // in out inout return
cpp_default_h_content "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H
${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
cpp_default_src_content "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
cpp_default_class_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
cpp_default_external_class_decl "${name}
#include <${name}.h>
"
cpp_default_struct_decl "${comment}${template}struct ${name}${inherit} {
${members}};
${inlines}
"
cpp_default_union_decl "${comment}${template}union ${name} {
${members}};
${inlines}
"
cpp_default_enum_decl "${comment}enum ${name} {
${items}};
"
cpp_default_enumclass_decl "${comment}enum class ${name} {
${items}};
"
cpp_default_typedef_decl "${comment}typedef ${type} ${name};
"cpp_default_template_typedef_decl "${comment}${template}using ${name} = ${inherit};
"
cpp_default_attribute_declaration " ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} ${name}${value};
" // multiplicity 1
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
" // multiplicity * a..b
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} ${name}${multiplicity}${value};
" // multiplicity [..]
cpp_default_enum_item_declaration " ${name}${value},${comment}"
cpp_association_aggregation_declaration
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} * ${name}${value};
" // multiplicity 1
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
" // multiplicity * a..b
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} * ${name}${multiplicity}${value};
" // multiplicity [..]
cpp_aggregation_by_value_declaration
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} ${name}${value};
" // multiplicity 1
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
" // multiplicity * a..b
" ${comment}${static}${thread_local}${mutable}${volatile}${const}${type} ${name}${multiplicity}${value};
" // multiplicity [..]
cpp_get "get_${name}" inline const value_const public
cpp_set "set_${name}" public
cpp_default_operation_declaration " ${comment}${friend}${static}${inline}${virtual}${typeprefix}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
cpp_default_operation_definition "${comment}${inline}${typeprefix}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
${body}}
"
cpp_indent_visibility " " cpp_indent_friendclass " " cpp_indent_subclass " "
java_default_src_content "${comment}
${package}
${imports}
${definition}"
java_default_class_decl "${comment}${@}${visibility}${static}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
java_default_external_class_decl "${name}"
java_default_interface_decl "${comment}${@}${visibility}${static}interface ${name}${extends} {
${members}}
"
java5_default_enum_decl "${comment}${@}${visibility}${static}${final}${abstract}enum ${name}${implements} {
${items};
${members}}
"
java_default_enum_decl "${comment}${@}${visibility}${static}$final class ${name} {
${members}
private final int value;
public int value() {
return value;
}
public static ${name} fromInt(int value) {
switch (value) {
${cases} default: throw new Error();
}
}
private ${name}(int v) { value = v; };
}
"
java_default_attribute_declaration " ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type} ${name}${value};
" // multiplicity 1
" ${comment}${@}${visibility}${static}${final}${transient}${volatile}${stereotype}<${type}> ${name}${value};
" // multiplicity * a..b
" ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type}${multiplicity} ${name}${value};
" // multiplicity N
java5_default_enum_item_declaration " ${@}${name}${value},${comment}"
java_default_enum_item_declaration " ${comment}${@}public static final int _${name}${value};
public static final ${class} ${name} = new ${class}(_${name});
"
java_default_enum_case " case _${name}: return ${name};
"
java_association_aggregation_declaration
" ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type} ${name}${value};
" // multiplicity 1
" ${comment}${@}${visibility}${static}${final}${transient}${volatile}${stereotype}<${type}> ${name}${value};
" // multiplicity * a..b
" ${comment}${@}${visibility}${static}${final}${transient}${volatile}${type}${multiplicity} ${name}${value};
" // multiplicity N
java_get "get${Name}" final public
java_set "set${Name}" public
java_default_operation_definition " ${comment}${@}${visibility}${final}${static}${abstract}${synchronized}${type} ${name}${(}${)}${throws}${staticnl}{
${body}}
"
php_default_src_content "<?php
${comment}
${namespace}
${require_once}
${use}
${definition}
?>
"
php_default_class_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
php_default_enum_decl "${comment}${visibility}final class ${name} {
${items}}
"
php_default_external_class_decl "${name}"
php_default_interface_decl "${comment}interface ${name}${extends} {
${members}}
"
php_default_trait_decl "${comment}trait ${name} {
${members}}
"
php_default_attribute_declaration " ${comment}${visibility}${const}${static}${var}${name}${value};
"
php_default_enum_item_decl " const ${name}${value};${comment}
"
php_default_relation_declaration" ${comment}${visibility}${const}${static}${var}${name}${value};
"
php_get "get${Name}" final
php_set "set${Name}"
php_default_operation_definition " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}${type}
{
${body}}
"
php_param_typed php_out_inout_by_ref python_2_2
python_indent_step " "
python_default_src_content "${comment}
${import}
${definition}"
python_default_class_decl "class ${name}${inherit}:
${docstring}${members}
"
python_default_enum_decl "class ${name}:
${docstring}${members}
"
python_default_external_class_decl "${name}"
python_default_attribute_declaration "${comment}${self}${name} = ${value}
" // multiplicity 1
"${comment}${self}${name} = ${stereotype}()
" // multiplicity != 1
python_default_enum_item_decl "${comment}${self}${name} = ${value}
"
python_default_relation_declaration"${comment}${self}${name} = ${value}
" // multiplicity 1
"${comment}${self}${name} = ${stereotype}()
" // multiplicity != 1
python_default_composition_declaration"${comment}${self}${name} = ${type}()
" // multiplicity 1
"${comment}${self}${name} = ${stereotype}()
" // multiplicity != 1
python_default_operation_definition "${@}${static}${abstract}def ${name}${(}${)}:
${docstring}${body}
"
python_default_initoperation_definition "${@}${static}${abstract}def ${name}${(}${p0}${v0}${)}:
${docstring}super(${class}, ${p0}).__init__()
${body}
"
python_get "get${Name}"
python_set "set${Name}"
idl_default_src_content "#ifndef ${MODULE}_${NAME}_H
#define ${MODULE}_${NAME}_H
${comment}
${includes}
${module_start}
${definition}
${module_end}
#endif
"
idl_default_interface_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
idl_default_valuetype_decl "${comment}${abstract}${custom}valuetype ${name}${inherit} {
${members}};
"
idl_default_struct_decl "${comment}struct ${name} {
${members}};
"
idl_default_typedef_decl "${comment}typedef ${type} ${name};
"
idl_default_exception_decl "${comment}exception ${name} {
${members}};
"
idl_default_union_decl "${comment}union ${name} switch(${switch}) {
${members}};
"
idl_default_enum_decl "${comment}enum ${name} {
${items}};
"
idl_default_external_class_decl "${name}
#include \"${name}.idl\"
"
idl_default_attribute_declaration " ${comment}${readonly}${attribute}${type} ${name};
" // multiplicity 1
" ${comment}${readonly}${attribute}${stereotype}<${type}> ${name};
" // multiplicity * a..b
" ${comment}${readonly}${attribute}${stereotype}<${type},${multiplicity}> ${name};
" // multiplicity N
idl_default_valuetype_attribute_declaration " ${comment}${visibility}${type} ${name};
" // multiplicity 1
" ${comment}${visibility}${stereotype}<${type}> ${name};
" // multiplicity * a..b
" ${comment}${visibility}${stereotype}<${type},${multiplicity}> ${name};
" // multiplicity N
idl_default_const_declaration " ${comment}const ${type} ${name}${value};
" // multiplicity 1
" ${comment}const ${stereotype}<${type}> ${name}${value};
" // multiplicity * a..b
" ${comment}const ${stereotype}<${type},${multiplicity}> ${name}${value};
" // multiplicity N
idl_default_enum_item_declaration " ${name},${comment}"
idl_default_union_item_declaration " ${comment}case ${case} : ${readonly}${type} ${name};" // multiplicity 1
" ${comment}case ${case} : ${readonly}${stereotype}<${type}> ${name};" // multiplicity * a..b
" ${comment}case ${case} : ${readonly}${stereotype}<${type},${multiplicity}> ${name};" // multiplicity N
idl_association_aggregation_declaration
" ${comment}${readonly}${attribute}${type} ${name};
" // multiplicity 1
" ${comment}${readonly}${attribute}${stereotype}<${type}> ${name};
" // multiplicity * a..b
" ${comment}${readonly}${attribute}${stereotype}<${type},${multiplicity}> ${name};
" // multiplicity N
idl_valuetype_association_aggregation_declaration
" ${comment}${visibility}${type} ${name};
" // multiplicity 1
" ${comment}${visibility}${stereotype}<${type}> ${name};
" // multiplicity * a..b
" ${comment}${visibility}${stereotype}<${type},${multiplicity}> ${name};
" // multiplicity N
idl_union_association_aggregation_declaration
" ${comment}case ${case} : ${readonly}${type} ${name};" // multiplicity 1
" ${comment}case ${case} : ${readonly}${stereotype}<${type}> ${name};" // multiplicity * a..b
" ${comment}case ${case} : ${readonly}${stereotype}<${type},${multiplicity}> ${name};" // multiplicity N
idl_get "get_${name}"
idl_set "set_${name}" twoways
idl_default_operation_declaration " ${comment}${oneway}${type} ${name}${(}${)}${raisesnl}${raises};
"
mysqldefault_src_content "${comment}CREATE DATABASE IF NOT EXISTS ${name};
use ${name};
${definition}"
mysql_default_table_decl "DROP TABLE IF EXISTS ${name};
CREATE TABLE ${name} ${definition}${comment};
"
mysql_default_column_decl " ${name} ${type}${notnull}${default}${autoincr}${comment}"
mysql_default_key_decl " ${constraint}${modifier}KEY${name}${type} (${columns})${ref}${comment}"
uml_get_name uml uml_set_name uml
end

1
models/idl_includes Normal file
View File

@ -0,0 +1 @@
// "a type" "needed idl_includes"

1
models/java_imports Normal file
View File

@ -0,0 +1 @@
// "a type" "needed java_imports"

1822
models/models.prj Normal file

File diff suppressed because it is too large Load Diff

1
models/python_imports Normal file
View File

@ -0,0 +1 @@
// "a type" "needed python_imports"

63
models/stereotypes Normal file
View File

@ -0,0 +1,63 @@
package_stereotypes 6 "facade" "framework" "model library" "stub" "toplevel" "profile"
-_-> 3 "access" "import" "from"
end
class_stereotypes 23 "actor" "auxiliary" "boundary" "control" "entity" "enum" "enum_class" "enum_pattern" "exception" "focus" "implementationClass" "interface" "@interface" "metaclass" "stereotype" "struct" "table" "type" "typedef" "template_typedef" "union" "utility" "trait"
---- 4 "list" "set" "vector" "map"
---> 4 "list" "set" "vector" "map"
---|> 4 "{complete,disjoint}" "{incomplete,disjoint}" "{complete,overlapping}" "{incomplete,overlapping}"
o--- 4 "list" "set" "vector" "map"
*--- 4 "list" "set" "vector" "map"
o--> 4 "list" "set" "vector" "map"
*--> 4 "list" "set" "vector" "map"
-_-> 5 "friend" "from" "import" "instantiate" "use"
-_-|> 1 "bind"
end
rolepart_stereotypes 0
use_case_stereotypes 2 "realization" "realization"
---|> 4 "{complete,disjoint}" "{incomplete,disjoint}" "{complete,overlapping}" "{incomplete,overlapping}"
-_-> 2 "include" "extend"
end
artifact_stereotypes 8 "database" "document" "executable" "file" "library" "script" "source" "text"
-_-> 4 "deploy" "manifest" "import" "from"
end
attribute_stereotypes 4 "list" "set" "vector" "map"
operation_stereotypes 0
state_stereotypes 3 "machine" "submachine" "top"
activity_stereotypes 0
flow_stereotypes 3 "interrupt" "multicast" "multireceive"
interruptibleactivityregion_stereotypes 0
pseudostate_stereotypes 0
stateaction_stereotypes 2 "send-signal" "receive-signal"
parameter_stereotypes 0
activityvariable_stereotypes 0
parameterset_stereotypes 0
activitynode_stereotypes 0
activityaction_stereotypes 0
activityobject_stereotypes 2 "datastore" "centralBuffer"
expansionregion_stereotypes 0
activitypartition_stereotypes 0
pin_stereotypes 0
port_stereotypes 0
component_stereotypes 6 "buildComponent" "entity" "implement" "process" "service" "subsystem"
deploymentnode_stereotypes 3 "cpu" "device" "executionEnvironment"
classview_stereotypes 0
usecaseview_stereotypes 0
componentview_stereotypes 0
deploymentview_stereotypes 0
classdiagram_stereotypes 0
classcompositediagram_stereotypes 0
seqdiagram_stereotypes 0
msg_stereotypes 0
coldiagram_stereotypes 0
usecasediagram_stereotypes 0
statediagram_stereotypes 0
activitydiagram_stereotypes 0
componentdiagram_stereotypes 0
deploymentdiagram_stereotypes 0
end

18
models/tools Normal file
View File

@ -0,0 +1,18 @@
// 'tool' "the executable" "displayed string" {target}+
tool "HTML documentation" "ghtml" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Port RolePart Connector ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ClassCompositeDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
tool "HTML doc. (flat)" "ghtml -flat" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Port RolePart Connector ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ClassCompositeDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
tool "HTML doc. (svg)" "ghtml -svg" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Port RolePart Connector ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ClassCompositeDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
tool "HTML doc. (flat, svg)" "ghtml -flat -svg" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Port RolePart Connector ExtraMember ClassInstance State Region StateAction Initial EntryPoint Final Terminate ExitPoint DeepHistory ShallowHistory Junction Choice Fork Join Transition Activity InterruptibleActivityRegion ExpansionRegion ActivityObject ActivityAction Parameter ParameterSet Pin ExpansionNode InitialActivityNode FinalActivityNode ExitPointActivityNode DecisionActivityNode MergeActivityNode ForkActivityNode JoinActivityNode Flow Project Package UseCaseView ClassView ComponentView DeploymentView UseCaseDiagram SeqDiagram ColDiagram ClassDiagram ClassCompositeDiagram ObjectDiagram StateDiagram ActivityDiagram ComponentDiagram DeploymentDiagram UseCase Component Node Artifact Inherit DependOn
tool "Generate .pro" "gpro" Artifact
tool "Import Rose" "irose" Project Package
tool "C++ utilities" "cpp_util" Class
tool "Generate XMI 1.2" "gxmi" Project
tool "Generate XMI 2.x" "gxmi2" Project
tool "Import XMI 2.x" "ixmi2" Project Package
tool "C++ state machine" "stmgen" State
tool "Use case wizard" "usecasewizard" UseCase
tool "Check-in" "file_control ci" Project Package
tool "Check-out" "file_control co" Project Package
tool "Deploy classes" "deplcl" ClassView
tool "Global Change" "global_change" Class Project Package ClassView DeploymentView
tool "Uml projection" "uml_proj" Class Operation Attribute Generalisation Realize Dependency Association DirectionalAssociation Aggregation AggregationByValue DirectionalAggregation DirectionalAggregationByValue Project Package ClassView

40
system-events.md Normal file
View File

@ -0,0 +1,40 @@
Zdarzenia systemowe
===================
Use case 2: Zakup produktu
-----------------
1. wprowadzenie numeru produktu
2. wybranie formy płatności
3. wprowadzanie monet
4. zaprzestanie wprowadzania monet podczas transakcji
Use case 4: Płatność kartą
-----------------
1. wybranie płatności kartą
Use case 7: Dodanie towaru do automatu
-----------------
1. wybranie opcji "dodaj produkty" i podanie hasła przez zaopatrzeniowca
2. dodanie produktów i wybranie opcji "uzypełniono towar" przez zaopatrzeniowca
3. zamknięcie automatu przez zaopatrzeniowca
Use case 8: Naprawa automatu w przypadku awarii systemu
-----------------
1. podłączenie laptopa i podanie hasła
2. włączenie narzędzi diagnostycznych
3. rozpoczęcie naprawy poprzez włączenie narzędzi naprawczych
4. zakończenie naprawy
5. zamkniecie automatu
6. ponowne uruchomienie automatu
7. przeprowadzenie testowej operacji zakupu
Use case 9: Generowanie raportu sprzedaży
-----------------
1. wybranie opcji "generowanie raportu sprzedaży" przez zaopatrzeniowca
2. wybranie produktu i ram czasowych przez zaopatrzeniowca
3. modyfikacje pól danych raportu sprzedaży, wybrane przez zaopatrzeniowca (produkt, ramy czasowe)

96
use-case-2.md Normal file
View File

@ -0,0 +1,96 @@
Use Case 2: Zakup produktu
=====================
**Aktor podstawowy:** Klient
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Klient: zakup produktów
- System płatniczy: realizacja transakcji gotówkowych i płatności kartą
- Dział zaopatrzenia: odbiera raporty od automatu spożywczego
- Watchdog: Program wykrywający błędne działanie systemu.
Warunki wstępne:
----------------
Automat jest w trybie "uruchomiony".
Warunki końcowe:
----------------
Sprzedaż produktu odbyła się poprawnie. Płatność została autoryzowana. Maszyna przechowuje dane o transakcji.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Klient wprowadza numer dostępnego produktu
2. Automat tworzy w systemie nową transakcję, nadaje jej status "rozpoczęta"
3. Automat wyświetla konieczną do zapłacenia kwotę
4. Klient wybiera formę płatności gotówką
5. Klient wrzuca monety
6. Po każdej wrzuconej monecie automat wyświetla pozostałą do zapłacenia kwotę (do momentu aż kwota wprowadzona zrówna się, bądź przewyższy wartości wybranego produktu)
7. Automat wydaje resztę
8. Automat przygotowuje i wydaje produkt
9. Automat sprawdza stan magazynowy sprzedanego produktu i monet
10. Automat automat aktualizuje status transakcji na "zakończona"
Rozszerzenia (ścieżki alternatywne):
------------------------------------
*a. watchdog wykrywa błąd/zacięcie systemu
1. watchdog resetuje automat i wprowadza go w tryb "uruchomiony". Automat sprawdza ostatnią transakcję zapisana w pamięci. Na podstawie kompleksowych danych z pamięci, automat jest wstanie kontynuować transakcję, w każdym jej kroku
2. ostatnia transakcja ma status "rozpoczęta"
2a. ostatnia transakcja ma status "zakończony"
1. automat jest gotowy do obsługi kolejnego klienta
3. automat kontynuuje sprzedaż wykonując następny krok procedury w stosunku do ostatniej zapisanej aktywności
4a. płatność kartą
1. automat komunikuje się z systemem płatniczym, wysyłając mu należną kwotę
2. klient płaci kartą płaniczą w sposób zbliżeniowy
3. system autoryzuje płatność
3a. system płatniczy odrzuca kartę
1. automat informuje klienta o odrzuconej płatności i wraca do kroku 2. scenariusza głównego
4. automat odbiera dane od systemu płatniczego
5. automat wyświetla komunikat o sukcesie
6. Następuje przejście do kroku 5. scenariusza głównego
6a. automat nie dostaje monet przez 45 sekund
1. automat zwraca wszystkie wrzucone monety z bieżącej transakcji
2. automat usuwa transakcję
3. automat jest gotów do realizacji kolejnej transakcji i wykonania kroku 1 scenariusza głównego
9a. stan magazynowy jest równy minimalnemu stanowi magazynowemu
1. automat poprzez sieć internetową wysyła informację do działu zaopatrzenia ze swoim ID i ID surowca.
Wymagania specjalne:
--------------------
- informacje o przebiegu każdego kroku transakcji są na bieżąco zapisywane w pamięci maszyny.
- numery produktów składają się z dwóch cyfr np. 01, 15
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
automat spożywczy jest podłączony do sieci internetowej za pomocą kabla sieciowego.
Kwestie otwarte:
----------------
- czy automat powinien przyjmować walutę Euro?

94
use-case-4.md Normal file
View File

@ -0,0 +1,94 @@
Use Case 1: Płatność kartą
=====================
**Aktor podstawowy:** Klient
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Terminal: otrzymać potwierdzenie zapłaty
- Terminal: obsługiwać karty różnego rodzaju
- System autoryzacjic płatności: autoryzacja płatności
Warunki wstępne:
----------------
Klient wybrał produkt z listy oraz opcje płatności kartą.
Warunki końcowe:
----------------
Płatność zostaje zatwierdzona.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Automat uruchamia terminal.
2. Terminal łączy się z serwisem płatniczym.
3. Automat wyświetla wartość zamówienia na terminalu, powiadamia o kotowości do operacji.
4. Klient dokonuje płatności kartą.
5. Automat wysyła dane potrzebne do przelewu.
6. Automat przetwarza informacje zwrotną.
7. Automat akceptuje transakcje.
Rozszerzenia (ścieżki alternatywne):
------------------------------------
*a. Terminal nie działa
1. Pojawienie się komunikatu, na ekranie startowym, o braktu możliwości płacenia kartą.
2a. Terminal nie może połączyć się z serwisem płatniczym.
1. Termianl ponawia próbę połączenie się
1. Próba połączenia się z serwisem (maksymalnie 3 próby).
2. Informuja dla klienta o braku możliwości płatności kartą.
3. Przerywanie obecnej transakcję.
2. krok trzeci rozszerzenia 3a
4a. Błąd podczas sczytywania danych(ZMIANA)
1. Przekroczenie limitu czasowego, po 30 sekundach oczekiwania na kartę
<!-- 1. Oczekiwanie na kartę przez 30s. -->
2. Informacja o przekroczeniu czas transakcji.
3. Przerwanie obecnej transakcji.
2. Błędne sczytanie danych
1. Prośba o ponowne przyłożenie karty.
2. Maksymalnie 3 próby.
3. Przerwanie obecnej transakcji.
5a. Zerwanie połaczenia z systemem
1. Powrót do kroku 2
6a. Brak potwierdzenia z terminalu
1. Komunikat o przerwaniu transakci.
2. Powrót do punktu 4.
Wymagania specjalne:
--------------------
- Komunikaty muszą pojawiać się na ekranie oraz być wymawiane przez syntezator mowy.
- Akceptowanie wyłącznie kart Visa i Mastercard.
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
2a.
Kwestie otwarte:
----------------
- Ile czasu oczekujemu na ponowną interakcję klienta z systemem po pojawieniu się błędów?
- Czy akceptowane będą wszyskie rodzaje kart?

90
use-case-7.md Executable file
View File

@ -0,0 +1,90 @@
Use Case 7: Dodanie towaru do automatu.
=====================
**Aktor podstawowy:** Zaopatrzeniowiec
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Zaopatrzeniowiec: Dodanie przywiezionych towarów do automatu.
- Dział zaopatrzeniowy: Otrzymanie raportu o stanie produktów.
- Automat: Uzupełnienie ilości produktów.
Warunki wstępne:
----------------
Sprawny automat, gotowy do otrzymania nowych produktów lub uzupełninia ich braków.
Zaopatrzeniowiec z raportem o ilości wolnego miejsca w automacie przystępuje do dodania towarów.
Warunki końcowe:
----------------
Zaopatrzeniowiec dodał produkty.
Automat jest gotowy do obsłuzenia nowego klienta.
Dział zaopatrzeniowy otrzymuje raport o ilości produktów w automacie.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Zaopatrzeniowiec wybiera opcję "dodaj produkty" oraz podając hasło, wprowadza go w stan
gotowości do otrzymania nowych towarów.
2. Zaopatrzeniowiec uzupełnia produkty w automacie.
3. Zaopatrzeniowiec wybiera opcję "uzupełniono towar".
4. Automat sprawdza stan produktów oraz wysyła raport do działu zaopatrzeniowego.
5. Automat przechodzi w stan gotowy do zamknięcia.
6. Zaopatrzeniowiec zamyka automat, automat moze odebrać nowe zamówienie.
Rozszerzenia (ścieżki alternatywne):
------------------------------------
1a. Podano nieprawidłowe hasło.
1. Automat wyświetla komunikat z informacją o podaniu nieprawidłowego hasła.
2. Ekran logowania pojawia się ponownie.
2a. Wielkorotnie wprowadzone nieprawidłowe hasło.
1. Automat przechodzi w stan gotowości do otrzymania nowego zamówienia oraz blokuje opcję dodania nowych produktów na 5 min.
4a. Błąd w trakcie sprawdzania stanu produków w automacie.
1. Automat powiadamia zaopatrzeniowca o błędzie podczas sprawdzania stanu towarów.
2. Zaopatrzeniowiec poprawia umieszczenie produktów oraz wybiera opcję "sprawdź ponownie".
3. Automat przechodzi do fazy sprawdzania stanu produktów.
4b. Automat nie moze wysłać wygenerowanego raportu do działu zaopatrzeniowego.
1. Automat powiadamia o błędzie zaopatrzeniowca.
2. Automat wyświetla raport na ekranie wbudowanego wyświetlacza.
3. Zaopatrzeniowiec, po zapoznaiu się z raportem, potwierdza jego odczytanie.
Wymagania specjalne:
--------------------
- Wprowadzenie zbyt duzej ilości produktów skutuje błędem w trakcie sprawdzania stanu produktów w automacie.
Ściezka 4a.
- Automat przechodzi w stan gotowości do otrzymania nowego zamówienia tylko jeśli jego czujniki wykryją poprawne zamknięcie drzwi. Ściezka 6.
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
1a. Hasło jest długości minimum 10 znaków.
4b. Automat wyświetla na ekranie czytelny dla zaopatrzeniowca raport.
Kwestie otwarte:
----------------
- Umieszczenie opcji serwisowych.
Czy mają one być klikane na ekranie autmatu, dostępne poprzez fizyczny guzik na automacie, czy moze zaopatrzeniowiec ma posiadać specjalne urządzenie serwisowe komunikujące się z automatem?
- Co oznacza czytelny raport?

130
use-case-8.md Normal file
View File

@ -0,0 +1,130 @@
Use Case 8: Naprawa automatu w przypadku awarii systemu
=====================
**Aktor podstawowy:** Serwisant
**Główni odbiorcy i oczekiwania względem systemu**:
------------------------------------------------
- **Serwisant**: Chce by serwis/naprawa poszły bezproblemowo i w ciągui jednego posiedzenia. Oczekuje jeszcze dobrze opisanej instrukcji naprawy automatu i dobrze zaprojektowanego systemu
- **Klient**: Oczekuje sprawności automatu 24/7 oraz szybkiej i bezproblemowej transakcji.
- **Właściciel**: Oczekuje, że automat będzie sprawny, oraz że w przypadku awwarii zostanie ona szybko usunięta, gdyż w przeciwnym wypadku nie będzie zarabiał ze sprzedaży w automacie. Oczekuje jeszcze zadowolenie klienta z powodu możliwości dokonania zakupu przez niego
**Warunki wstępne**:
Występuje pewna awaria w systemie informatycznym automatu spożywczego. Serwisant zna hasło do systemu automatu
...
**Warunki końcowe**:
Automat został naprawiony i jest zdany do użytku klientom. Potwierdzenie naprawy jest wysłane do centrali oraz właściciela automatu
...
**Scenariusz główny (ścieżka podstawowa)**:
---------------------------------------
1. Serwisant przy pomocy klucza otwiera automat
2. Serwisant podłącza swoje urządzenie (Laptop) do Płyty głównej automatu, oraz wpisuje wymagane hasło
3. Serwisant włącza narzędzie diagnostyczne w celu wygenerowania pliku błędów występujących na automacie, oraz ich wstępnej analizie
4. Serwisant analizuje błędy
5. Serwisant Naprawia automat
6. Po ukończonej naprawie Serwisant resetuje automat
7. Serwisant przeprowadza testową operację zakupu produktu z automatu
8. Serwisant raz jeszcze sprawdza Logi systemu, w celu upewnienia się że automat działa poprawnie, i wysyła je do centrali w raporcie z naprawy
9. Serwisant zamyka automat
**Rozszerzenia (ścieżki alternatywne):**
------------------------------------
*a. Laptop służący do naprawy się zawiesza
1. Serwisant resetuje system, loguje się, i żąda odtworzenia stanu przed zawieszeniem się systemu
1a. Laptop nie chce się zrestartować
1. Serwisant wysyła rapot o uszkodzonym laptopie i wraca do centrali
2. System odtwarza system przed zawieszeniem
2a. Odtworzenie stanu nie jest możliwe
1. Serwisant wraca do kroku 2 scenariusza głównego
2a. Płyta główna jest uszkodzona co uniemożliwia podłączenie i analizę błędów
1. Serwisant demontuje płytę główną
2. Serwisant wysyła raport, który zawiera zamówienie na nową płytę główną
3a. Mimo błędów w systemie narzędzie diagnostycznie nie wskazuje na żaden błąd
1. Serwisant sam analizuje wygenerowany plik z błędami
1a. Serwisant również nie jest w stanie odnaleźć błędu w systemie
1. Serwisant wysyła plik z analizą błędów do centrali
2. Serwisant wysyła prośbę o zabranie automatu do serwisu
3. Serwisant odłącza automat od prądu
1b. Serwisant odnajduje własnoręcznie błąd w pliku z błędami
1. Serwisant wysyła raport o odnalezieniu błędu do zespołu odpowiedzialnego za aplikację do analizy błędów
2. Serwisant wraca do punktu 5 scenariusza głównego
3b. System nie posiada błędów i działa w 100% poprawnie
1. Serwisant kontynuuje od 7 kroku scenariusza głównego
6a. Po restarcie automat wykazuje ten sam błąd co przed pojawieniem się serwisanta
1. Serwisant wysyła odpowiedni raport o dziwnym zachowaniu automatu
2. Serwisant wraca do punktu 2 scenariusza głównego
2a. Taki błąd wystąpił więcej niż 1 raz
1. Serwisant wysyła plik z analizą błędów do centrali
2. Serwisant wysyła prośbę o zabranie automatu do serwisu
3. Serwisant odłącza automat od prądu
7a. Automat nie może ukończyć testowej operacji zakupu
1. Serwisant wraca to punktu 2 scenariusza głównego
1a. Sytuacja ta powtarza się więcej niż 1 raz
1. Serwisant wysyła plik z analizą błędów do centrali
2. Serwisant wysyła prośbę o zabranie automatu do serwisu
3. Serwisant odłącza automat od prądu
8a. Podczas sprawdzania logów okazuje się, że w automacie nadal pojawiają się błędy
1. Serwisant wraca do kroku 5 scenariusza głównego
1a. Sytuacja się powtarza więcej niż 1 raz
1. Serwisant wysyła plik z analizą błędów do centrali
2. Serwisant wysyła prośbę o zabranie automatu do serwisu
3. Serwisant odłącza automat od prądu
**Wymagania specjalne**:
--------------------
- Wielojęzyczny interface narzędzia diagnostycznego
- Plik z przeanalizowanymi błędami w języku angielskim
**Wymagania technologiczne oraz ograniczenia na wprowadzane dane**:
---------------------------------------------------------------
2a. Laptop jest w stanie uruchomić narzędzie diagnostyczne, oraz umożliwić naprawę automatu
3a. Plik z analizą błędów zapisany jako semantyczna baza wiedzy w formacie .ttl
**Kwestie otwarte**:
----------------
- Czy serwisant będzie posiadał własny czy służbowy laptop
- Czy serwisant musi rozumieć język angielski w celu analizy błędów

110
use-case-9.md Normal file
View File

@ -0,0 +1,110 @@
Use Case 9: Automat- Generowanie raportu ze sprzedaży
=====================
**Aktor podstawowy: Zaopatrzeniowiec**
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Dział zaopatrzeniowy: uzyskanie informacji, które produkty są najszybciej kupowane.
Warunki wstępne:
----------------
Zaopatrzeniowiec jest zalogwany do systemu.
Warunki końcowe:
----------------
Dział zaopatrezniowy otrzymał od automatu poprawnie wygenerownay raport sprzedazy.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Zaopatrzenieowiec wybiera w systemie funkcję *Generowanie raportu sprzedży*.
2. Zaopatrezniowec wybiera produkt (jeden,kilka lub wszytkie), którego ten raport bedzie dotyczył i go/je akceptuje.
3. Zapatrezniowec akceptuje zamy czasowe raportu (data_od_kiedy, data_do_kiedy).
4. Autoamt generuje raport sprzedaży.
Raport zawiera:
- id_automatu
- id_produktu
- nazwa_produktu
- data_od_kiedy (domyślnie: od dnia ostatniego dołozenia produktu do autoamtu)
- data_do_kiedy (domyślnie: do dnia wybrania opcji (włącznie))
- liczby_zakupów_danego_produktu_w_jednym_dniu (w kazdym dniu)
- liczby_zakupów_danego_produktu_w_jednym_tygodniu (w kazdym tygodniu)
- liczba_zakupów_danego_produktu_w_całym okresie
- liczba_wszystkich_kupionych_produktów_w_jednym_dniu (w kazdym dniu)
- liczba_wszystkich_kupionych_produktów_w_tygodniu (w kazdym tygodniu)
- liczba_wszystkich_kupionych_produktów_w_całym_okresie
- stosunek_liczby_zakupów_danego_produktu_w_jednym_dniu_do_liczby_wszystkich_kupionych_produktów_w_jednym_dniu (w kazdym dniu)
- stosunek_liczby_zakupów_danego_produktu_w_jednym_tygodniu_do_liczby_wszystkich_kupionych_produktów_w_tygodniu (w kazdym tygodniu)
- stosunek_liczby_zakupów_danego_produktu_w_całym_okresie_do_liczby_wszystkich_kupionych_produktów_w_całym_okresie
5. Automat wysyła raport do działu zaopatrzeniowego.
Rozszerzenia (ścieżki alternatywne):
------------------------------------
*a. Brak prądu/ nagłe wyłączenie zasilania
1. Ponowane włączenie automatu
2. Automat przechodzi w tryb *Gotowy do działania*
3. Funkcje przerwane, nalezy rozpocząć od nowa
*b Resetowanie sytemu (uruchamianie ponowanie)
1. Automat przechodzi w tryb *Gotowy do działania*
2. Funkcje przerwane, nalezy rozpocząć od nowa
1a. Wybranie niewłaściwej funkcji
1. Zaopatrezniowec wybiera opcję cofnij
1a. Brak mozliwości przejścia do listy z dostepnymi funkcajmi
1. Po odczekaniu 15s, zaopatrzeniowiec resetuje system
2. Wybranie funkcji *Generowanie raportu sprzedazy*
2a. Zaopatrzeniowiec modyfikuje/zmienia wybrany/-e produkt/-y, którego/-ych będzie dotyczył raport
1. Zaopatrzeniowiec wybiera opcję *Zmień produkt/-y*
2. Automat wyświetla listę produktów
3. Zaopatrzeniowiec modyfikuje listę po przez kliknięcie na dany produkt
3a. Zaopatrzeniowiec modyfikuje ramy czasowe raportu (data_od_kiedy, data_do_kiedy)
1. Zaopatrzeniowiec wybiera opcję *Modyfikuj*
2. Zaopatrzeniowec wpisuje nowe ramy czasowe (recznie- z klawiatury)
4a. Błąd w generowaniu raportu
1. Automat wyświetla komunikat o błędym wykonaniu funkcji
2. Zaopatrzeniowiec wybiera opcję *Wyświetl szczegóły błędu*
3. Automat wyświetla szczegóły błędu
3a. Automat nie wyświetla szczegółów błędu
1. Powrót do kominikatu o błędzie
2. Zaopatrzeniowiec wybiera *Wyświetl szczegóły błędu*
3. System poprawnie wyświetlił szczegóły błędu
3a System nie wyświetlił szczegółów błędu - wyświetlił np. puste okienko
1. Ponownie uruchominie systemu w automacie
4. Powrót do menu głównego
5. Automat przechodzi w stan *Gotowy do uzytku*
5a. Niepowdzenie w wyłaniu raportu
1. Automaty wyświetla kominikat o niepowodzeniu wysłania raportu
2. Zapatrezniowiec wybiera opcję *Wyślij ponowanie*
3. Automata wysyła raport do działu zaopatrezniowego
3a. Automaty wyświetla kominikat o niepowodzeniu wysłania raportu
1. Ponownie uruchominie systemu w automacie
4. Powrót do menu głównego
5. Automat przechodzi w stan *Gotowy do uzytku*
Wymagania specjalne:
--------------------
- Raport jest generowny w języku polskim
- Po wybraniu produktu z listy, dany produkt zostaje podświetlony (jego tło zmienia kolor)
- W raporcie statystyki/liczby poszczególnych produktów, rozpoczynają się od nowe strony (by potem mozna było łatwo wydzielić statystyki poszczegónego produktu)
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
- Automat ma dostęp do internetu
Kwestie otwarte:
----------------
- Raport genrowany w języku obcym

65
use-cases.md Normal file
View File

@ -0,0 +1,65 @@
# **Projekt: Automat**
## Opis skrócony przypadków użycia
### Aktorzy procesu i ich cele:
| Aktor | Cel |
|----------------------|---------------------------------------------------------------------------------|
| Klient | zakup produktów |
| Zaopatrzeniowiec | uzupełnienie brakujących produktów (lub tych które się kończą) |
| Zaopatrzeniowiec | aktualizuje stanu maszyny (w tym gotówkę) |
| Serwisant | przeprowadzenie serwisu automatu |
| Serwisant | naprawa systemu w przypadku awarii |
| System płatniczy | realizacja transakcji gotówkowych i płatności kartą |
| Automat | maszyna wydająca posiłki i produkty |
| Dział zaopatrzeniowy | osoby odpowiedzialne za dostawę i zaopatrywanie automatu (w produkty i gotówkę) |
### Słownik:
| Hasło | Opis |
|---------------------------|---------------------------------------------------------------------------------|
| Stan magazynowy | ilość produktów danego typu w maszynie |
| Minimalny stan magazynowy | ilość produktu danego typu, przy której maszyna wysyła informację o konieczności jej uzupełnienia |
| Gotowy produkt | Produkt niewymagający przygotowania, np. Baton, napój w puszcze |
| Przygotowany produkt | Produkt wymagający wcześniejszego przygotowania np. Obróbki termicznej: ciepła bułka lub zalania wrzątkiem: kawa, herbata |
| Terminal | urządzenie umożliwiające płacenie kartą wyłącznie zbliżeniowo |
| Serwisant | odpowiedzialna za utrzymanie poprawnego działania automatu, wsparcie techniczne |
### UseCases:
**Use Case 1: Automat - Wysłanie komunikatu o stanie magazynowym produktów**
Dział zaopatrzeniowy wysyła prośbę o raport stanu magazynowego wszystkich produktów do maszyny o odpowiednim ID. Automat sprawdza stan wszystkich produktów. Automat wysyła raport stanu do działu zaopatrzenia (ilość każdego z produktów).
**Use Case 2: Klient - zakup produktu**
Klient wprowadza dostępny numer produktu. Automat wyświetla konieczną do zapłacenia kwotę. Klient dokonuje płatności(patrz UC 3 lub UC4). Automat przygotowuje i wydaje produkt. Automat sprawdza stan magazynowy zakupionego produktu. Jeśli, stan magazynowy tego produktu jest równy minimalnemu stanowi magazynowemu, automat poprzez sieć internetową wysyła informację do działu zaopatrzenia ze swoim ID i ID produktu.
**Use Case 3: Automat - płatność gotówką**
Klient wrzuca monety lub podaje banknoty. Automat sumuje pieniądze i wyświetla pozostałą wartość w czasie rzeczywistym. Jeśli wartość zamówienia zostanie osiągnięta, automat akceptuje płatność. Nadwyżka salda oznacza wydanie reszty. Jeżeli stan któregoś z nominałów jest mniejszy od minimalnego, automat wysyła informację do działu zaopatrzenia ze swoim ID, nominałem i jego ilością.
**Use Case 4: Automat - płatność kartą**
Klient wybiera płatność kartą. Automat uruchamia terminal. Terminal łączy się z serwisem płatniczym. Automat wyświetla wartość zamówienia na terminalu. Klient dokonuje płatności kartą. Automat wysyła dane potrzebne do przelewu. Automat przetwarza informacje zwrotną. Automat akceptuje transakcje.
**Use Case 5: Serwisant - Przeprowadzenie serwisu automatu - “diagnostyka automatu”**
Serwisant, przy pomocy dedykowanego systemu uruchamia opcję “diagnostyka automatu”. Automat zmienia swój stan z “gotowy do użytku” na “tryb diagnostyczny”. Automat przeprowadza przygotowaną procedurę diagnozy. Automat generuje raport i wysyła go do działu serwisu. Automat zmienia swój stan na “gotowy do użytku”.
**Use Case 6: Zaopatrzeniowiec Dodanie pieniędzy do automatu**
Zaopatrzeniowiec wybiera w systemie opcję “Dodanie pieniędzy”. Zaopatrzeniowiec dodaje monety do poszczególnych przegródek na odpowiednie nominały. Zaopatrzeniowiec włącza funkcję “przeliczenia pieniędzy”. Automat przelicza monety i banknoty oraz wysyła informację do działu zaopatrzeniowego o nowym stanie kasetki. Zaopatrzeniowiec wyłącza funkcję dodawania pieniędzy i przełącza automat w tryb “gotowy do użytku”.
**Use Case 7: Zaopatrzeniowiec Dodanie towaru do automatu**
Zaopatrzeniowiec uzupełnia brakujący towar w automacie. Po uzupełnieniu wybiera w systemie opcję “Uzupełniono towar”. Następnie system czujników w automacie sprawdza nowy stan poszczególnych produktów i wysyła odpowiedni raport do działu zaopatrzeniowego. Automat przechodzi w stan gotowości do zamknięcia. Po zamknięciu automat przechodzi w tryb “gotowy do użytku”.
**Use Case 8: Serwisant Naprawa automatu w przypadku awarii systemu**
Serwisant wyłącza automat. Następnie pobiera logi systemowe z automatu w celu ich analizy (znalezienia błędu). Po analizie serwisant podpina się do systemu i przełącza go w stan naprawy. Po naprawie serwisant przeprowadza scenariusz zakupu (patrz UC2) a następnie gdy przeszedł on testy to przełącza go w stan gotowości do działania.
**Use Case 9 Automat- Generowanie raportu ze sprzedaży**
Po wybraniu funkcji “Raport sprzedaży” automat generuje raport, w którym znajdują się informacje kiedy dany produkt został wykupiony i po jakim czasie od ostatniego uzupełninia towaru. Raport po wygenerowaniu zostanie wysłany na działu zaopatrzeniowego.
**Use Case 10 Zaopatrzeniowiec - Pobranie pieniędzy z automatu**
Zaopatrzeniowiec przełącza automat w stan pobrania pieniędzy. Czujniki w kasetce przeliczają ilość pieniędzy do wydania i następnie generują raport i wysyłają go do działu zaopatrzeniowego i właściciela automatu. Zaopatrzeniowiec pobiera pieniądze. Zaopatrzeniowiec wyłącza funkcję pobierania pieniędzy i przełącza automat w tryb “gotowy do użytku”.
**Use Case 11 Automat - Awaryjne wyłączenie się automatu**
Automat jest odporny na pojawienie się błędów systemowych podczas działania. W przypadku natrafienia na jeden z nich, automat nie wyłącza się. Zostaje automatycznie pobierany raport błędu, a szczegółowe dane w nim zawarte zostają przesłane do specjalnego systemu powiadomień serwisanta.
**Use Case 12 Automat - Alarm przy próbie włamania**
Automat za pomocą specjalnego czujnika wykrywa nieautoryzowane otwarcie. Oznacza to próbę włamania. Automat włącza alarm dźwiękowy oraz wysyła powiadomienie z dokładnym czasem oraz identyfikatorem maszyny. Serwisant otrzymuje powiadomienie w specjalnym systemie i jest w stanie wyłączyć alarm dźwiękowy zdalnie.