diff --git a/models/128013.diagram b/models/128013.diagram new file mode 100644 index 0000000..d4aafc9 --- /dev/null +++ b/models/128013.diagram @@ -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 diff --git a/models/128014.diagram b/models/128014.diagram new file mode 100644 index 0000000..18e8201 --- /dev/null +++ b/models/128014.diagram @@ -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 // + 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 // +using namespace std;" + +"list" "#include +using namespace std;" + +"map" "#include +using namespace std;" + +"string" "#include +using namespace std;" + diff --git a/models/generation_settings b/models/generation_settings new file mode 100644 index 0000000..2fa5995 --- /dev/null +++ b/models/generation_settings @@ -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_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 diff --git a/models/idl_includes b/models/idl_includes new file mode 100644 index 0000000..fceab64 --- /dev/null +++ b/models/idl_includes @@ -0,0 +1 @@ +// "a type" "needed idl_includes" diff --git a/models/java_imports b/models/java_imports new file mode 100644 index 0000000..bbd370a --- /dev/null +++ b/models/java_imports @@ -0,0 +1 @@ +// "a type" "needed java_imports" diff --git a/models/models.prj b/models/models.prj new file mode 100644 index 0000000..af42b72 --- /dev/null +++ b/models/models.prj @@ -0,0 +1,1822 @@ +format 223 +"models" + revision 13 + modified_by 13 "Kuba" + + + + // class settings + default_attribute_visibility private default_relation_visibility private default_operation_visibility public + + classdiagramsettings draw_all_relations yes hide_attributes no hide_operations no hide_getset_operations no hide_ports no show_members_full_definition no show_members_visibility no show_members_stereotype no show_members_context no show_members_multiplicity no show_members_initialization no show_attribute_modifiers no member_max_width 127 show_parameter_dir yes show_parameter_name yes package_name_in_tab no class_drawing_mode natural drawing_language uml show_context_mode no auto_label_position yes show_relation_modifiers no show_relation_visibility no show_infonote no shadow yes gradient none show_stereotype_properties no end + + classcompositediagramsettings auto_label_position yes draw_all_relations yes shadow yes gradient none end + + usecasediagramsettings package_name_in_tab no show_context_mode no auto_label_position yes draw_all_relations yes class_drawing_mode actor shadow yes gradient none show_stereotype_properties no end + + sequencediagramsettings show_full_operations_definition no show_class_of_operation no write_horizontally yes instances_drawing_mode natural drawing_language uml draw_all_relations yes shadow yes gradient none show_stereotype_properties no show_class_context_mode no show_msg_context_mode no end + + collaborationdiagramsettings show_full_operations_definition no show_class_of_operation no show_hierarchical_rank no write_horizontally yes instances_drawing_mode natural drawing_language uml package_name_in_tab no show_class_pack_context_mode no show_msg_context_mode no draw_all_relations yes shadow yes gradient none show_stereotype_properties no end + + objectdiagramsettings write_horizontally yes package_name_in_tab no show_class_pack_context_mode no auto_label_position yes draw_all_relations yes shadow yes gradient none show_stereotype_properties no end + + objectcompositediagramsettings auto_label_position yes draw_all_relations yes shadow yes gradient none end + + componentdiagramsettings package_name_in_tab no show_context_mode no auto_label_position yes draw_all_relations yes shadow yes gradient none + draw_component_as_icon no show_component_req_prov no show_component_rea no show_stereotype_properties no end + + deploymentdiagramsettings package_name_in_tab no show_context_mode no write_horizontally yes auto_label_position yes draw_all_relations yes shadow yes gradient none + draw_component_as_icon no show_component_req_prov no show_component_rea no show_stereotype_properties no end + + statediagramsettings package_name_in_tab no show_context_mode no auto_label_position yes write_label_horizontally yes show_trans_definition no draw_all_relations yes shadow yes gradient none + show_activities yes region_horizontally yes drawing_language uml show_stereotype_properties no end + + activitydiagramsettings package_name_in_tab no show_context_mode no show_opaque_action_definition no auto_label_position yes write_label_horizontally no draw_all_relations yes shadow yes gradient none + show_infonote yes drawing_language uml show_stereotype_properties no end + + class_color yellow duration_color transparent continuation_color gray note_color blue fragment_color transparent subject_color transparent usecase_color yellow package_color transparent component_color green artifact_color green deploymentnode_color gray state_color yellow stateaction_color transparent activity_color transparent activityregion_color transparent activitypartition_color transparent activityaction_color transparent parameterpin_color white generalization_color black + dpi 96 + font_size 11 + diagram_format A4 + + image_root_dir "" + + + mark_for_import + + classview 128014 "domain" + + classdiagramsettings member_max_width 0 end + + classcompositediagramsettings end + + collaborationdiagramsettings end + + objectdiagramsettings end + + objectcompositediagramsettings end + + sequencediagramsettings end + + statediagramsettings + end + + + activitydiagramsettings + end + classdiagram 128014 "domain-model" + classdiagramsettings draw_all_relations no show_members_full_definition yes member_max_width 0 end + size A1 + end + + class 128014 "Automat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 134402 // (Dokonuje) + relation 131202 ---- name "Dokonuje" + a role_name "" multiplicity "1" private + classrelation_ref 134402 // (Dokonuje) + b role_name "" multiplicity "1" private + classrelation_ref 134530 // (Dokonuje) + end + + classrelation 135682 // + relation 131842 ---- + a role_name "" private + classrelation_ref 135682 // + b role_name "" private + classrelation_ref 135810 // + end + + classrelation 136194 // ( + relation 132354 ---- + a role_name "" private + classrelation_ref 136706 // + b role_name "" private + classrelation_ref 136834 // + end + + classrelation 138370 // Ma + relation_ref 133122 // Ma + end + + classrelation 138754 // + relation 133378 ---- + a role_name "" private + classrelation_ref 138754 // + b role_name "" private + classrelation_ref 138882 // + end + + classrelation 139010 // ( + relation_ref 134146 // + end + + classrelation 140674 // Ma + relation_ref 134274 // Ma + end + + classrelation 141698 // Naprawia + relation_ref 134786 // Naprawia + end + + classrelation 141826 // (Posiada) + relation 134914 ---- name "Posiada" + a role_name "" multiplicity "1..*" private + classrelation_ref 141826 // (Posiada) + b role_name "" multiplicity "1" private + classrelation_ref 141954 // (Posiada) + end + + attribute 128130 "id" + private explicit_type "string" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + attribute 137730 "stan" + private explicit_type "string" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + end + + class 128142 "Klient" + visibility package stereotype "actor" + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 128258 // (Uzywa) + relation 128130 ---- name "Uzywa" + a role_name "" multiplicity "1" private + classrelation_ref 128258 // (Uzywa) + b role_name "" multiplicity "1" private + classrelation_ref 128386 // (Uzywa) + end + + classrelation 133634 // + relation 130818 ---- + a role_name "" private + classrelation_ref 133634 // + b role_name "" private + classrelation_ref 133762 // + end + + classrelation 134658 // (Dokonuje) + relation 131330 ---- name "Dokonuje" + a role_name "" multiplicity "1" private + classrelation_ref 134658 // (Dokonuje) + b role_name "" multiplicity "1" private + classrelation_ref 134786 // (Dokonuje) + end + + classrelation 135042 // Uczestniczy> + relation_ref 131458 // Uczestniczy> + end + end + + class 128270 "Produkt_gotowy" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 131586 // + relation 129794 ---- + a role_name "" private + classrelation_ref 131586 // + b role_name "" private + classrelation_ref 131714 // + end + + classrelation 132610 // + relation 130306 ---- + a role_name "" private + classrelation_ref 132610 // + b role_name "" private + classrelation_ref 132738 // + end + + classrelation 137858 // Jest + relation_ref 132866 // Jest + end + end + + class 128398 "Produky_do_przygotowania" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 131202 // + relation_ref 129538 // + end + + classrelation 131330 // (Podlega) + relation 129666 ---- name "Podlega" + a role_name "" multiplicity "1" private + classrelation_ref 131330 // (Podlega) + b role_name "" multiplicity "1" private + classrelation_ref 131458 // (Podlega) + end + + classrelation 132866 // + relation 130434 ---- + a role_name "" private + classrelation_ref 132866 // + b role_name "" private + classrelation_ref 132994 // + end + + classrelation 137602 // Jest + relation_ref 132738 // Jest + end + end + + class 128526 "Sprzedaz" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 132226 // + relation_ref 130050 // + end + + classrelation 132482 // + relation_ref 130178 // + end + + classrelation 132738 // + relation_ref 130306 // + end + + classrelation 132994 // + relation_ref 130434 // + end + + classrelation 133762 // + relation_ref 130818 // + end + + classrelation 134274 // ) + relation 131458 ---- name "Uczestniczy>" + a role_name "" multiplicity "1" private + classrelation_ref 134914 // (Uczestniczy>) + b role_name "" multiplicity "1" private + classrelation_ref 135042 // Uczestniczy> + end + + classrelation 137218 // + relation 132610 ---- + a role_name "" private + classrelation_ref 137218 // + b role_name "" private + classrelation_ref 137346 // + end + + classrelation 143234 // Dotyczy + relation_ref 135554 // Dotyczy + end + + classrelation 144258 // Generuje + relation_ref 136066 // Generuje + end + + attribute 128258 "czas_rozpoczecia" + private explicit_type "date_time" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + end + + class 128654 "Terminal" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 130690 // Aktywuje + relation_ref 129282 // Aktywuje + end + + classrelation 130818 // (Skanuje) + relation 129410 ---- name "Skanuje" + a role_name "" multiplicity "1" private + classrelation_ref 130818 // (Skanuje) + b role_name "" multiplicity "1" private + classrelation_ref 130946 // (Skanuje) + end + + classrelation 133506 // Jest_realizowana + relation_ref 130690 // Jest_realizowana + end + end + + class 128782 "Modul_platnosci_karta" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 129410 // Aktywuje + relation_ref 128642 // Aktywuje + end + + classrelation 130562 // (Aktywuje) + relation 129282 ---- name "Aktywuje" + a role_name "" multiplicity "1" private + classrelation_ref 130562 // (Aktywuje) + b role_name "" multiplicity "1" private + classrelation_ref 130690 // Aktywuje + end + end + + class 128910 "Platnosc_gotowka" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129038 "Zaopatrzeniowiec" + visibility package stereotype "actor" + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 135810 // + relation_ref 131842 // + end + + classrelation 135938 // + relation 131970 ---- + a role_name "" private + classrelation_ref 135938 // + b role_name "" private + classrelation_ref 136066 // + end + + classrelation 136578 // + relation_ref 132226 // + end + + classrelation 136834 // + relation_ref 132354 // + end + + classrelation 136962 // + relation 132482 ---- + a role_name "" private + classrelation_ref 136962 // + b role_name "" private + classrelation_ref 137090 // + end + + classrelation 138114 // Dodaje + relation_ref 132994 // Dodaje + end + + classrelation 138498 // + relation 133250 ---- + a role_name "" private + classrelation_ref 138498 // + b role_name "" private + classrelation_ref 138626 // + end + + classrelation 143362 // ( + relation_ref 132482 // + end + + classrelation 143490 // ( + relation_ref 129154 // + end + + classrelation 140162 // Wywoluje + relation_ref 134018 // Wywoluje + end + + classrelation 151554 // + relation 142978 ---|> + a public + classrelation_ref 151554 // + b parent class_ref 129026 // Monety_klienta + end + + classrelation 151810 // + relation_ref 143106 // + end + + classrelation 152834 // Wywoluje + relation_ref 143618 // Wywoluje + end + + classrelation 152962 // (Oddaje) + relation 143746 ---- name "Oddaje" + a role_name "" multiplicity "1..*" private + classrelation_ref 152962 // (Oddaje) + b role_name "" multiplicity "1" private + classrelation_ref 153090 // (Oddaje) + end + end + + class 129550 "Saldo_klienta" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 130178 // Wplacanie + relation_ref 129026 // Wplacanie + end + + classrelation 130306 // + relation 129154 ---- + a role_name "" private + classrelation_ref 130306 // + b role_name "" private + classrelation_ref 130434 // + end + + classrelation 132098 // + relation 130050 ---- + a role_name "" private + classrelation_ref 132098 // + b role_name "" private + classrelation_ref 132226 // + end + + classrelation 139522 // + relation 133762 ---- + a role_name "" private + classrelation_ref 139522 // + b role_name "" private + classrelation_ref 139650 // + end + + classrelation 139778 // + relation 133890 ---- + a role_name "" private + classrelation_ref 139778 // + b role_name "" private + classrelation_ref 139906 // + end + + classrelation 142978 // Dodawanie^ + relation_ref 135426 // Dodawanie^ + end + + classrelation 143874 // (Wykrywa) + relation 135938 ---- name "Wykrywa" + a role_name "" multiplicity "1" private + classrelation_ref 143874 // (Wykrywa) + b role_name "" multiplicity "1" private + classrelation_ref 144002 // (Wykrywa) + end + + classrelation 152194 // + relation 143362 ---- + a role_name "" private + classrelation_ref 152194 // + b role_name "" private + classrelation_ref 152322 // + end + end + + class 129678 "Raport_statu_magazynowego" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 135298 // + relation_ref 131586 // + end + + classrelation 135426 // (Otrzymuje) + relation 131714 ---- name "Otrzymuje" + a role_name "" multiplicity "1" private + classrelation_ref 135426 // (Otrzymuje) + b role_name "" multiplicity "1" private + classrelation_ref 135554 // Otrzymuje + end + + classrelation 144130 // (Generuje) + relation 136066 ---- name "Generuje" + a role_name "" multiplicity "1" private + classrelation_ref 144130 // (Generuje) + b role_name "" multiplicity "0..1" private + classrelation_ref 144258 // Generuje + end + + attribute 136450 "data" + private explicit_type "date_time" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + classrelation 166274 // (Dotyczy) + relation 156802 ---- name "Dotyczy" + a role_name "" multiplicity "1..*" private + classrelation_ref 166274 // (Dotyczy) + b role_name "" multiplicity "1" private + classrelation_ref 166402 // (Dotyczy) + end + end + + class 129806 "Watchdogs" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129934 "Komunikat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128002 "Karta_platnicza" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 130946 // (Skanuje) + relation_ref 129410 // Skanuje + end + + classrelation 132354 // + relation 130178 ---- + a role_name "" private + classrelation_ref 132354 // + b role_name "" private + classrelation_ref 132482 // + end + end + + class 128130 "Ekran_dotykowy" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 128386 // (Uzywa) + relation_ref 128130 // Uzywa + end + end + + class 128258 "Stan_automatu" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128386 "Polka_na_produkt" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128514 "Kasetka" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 138626 // + relation_ref 133250 // + end + + classrelation 138882 // + relation_ref 133378 // + end + + classrelation 139394 // + relation_ref 132610 // + end + + classrelation 137474 // (Jest) + relation 132738 ---- name "Jest" + a role_name "" multiplicity "1..*" private + classrelation_ref 137474 // (Jest) + b role_name "" multiplicity "1" private + classrelation_ref 137602 // Jest + end + + classrelation 137730 // (Jest) + relation 132866 ---- name "Jest" + a role_name "" multiplicity "1..*" private + classrelation_ref 137730 // (Jest) + b role_name "" multiplicity "1" private + classrelation_ref 137858 // Jest + end + + classrelation 137986 // (Dodaje) + relation 132994 ---- name "Dodaje" + a role_name "" multiplicity "1" private + classrelation_ref 137986 // (Dodaje) + b role_name "" multiplicity "1..*" private + classrelation_ref 138114 // Dodaje + end + + classrelation 138242 // (Ma) + relation 133122 ---- name "Ma" + a role_name "" multiplicity "1" private + classrelation_ref 138242 // (Ma) + b role_name "" multiplicity "1..*" private + classrelation_ref 138370 // Ma + end + + classrelation 143106 // (Dotyczy) + relation 135554 ---- name "Dotyczy" + a role_name "" multiplicity "1" private + classrelation_ref 143106 // (Dotyczy) + b role_name "" multiplicity "1" private + classrelation_ref 143234 // Dotyczy + end + + attribute 128002 "liczba" + private explicit_type "int" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + attribute 128898 "cena" + private explicit_type "float" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + attribute 137218 "id" + private explicit_type "int" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + classrelation 166402 // (Dotyczy) + relation_ref 156802 // Dotyczy + end + + classrelation 166658 // Dotyczy + relation_ref 156930 // Dotyczy + end + end + + class 128898 "Dzial_serwisowy" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 141058 // (Otrzymuje) + relation 134530 ---- name "Otrzymuje" + a role_name "" multiplicity "1..*" private + classrelation_ref 141058 // (Otrzymuje) + b role_name "" multiplicity "1" private + classrelation_ref 141186 // (Otrzymuje) + end + + classrelation 141314 // (Wysyla) + relation 134658 ---- name "Wysyla" + a role_name "" multiplicity "1..*" private + classrelation_ref 141314 // (Wysyla) + b role_name "" multiplicity "1" private + classrelation_ref 141442 // Wysyla + end + end + + class 129026 "Monety_klienta" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 129922 // Przyjmuje + relation_ref 128898 // Przyjmuje + end + + classrelation 130050 // (Wplacanie) + relation 129026 ---- name "Wplacanie" + a role_name "" multiplicity "1" private + classrelation_ref 130050 // (Wplacanie) + b role_name "" multiplicity "1..*" private + classrelation_ref 130178 // Wplacanie + end + + classrelation 133122 // (Jest_realizowana) + relation 130562 ---- name "Jest_realizowana" + a role_name "" multiplicity "1" private + classrelation_ref 133122 // (Jest_realizowana) + b role_name "" multiplicity "1..*" private + classrelation_ref 133250 // (Jest_realizowana) + end + + classrelation 151682 // + relation 143106 ---- + a role_name "" private + classrelation_ref 151682 // + b role_name "" private + classrelation_ref 151810 // + end + + classrelation 152066 // + relation_ref 143234 // + end + + classrelation 152322 // + relation_ref 143362 // + end + + classrelation 152578 // + relation_ref 143490 // + end + + classrelation 153090 // (Oddaje) + relation_ref 143746 // Oddaje + end + + attribute 128642 "liczba" + private type class_ref 150786 // Nominal + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + end + + class 129282 "Alarm" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 142594 // + relation 135298 ---- + a role_name "" private + classrelation_ref 142594 // + b role_name "" private + classrelation_ref 142722 // + end + + classrelation 144514 // Aktywuje + relation_ref 136194 // Aktywuje + end + end + + class 129410 "Proba_wlamanie" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 142210 // Aktywuje^ + relation_ref 135042 // Aktywuje^ + end + + classrelation 142338 // + relation 135170 ---- + a role_name "" private + classrelation_ref 142338 // + b role_name "" private + classrelation_ref 142466 // + end + + classrelation 142466 // + relation_ref 135170 // + end + + classrelation 142722 // + relation_ref 135298 // + end + end + + class 129538 "Czujnik_stanu_magazynowego" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129666 "Awaria" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 140290 // + relation 134146 ---- + a role_name "" private + classrelation_ref 140290 // + b role_name "" private + classrelation_ref 140418 // + end + + classrelation 140546 // (Ma) + relation 134274 ---- name "Ma" + a role_name "" multiplicity "1" private + classrelation_ref 140546 // (Ma) + b role_name "" multiplicity "1..*" private + classrelation_ref 140674 // Ma + end + + classrelation 140930 // + relation_ref 129794 // + end + + classrelation 131970 // + relation_ref 129922 // + end + + classrelation 135170 // + relation 131586 ---- + a role_name "" private + classrelation_ref 135170 // + b role_name "" private + classrelation_ref 135298 // + end + end + + class 130050 "Procedura_przygotowania_produktu" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 131074 // + relation 129538 ---- + a role_name "" private + classrelation_ref 131074 // + b role_name "" private + classrelation_ref 131202 // + end + + classrelation 131458 // (Podlega) + relation_ref 129666 // Podlega + end + + classrelation 131842 // + relation 129922 ---- + a role_name "" private + classrelation_ref 131842 // + b role_name "" private + classrelation_ref 131970 // + end + + attribute 137346 "rodzaj" + private explicit_type "string" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + end + + class 136578 "Raport_o_awarii" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 140802 // ( + relation_ref 131970 // + end + + classrelation 136322 // ( + relation 132226 ---- + a role_name "" private + classrelation_ref 136450 // + b role_name "" private + classrelation_ref 136578 // + end + + classrelation 144642 // + relation 136322 ---- + a role_name "" private + classrelation_ref 144642 // + b role_name "" private + classrelation_ref 144770 // + end + + classrelation 144770 // + relation_ref 136322 // + end + + classrelation 144898 // (Otrzymuje) + relation 136450 ---- name "Otrzymuje" + a role_name "" multiplicity "1" private + classrelation_ref 144898 // (Otrzymuje) + b role_name "" multiplicity "1" private + classrelation_ref 145026 // Otrzymuje + end + + attribute 135682 "data_poczatek" + private explicit_type "date_time" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + attribute 135810 "data_koniec" + private explicit_type "date_time" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + classrelation 166530 // (Dotyczy) + relation 156930 ---- name "Dotyczy" + a role_name "" multiplicity "1..*" private + classrelation_ref 166530 // (Dotyczy) + b role_name "" multiplicity "1..*" private + classrelation_ref 166658 // Dotyczy + end + end + + class 137090 "Czujnik_wlamaniowy" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 141954 // (Posiada) + relation_ref 134914 // Posiada + end + + classrelation 142082 // (Aktywuje^) + relation 135042 ---- name "Aktywuje^" + a role_name "" multiplicity "1" private + classrelation_ref 142082 // (Aktywuje^) + b role_name "" multiplicity "1..*" private + classrelation_ref 142210 // Aktywuje^ + end + + classrelation 144386 // (Aktywuje) + relation 136194 ---- name "Aktywuje" + a role_name "" multiplicity "1" private + classrelation_ref 144386 // (Aktywuje) + b role_name "" multiplicity "1..*" private + classrelation_ref 144514 // Aktywuje + end + end + + class 137218 "Modul_komunikacji" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 137346 "Modul_platnosci_gotowkowej" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 129538 // (Aktywuje) + relation 128770 ---- name "Aktywuje" + a role_name "" multiplicity "1" private + classrelation_ref 129538 // (Aktywuje) + b role_name "" multiplicity "1" private + classrelation_ref 129666 // (Aktywuje) + end + + classrelation 129794 // (Przyjmuje) + relation 128898 ---- name "Przyjmuje" + a role_name "" multiplicity "1..*" private + classrelation_ref 129794 // (Przyjmuje) + b role_name "" multiplicity "1" private + classrelation_ref 129922 // Przyjmuje + end + end + + class 137474 "System_autoryzacji_platnosci_karta" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 144002 "Platnosc" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 129282 // (Aktywuje) + relation 128642 ---- name "Aktywuje" + a role_name "" multiplicity "1" private + classrelation_ref 129282 // (Aktywuje) + b role_name "" multiplicity "1" private + classrelation_ref 129410 // Aktywuje + end + + classrelation 129666 // (Aktywuje) + relation_ref 128770 // Aktywuje + end + + classrelation 133250 // (Jest_realizowana) + relation_ref 130562 // Jest_realizowana + end + + classrelation 133378 // (Jest_realizowana) + relation 130690 ---- name "Jest_realizowana" + a role_name "" multiplicity "1" private + classrelation_ref 133378 // (Jest_realizowana) + b role_name "" multiplicity "1" private + classrelation_ref 133506 // Jest_realizowana + end + + classrelation 133890 // + relation 130946 ---- + a role_name "" private + classrelation_ref 133890 // + b role_name "" private + classrelation_ref 134018 // + end + + classrelation 134018 // + relation_ref 130946 // + end + + classrelation 134146 // ( + relation_ref 133762 // + end + + classrelation 142850 // (Dodawanie^) + relation 135426 ---- name "Dodawanie^" + a role_name "" multiplicity "1" private + classrelation_ref 142850 // (Dodawanie^) + b role_name "" multiplicity "1" private + classrelation_ref 142978 // Dodawanie^ + end + + attribute 128386 "liczba" + private type class_ref 150786 // Nominal + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + classrelation 159618 // + relation 150274 ---- + a role_name "" private + classrelation_ref 159618 // + b role_name "" private + classrelation_ref 159746 // + end + end + + class 144258 "Blad_wprowadzania_gotowki" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + classrelation 139906 // + relation_ref 133890 // + end + + classrelation 140034 // (Wywoluje) + relation 134018 ---- name "Wywoluje" + a role_name "" multiplicity "1" private + classrelation_ref 140034 // (Wywoluje) + b role_name "" multiplicity "1" private + classrelation_ref 140162 // Wywoluje + end + + classrelation 144002 // (Wykrywa) + relation_ref 135938 // Wykrywa + end + + classrelation 151938 // + relation 143234 ---- + a role_name "" private + classrelation_ref 151938 // + b role_name "" private + classrelation_ref 152066 // + end + + classrelation 152450 // + relation 143490 ---- + a role_name "" private + classrelation_ref 152450 // + b role_name "" private + classrelation_ref 152578 // + end + + classrelation 152706 // (Wywoluje) + relation 143618 ---- name "Wywoluje" + a role_name "" multiplicity "1" private + classrelation_ref 152706 // (Wywoluje) + b role_name "" multiplicity "1" private + classrelation_ref 152834 // Wywoluje + end + end + + class 150786 "Nominal" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + attribute 128514 "liczba" + private explicit_type "int" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + + classrelation 159746 // + relation_ref 150274 // + end + + attribute 128770 "rodzaj" + private explicit_type "string" + cpp_decl "" + java_decl "" + php_decl "" + python_decl "" + idl_decl "" + mysql_decl "" + MysqlColumn + end + end + end + + classview 128002 "design" + + classdiagramsettings member_max_width 0 end + + classcompositediagramsettings end + + collaborationdiagramsettings end + + objectdiagramsettings end + + objectcompositediagramsettings end + + sequencediagramsettings end + + statediagramsettings + end + + + activitydiagramsettings + end + sequencediagram 134658 "2-1-wprowadzenieNumeruProduktu" + sequencediagramsettings end + overlapping_bars size A3 + end + + class 164994 "Automat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + classinstance 128514 "KontrolerAutomatu" + type class_ref 164994 // Automat + attributes + end + relations + end + end + + class 165122 "ManagerTransakcji" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + classinstance 128642 "" + type class_ref 165122 // ManagerTransakcji + attributes + end + relations + end + end + + class 164226 "ModulPlatnosciGotowkowej" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + classinstance 128770 "" + type class_ref 164226 // ModulPlatnosciGotowkowej + attributes + end + relations + end + end + + class 165378 "_" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + classinstance 129154 "_" + stereotype "actor" + type class_ref 128142 // Klient + attributes + end + relations + end + end + + classinstance 135682 "" + type class_ref 128526 // Sprzedaz + attributes + end + relations + end + end + + sequencediagram 128013 "7-1-opcjaDodajProdukty" + sequencediagramsettings end + overlapping_bars size A3 + end + + classinstance 128013 "Zaopatrzeniowiec" + stereotype "actor" + type class_ref 129038 // Zaopatrzeniowiec + attributes + end + relations + end + end + + classinstance 128141 "Ekran_dotykowy" + type class_ref 128130 // Ekran_dotykowy + attributes + end + relations + end + end + + classinstance 128269 "Automat" + type class_ref 128014 // Automat + attributes + end + relations + end + end + + sequencediagram 128141 "7-2-dodanieProduktow" + sequencediagramsettings end + overlapping_bars size A3 + end + + classinstance 128397 "Dzial_zaopatrzeniowy" + type class_ref 129294 // Dzial_zaopatrzeniowy + attributes + end + relations + end + end + + sequencediagram 128269 "7-3-zamkniecie" + sequencediagramsettings end + overlapping_bars size A3 + end + end +end diff --git a/models/python_imports b/models/python_imports new file mode 100644 index 0000000..4a1bd3a --- /dev/null +++ b/models/python_imports @@ -0,0 +1 @@ +// "a type" "needed python_imports" diff --git a/models/stereotypes b/models/stereotypes new file mode 100644 index 0000000..0473775 --- /dev/null +++ b/models/stereotypes @@ -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 diff --git a/models/tools b/models/tools new file mode 100644 index 0000000..fbfc524 --- /dev/null +++ b/models/tools @@ -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 diff --git a/system-events.md b/system-events.md new file mode 100644 index 0000000..c3c9cda --- /dev/null +++ b/system-events.md @@ -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) \ No newline at end of file diff --git a/use-case-2.md b/use-case-2.md new file mode 100644 index 0000000..c3d8b33 --- /dev/null +++ b/use-case-2.md @@ -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? \ No newline at end of file diff --git a/use-case-4.md b/use-case-4.md new file mode 100644 index 0000000..3ad9625 --- /dev/null +++ b/use-case-4.md @@ -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ę + + + 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? \ No newline at end of file diff --git a/use-case-7.md b/use-case-7.md new file mode 100755 index 0000000..b18ef7f --- /dev/null +++ b/use-case-7.md @@ -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? \ No newline at end of file diff --git a/use-case-8.md b/use-case-8.md new file mode 100644 index 0000000..211e779 --- /dev/null +++ b/use-case-8.md @@ -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 \ No newline at end of file diff --git a/use-case-9.md b/use-case-9.md new file mode 100644 index 0000000..23999eb --- /dev/null +++ b/use-case-9.md @@ -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 + diff --git a/use-cases.md b/use-cases.md new file mode 100644 index 0000000..8ea7a54 --- /dev/null +++ b/use-cases.md @@ -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. + +