f672a79db5b53dc699a165299795fb86.ppt
- Количество слайдов: 27
Contoh Kasus w Indo. Mart, adl sebuah jaringan mini market yg menggunakan Point-Of-Sale (POS) terminal sbg cash register, dgn fasilitas barcode reader & receipt printer. w Masing-masing store (toko), memiliki sebuah komputer yg terhubung ke seluruh POS yg ada di store tsb. Pd komputer tsb tercatat markup, tax policy, & store totals. 1
Contoh Kasus w Seluruh komputer Store terhubung ke komputer Depot yg ada di kantor pusat. Komputer Depot memberikan informasi kpd komputer Store, spt harga dasar (sebelum markup), informasi deskriptif utk dicetak pd slip penjualan. Komputer Depot memantau inventori masing-masing toko, & menjadualkan pengiriman stok sesuai status inventori tsb. 2
Contoh Kasus DEPOT STORE POS POS 3
USE CASES w Dalam OOA&D, use cases digunakan utk menentukan apakah desain sistem sudah lengkap atau belum. Use case mendefinisikan business rule: w – w What will happen in the business. Di sini hanya akan ditampilkan use case singkat. Dalam tugas maupun ujian, gunakan use case lengkap, mengacu pd referensi OOA&D. 4
USE CASES 1. Initialization: 1. Nyalakan POS station. 2. Nyalakan komputer Store. 3. Nyalakan komputer Depot. Masing-masing akan memulai obyek yg bersesuaian, dan memanggil operasi inisialisasi. 5
USE CASES 2. Login-to-POS: 1. Seorang kasir datang ke sebuah POS station yg telah menyala, kemudian mengetikkan L pd keypad. 2. Keypad memanggil operasi login dr POS station tersebut. 6
USE CASES 3. Request-a-report (ada 2 jenis): 1. Seseorang mengetikkan P atau S pd keypad. 2. Keypad memanggil operasi print_POS_sales_summary atau print_store_sales_summary pd POS station tersebut. 7
USE CASES 4. Perform-a-sale 1. (Optional) Operator mengetikkan Qn pd keypad, utk menyatakan pembelian multiple item pd pembacaan barcode berikutnya. Keypad memanggil operasi item_quantity pd obyek POSTerminal, yg memiliki n sbg input argumen. 8
USE CASES 2. Operator memindai (scan) barang yg dibeli. Scanner memanggil operasi send_barcode pd obyek POSTerminal dgn no barcode sbg input argumen. Ada 2 kemungkinan: a) Barcode tidak dikenal – hasil scan diabaikan, kasir mencoba lagi. Asumsi: akhirnya akan berhasil. b) Barcode dikenal. Lakukan kalkulasi, cetak penjualan di kertas. Sebelum pencetakan baris pertama, cetak dahulu nama toko. 9
USE CASES 3. Ulangi langkah 1 & 2, sampai kasir mengetikkan T pd keypad. Jika hal tsb terjadi, keypad memanggil operasi end_sale pd obyek POSTerminal, tanpa argumen. Lakukan update yg diperlukan, cetak baris lain pada slip pembelanjaan termasuk sub total, pajak, & grand total. 10
Catatan w Setiap baris penjualan pd slip berisi: Barcode No Nama Item Harga Jual Satuan Dari barcode reader pd POS station Dari komputer Depot Jumlah Penjualan Total Harga Jual Dihitung oleh POS station harga satuan sesudah markup x jumlah penjualan Dimasukkan oleh kasir melalui keypad Harga dasar dari komputer Depot Persentase markup disimpan di komputer Store Harga jual (sesudah markup) dihitung di komputer Store 11
Catatan w Agar dpt mencetak setiap baris penjualan pd sales slip & melaporkan inventori toko pd komputer Depot: – Setiap POS station mengirimkan no barcode & jumlah penjualan suatu item ke komputer Store. – Komputer Store menyampaikan informasi tsb ke komputer Depot, yg menjawab dgn informasi harga dasar item tsb, jenis pajak, dan nama item. 12
Catatan – Komputer Store menghitung harga sesudah mark up. Suatu item dpt dijual dgn harga berbeda di toko-toko yg berada pd jaringan Indo. Mart. – Harga sesudah markup dikirimkam dr komputer Store ke POS station. – POS station mencetak nama item & harga satuan item tsb pd slip penjualan. – Komputer Store juga mengirimkan kpd POS station, harga sesudah pajak dr item tsb. 13
Catatan – POS station menghitung dan mencetak harga penjualan sesuai jumlah yg dijual utk item tsb: harga satuan sesudah markup x quantity (jumlah penjualan). w Komputer Store mencatat total penjualan dalam satu hari, yg dpt dihitung melalui pemanggilan operasi print_store_sales_summary. Operasi tsb dpt dipanggil dr setiap POS station, tidak ada console khusus utk komputer Store. 14
Catatan w Pajak dihitung oleh komputer Store sbg final taxable sales total, tidak dihitung peritem, utk menghindari kesalahan kumulatif dlm pembulatan. 15
Objects 4. Store 5. Store. Access 6. Tax Ketiganya ada pd komputer Store, satu LAN dgn POS di toko tsb. 7. Depot Ada pd WAN Indo. Mart Masing-masing obyek memiliki: • Glossary (keterangan) • State variables 16 • Operations 1. Input. Media 2. Output. Media 3. POSTerminal Ketiganya ada pd POS station, yg terhubung dlm LAN setiap toko.
Obyek pd POS Station w Input. Media: – Mensimulasikan keypad & barcode reader devices. w Output. Media: – Mensimulasikan sales printer & screen, yg menunjukkan status penjualan saat ini. w POSTerminal: – Menangani interaksi antara media devices, mengingat status kalkulasi penjualan yg sedang berjalan, menyediakan fasilitas log in bagi kasir, menyampaikan laporan ttg POS station atau komputer Store. 17
Obyek pd Komputer Store w Store: – Traffic keeper & accountant for the store. – Menangani seluruh POS station pd suatu toko, mengatur log in POS station tsb, mencatat & melaporkan seluruh pd penjualan komputer Store & POS station. w Store. Access: – Menangani sebuah POS station, agar obyek Store tdk overloaded. – Menyediakan akses ke basis data inventori. 18
Obyek pd Komputer Store w Tax: – Menyimpan informasi status pajak setiap item yg dijual di suatu toko. – Pd contoh ini, pakaian & makanan tidak dikenai pajak. Barang lainnya dikenakan flat tax (straight percentage of sales price). 19
Obyek pd Komputer Depot w Depot: – Merepresentasikan inventori jaringan Indo. Mart, berisikan informasi seluruh item yg dijual di seluruh toko. 20
IDL Module POS module POS { typedef long POSId; typedef string Barcode; interface Input. Media { typedef string Operator. Cmd; void barcode_input(in Barcode item); keypad_input( in Operator. Cmd cmd); }; interface Output. Media { boolean output_text( }; in string_to_print ); 21
IDL Module POS interface POSTerminal { void void login(); print_POS_sales_summary(); print_store_sales_summary(); send_barcode(in Barcode item); item_quantity(in long quantity); end_of_sale(); }; }; 22
IDL Module AStore module AStore { enum Item. Types {FOOD, CLOTHES, OTHER}; typedef long AStore. Id; struct Item. Info { POS: : Barcode Item. Types float string long }; item; item_type; item_cost; name; quantity; // The barcode. Not. Found exception indicates that the // input barcode does not match to any known item. exception Barcode. Not. Found { POS: : Barcode item; }; 23
IDL Module AStore interface Store. Access; // /forward reference struct POSInfo { POS: : POSId Store. Access float }; id; store_access_reference; total_sales; total_taxes; typedef sequence <POSInfo> POSList; interface Tax { float calculate_tax( in float taxable_amount); float find_taxable_price(in float item_price, in Item. Types item_type); }; 24
IDL Module AStore interface Store { struct Store. Totals { float store_total; float store_tax_total; }; readonly attribute AStore. Id store_id; // The struct Store. Totals and this readonly attribute are used // in place of a pair of float attributes to avoid data inconsistencies // that would result from the following sequence of operations: // // POS 1 invokes a method to read store_total // POS 2 invokes the method update_store_totals // POS 1 invokes a method to read the store_tax_total readonly attribute Store. Totals totals; Store. Access login( in void get_POS_totals( out void update_store_totals( in in in POS: : POSId POSList POS: : POSId float id); POS_data); id, price, taxes); }; 25
IDL Module AStore interface Store. Access { // Item. Tax. Price is 0 or return value of Find. Taxable. Price() void find_price(in POS: : Barcode item, in long quantity, out float item_price, out float item_tax_price, out Item. Info item_info) raises (Barcode. Not. Found); }; }; 26
IDL Module Central. Office module Central. Office { interface Depot { void find_item_info( in AStore: : AStore. Id in POS: : Barcode in long out AStore: : Item. Info raises (AStore: : Barcode. Not. Found); }; }; store_id, item, quantity, item_info) 27
f672a79db5b53dc699a165299795fb86.ppt