Transcript

Requirement Untuk Contoh Sistem ATM

Aplikasi ini merupakan sebuah simulasi dari mesin ATM yang memiliki pembaca strip magnetic untuk membaca sebuah kartu ATM, sebuah konsol untuk pelanggan yaitu keyboard dan layar, sebuah slot untuk memasukkan amplop, sebuah tempat penyimpanan uang dengan pecahan $20, sebuah printer untuk pembuatan struk transaksi, dan sebuah tombol yang digunakan oleh operator untuk menghidupkan ataupun mematikan mesin. ATM ini akan berkomunikasi langsung dengan computer bank.ATM ini hanya akan melayani seorang pelanggan dalam satu waktu. Pelanggan diharuskan untuk memasukkan kartu ATM dan PIN yang kemudian akan dilakukan validasi sebagai bagian dari transaksi. Customer akan dipersilahkan untuk melakukan satu atau lebih transaksi setelah melalui proses validasi. Kartu ATM akan berada di dalam mesin selama pelanggan masih melakukan transaksi.ATM tersebut harus mampu memberikan pelayanan berikut kepada pelanggan : 1. Pelanggan dapat melakukan penarikan tunai dari rekening yang sesuai dengan kartu ATM tersebut, dengan kelipatan $20. Diperlukan persetujuan dari bank sebelum proses penarikan tunai selesai.2. Pelanggan dapat melakukan deposit ke dalam rekening yang sesuai dengan kartu ATM tersebut. Deposit dapat berupa uang tunai ataupun cek dalam amplop. Pelanggan melakukan input jumlah deposit ke dalam ATM. Diperlukan persetujuan dari bank sebelum proses deposit selesai.3. Pelanggan dapat melakukan transfer uang antara dua rekening yang berbeda sesuai dengan kartu ATM.4. Pelanggan dapat mengakses informasi saldo sesuai dengan kartu ATM yang digunakan.Pelanggan dapat membatalkan sebuah transaksi yang sedang berjalan dengan menekan tombol Cancel.ATM akan melakukan verifikasi dengan computer bank untuk setiap transaksinya dan akan mendapatkan verifikasi yang sesuai dengan izin dari bank tersebut. Sebuah transaksi akan dianggap selesai oleh bank apabila disetujui oleh bank. Untuk deposit, akan ada dua pesan yang akan dikirimkan ke bank. Pesan kedua menunjukkan bahwa pelanggan memasukkan amplop. Jika pelanggan tidak memasukkan amplop ataupun membatalkan proses, maka mesin ATM tidak akan mengirimkan pesan kedua tersebut.Jika PIN yang diinputkan oleh pelanggan tidak valid, maka pelanggan diminta untuk menginputkan kembali PIN yang dimiliki sebelum transaksi dapat dilanjutkan. Jika pelanggan melakukan kesalahan menginputkan PIN sebanyak lebih dari 3 kali, maka kartu ATM akan ditahan di dalam mesin dan pelanggan yang bersangkutan harus menghubungi bank untuk mendapatkan kartu tersebut kembali.Jika transaksi gagal dikarenakan oleh kesalahan lain dari validasi PIN, mesin ATM akan menampilkan penjelasan mengenai kesalahan tersebut dan akan bertanya apakah pelanggan akan melakukan transaksi lainnya.ATM akan memberikan sebuah struk untuk setiap transaksi yang berhasil dilakukan kepada pelanggan. Struk tersebut menunjukkan tanggal, waktu, lokasi mesin ATM, jenis transaksi, jumlah akun, dan saldo yang tersedia .ATM memiliki tombol ON dan OFF yang akan dioperasikan oleh operator untuk memulai dan menghentikan proses pelayanan pelanggan. Setelah tombol ON ditekan, maka operator diharuskan melakukan verifikasi dan memasukkan jumlah uang tunai tersedia. Sedangkan ketika mesin dalam keadaan mati, maka operator dapat mengelola amplop dan mengisi kembali mesin dengan uang tunai maupun struk kosong. ATM juga memiliki sebuah catatan transaksi yang berguna untuk menghindari kesalahan perangkat keras dalam transaksi. Alur Event Untuk Individual Use Case

System Startup Use CaseSistem dimulai ketika operator menyalakan mesin ATM. Operator diharuskan memasukkan informasi jumlah uang yang ada di dalam cash dispenser, dan koneksi ke bank akan segera dilakukan. Jika demikian, pelayanan untuk pelanggan bisa dimulai.System Shutdown Use CaseSistem akan dimatikan oleh operator ketika sudah dipastikan tidak ada pelanggan yang menggunakan mesin dengan menekan tombol off. Koneksi ke bank akan segara diakhiri. Jika demikian, operator dapat mengisi kembali uang tunai dan kertas struk serta mengambil amplop yang ada di dalam mesin ATM.

Session Use Case Sebuah session dimulai ketika seorang pelanggan memasukkan sebuah kartu ATM ke dalam slot card reader dari mesin tersebut. ATM akan menarik kartu tersebut ke dalam mesin dan membacanya. Jika card reader tidak dapat membaca kartu tersebut dikarenakan kerusakan strip pada kartu ataupun kesalahan dalam memasukkan kartu, maka mesin akan mengeluarkan kartu dan menampilkan pesan kesalahan, kemudian session akan dibatalkan. Pelanggan akan diminta memasukkan PIN yang dimilikinya, dan dipersilahkan untuk melakukan satu transaksi ataupun lebih dengan memilih menu yang tersedia dari beberapa tipe transaksi dari tiap kasusnya. Setelah tiap transaksi, pelanggan akan diberikan pertanyaan apakah ia akan melakukan transaksi lainnya. Ketika pelanggan telah melakukan transaksi, kartu akan dikeluarkan dari mesin dan session berakhir. Jika sebuah transaksi dibatalkan akibat banyaknya kesalahan validasi PIN yang dimasukkan, session pun dibatalkan, dengan kondisi kartu ditahan di dalam mesin.Pelanggan dapat menghentikan session dengan menekan tombol Cancel ketika memasukkan sebuah PIN ataupun memilih jenis transaksi.

Transaction Use Case Transaksi merupakan sebuah generalisasi abstrak. Transaksi memiliki beberapa event seperti penarikan tunai, deposit, transfer, dan inqury sebagai beberapa jenis event dari transaksi.Sebuah use case transaksi dimulai dengan sebuah session ketika pelanggan memilih jenis transaksi dari pilihan menu. Pelanggan akan diminta untuk memberikan rincian yang jelas. Transaksi kemudian akan dikirimkan ke bank dengan informasi dari kartu pelanggan dan PIN yang diinputkan oleh pelanggan tersebut.Jika bank menyetujui transaksi, beberapa langkah yang diperlukan untuk menyelesaikan transaksi akan dilakukan, dan kemudia sebuah struk transaksi akan dicetak. Kemudian pelanggan akan ditanyakan apakah ia akan melakukan transaksi lainnya.Jika PIN yang diinputkan oleh pelanggan tidak valid, maka pelanggan akan kembali diminta menginputkan PIN kembali dengan jumlah batasan. Jika kartu pelanggan ditahan karena melebihi batas jumlah tidak valid PIN, transaksi akan dibatalkan dan pelanggan tidak akan diberikan pilihan lain.Jika transaksi dibatalkan oleh pelanggan, atau gagal untuk alasan lain di samping kesalahan input PIN yang tidak valid, layar akan menampilkan penyebab kegagalan transaksi, dan pelanggan akan diberikan kesempatan untuk melakukan transaksi lainnya.Pelanggan dapat membatalkan transaksi dengan menekan tombol Cancel. Seluruh pesan ke bank dan tanggapannya akan dicatat ke dalam log ATM.

Withdrawal Transaction Use CaseTransaksi penarikan tunai akan bertanya kepada pelanggan untuk memilih jenis akun dari menu akun yang memungkinkan melakukan transaksi, dan untuk memilih jumlah dollar dari menu yang ditampilkan. Sistem akan memberikan verifikasi bahwa mesin memiliki jumlah uang yang cukup untuk permintaan tersebut sebelum mengirimkan transaksi ke bank. Jika jumlah uang tidak mencukupi, pelanggan akan diinformasikan dan diminta untuk memasukkan jumlah uang lainnya. Jika transaksi disetujui oleh bank, uang akan dikeluarkan oleh mesin sesuai dengan permintaan dari pelanggan sebelum mengeluarkan tanda terima. Proses mengeluarkan uang pun dicatat di dalam log ATM.Transaksi penarikan tunai dapat dibatalkan oleh pelanggan dengan menekan tombol Cancel kapanpun sebelum menentukan jumlah dollar yang diambil.

Deposit Transaction Use Case Transaksi deposit akan bertanya kepada pelanggan untuk memilih jenis akun dari menu akun yang memungkinkan melakukan transaksi, dan untuk menginputkan jumlah dollar pada keyboard. Transaksi tersebut awalnya dikirim ke bank untuk memverifikasi bahwa ATM dapat menerima sebuah deposit dari pelanggan tersebut kepada akun yang dipilih. Jika transaksi disetujui, mesin ATM akan menerima sebuah amplop dari pelanggan yang berisi uang dan/atau cek sebelum mencetak tanda terima. Ketika amplop telah diterima, pesan kedua akan dikirimkan ke bank untuk melakukan konfirmasi bahwa bank dapat meluluskan akun pelanggan sesuai dengan verifikasi manual dari isi amplop deposito oleh operator kemudian. Bukti penerimaan amplop juga dicata dalam log ATM.Transaksi deposit dapa dbatalkan oleh pelanggan dengan menekan tombol Cancel kapanpun sebelum memasukkan amplop berisi deposito. Transaksi tersebut secara otomatis dibatalkan jika pelanggan gagal memasukkan amplop berisi deposito dalam jangka waktu yang diminta oleh sistem.

Transfer Transaction Use Case Transaksi transfer akan bertanya kepada pelanggan untuk memilih jenis akun dari menu akun yang memungkinkan melakukan transaksi, dan untuk memilih akun lainnya sebagai tujuan transfer, serta menginputkan jumlah dollar pada keyboard. Tidak ada aksi lain yang diperlukan ketika transaksi disetujui oleh bank sebelum mencetak bukti transaksi. Transaksi transfer dapat dibatalkan dengan menekan tombol Cancel kapanpun sebelum menginputkan jumlah dollar.

Inquiry Transaction Use CaseTransaksi inquiry akan bertanya kepada pelanggan untuk memilih jenis akun dari menu akun yang memungkinkan melakukan transaksi. Tidak ada aksi lain yang perlu dilakukan ketika transaksi disetujui oleh bank sebelum mencetak bukti transaksi. Transaksi inquiry dapat dibatalkan oleh pelanggan dengan menekan tombol Cancel kapapun sebelum memilih akun yang diminta.Invalid PIN ExtensionPelanggan diberikan kesempatan untuk menginputkan PIN kembali dimulai ketika sebuah transaksi tidak disetujui oleh bank karena kesalahan PIN. Pelanggan perlu memasukkan kembali PIN dan permintaan awal akan dikirimkan kembali ke bank. Setelah PIN berhasil dimasukkan, data tersebut akan digunakan untuk mencatat setiap transaksi di dalam session. Jika pelanggan gagal memasukkan PIN yang benar sebanyak tiga kali, kartu akan ditahan secara permanen dan layar akan menginformasikan kepada pelanggan untuk menghubungi pihak bank dan kemudian seluruh session pelanggan dibatalkan.Jika pelanggan menekan tombol Cancel saat memasukkan ulang kembali PIN, transaksi awal akan dibatalkan.

Uji Kasus Fungsional Awal untuk Contoh Sistem ATM

Uji kasus awal berikut dapat diidentifikasi pada awal proses desain sebagai sarana untuk memeriksa bahwa pelaksanaan adalah benar pada dasarnya. Tidak ada usaha yang telah dibuat pada saat ini untuk melakukan pengujian menyeluruh, termasuk semua kesalahan yang mungkin dan batas kasus. Yang perlu datang kemudian. Kasus-kasus ini merupakan pemeriksaan awal bahwa fungsi ditentukan oleh use case yang ada.Use caseFungsi yang diujiInitial System StateInputOutput yang diharapkan

System startupSistem dimulai saat saklar diputar ke "on"System dalam keadaan off

mengaktifkan saklar ke "on"

Sistem meminta jumlah kas awal

System startupSistem menerima jumlah kas awalSistem meminta jumlah kasMasukkan jumlah yang sahSystem dalam keadaan on

System startupKoneksi ke bank ditetapkanSistem baru saja diaktifkanMelakukan transaksi yang sahOutput sistem harus menunjukkan bahwa sambungan sudah ditetapkan ke Bank

System shutdownSistem dimatikan ketika saklar diputar ke "off"Sistem dalam keadaan on dan tidak melayani pelangganMengaktifkan saklar ke "off"

System dalam keadaan off

System shutdownKoneksi ke Bank diakhiri ketika sistem dimatikanSistem baru saja ditutupVerifikasi dari sisi bank bahwa koneksi ke ATM tidak ada lagi

SessionSistem membaca kartu ATM seorang pelangganSistem dalam keadaa on dan tidak melayani pelangganMasukkan kartu yang dapat dibacaKartu diterima;Sistem meminta masuknya PIN

SessionSistem menolak kartu yang tidak dapat dibacaSistem dalam keadaan on dan tidak melayani pelangganMasukkan kartu yang tidak dapat dibacaKartu ditolak;Sistem memperlihatkan layar error;Sistem siap untuk memulai sesi baru;

SessionSistem meneriman PIN nya pelangganSistem menanyakan untuk memasukan PINMemasukan PINSistem memperlihatkan menu jenis jenis transaksi

SessionSistem memungkinkan pelanggan untuk melakukan transaksiSistem memperlihatkan menu jenis jenis transaksiMelakukan transaksiSistem menanyakan apakah pelanggan ingin transaksi lain

SessionSistem memungkinkan beberapa transaksi dalam satu sesSistem menanyakan apakah pelanggan ingin transaksi lainMenjawab yaSistem memperlihatkan menu jenis jenis transaksi

SessionSistem berakhir ketika pelanggan memilih untuk tidak melakukan transaksi yang lainSistem menanyakan apakah pelanggan ingin transaksi lainMenjawab tidakSistem mengeluarkan kartu dan siap untuk memulai sesi baru

TransactionsTransaksi setiap individu akan ditest dibawah ini

TransactionsSistem menanganin sebuap PIN yang tidak sah dengan baikSebuah kartu yang tidak dapat dibaca telah dimasukkanMemasukan sebuah PIN yang tidak benar dan kemudian mencoba melakukan transaksiPerpanjangan PIN yang tidak sah dilakukan

WithdrawalSistem menayakan pelanggan untuk memilih sebuah rekening untuk penarikan uangMenu jenis jenis transaksi ditampilkanMemilih transaksi penarikan uangSistem menampilkan sebuah menu jenis jenis rekening

WithdrawalSistem menanyakan pelanggan untuk memilih mata uang dollar untuk penarikan uangMenu jenis jenis rekening ditampilkanMemilih memeriksa rekeningSistem menampilkan menu sejumlah penarikan uang yang memungkinkan

WithdrawalSistem melakukan transaksi penarikan uang yang sah dengan baikSistem menampilkan menu sejumlah penarikan uangMemilih jumlah uang sesuai pilihan yang mana tidak lebih besar dari pada saldo rekeningSistem mencetak sebuah kwitansi yang memperlihatkan jumlah dan saldo yang telah diupdate;Sistem memcatat transaksi dalam log (memperlihatkan pesan ke bank dan approval back)

WithdrawalSistem memeriksa bahwa saldo cukup untuk memnuhi permintaanSistemMemilih jumlah yang lebih besarSistem menampilkan pesan dan menanyakan pelanggan untuk memilih jumlah yang lain

WithdrawalSistem memeriksa bahwa saldo pelanggan cukup untuk memenuhi permintaanSistem meminta jumlah pengambilanMemilih jumlah yang mana sesuai dengan pilihan sistem tapi lebih besar daripada saldo rekeningSistem menampilkan pesan dan menawarkan pelanggan memilih piihan untuk melakukan transaksi lain atau tidak

WithdrawalSebuah transaksi pengambilan dapat ditunda oleh pelanggan kapanapun sebelumnya untuk memilih jumlah dollarSistem menampilkan menu jenis jenis rekeningMenekan tombol cancelSistem menampilkan pesan dan menawarkan pelanggan memilih piihan untuk melakukan transaksi lain atau tidak

WithdrawalSebuah transaksi pengambilan dapat ditunda oleh pelanggan kapanapun sebelumnya untuk memilih jumlah dollarSistem menampilkan menu jumlah dollarMenekan tombol cancelSistem menampilkan pesan dan menawarkan pelanggan memilih piihan untuk melakukan transaksi lain atau tidak

DepositSistem menanyakan pelanggan untuk memilih sebuah rekening untuk depositoMenu jenis jenis transaksi ditampilkanMemilih transaksi depositSistem menampilkan menu jenis jenis rekening

DepositSistem menanyakan pelanggan untuk memasukan nilai uang dengan mata uang dollar untuk didepositoMenu jenis jenis rekening ditampilkanMemilih memeriksa rekeningSistem menampilkan permintaan pelanggan untuk mengetik jumlah dolar

DepositSistem mananyakan pelanggan untuk memasukan sebuah amplopSistem menampilkan permintaan pelanggan untuk mengetik nilai uang dengan mata uang dollarMemasukkan nilai uang dengan mata uang dollarSistem meminta pelanggan untuk memasukan sebuah envelope

DepositSistem menampilkan transaksi setoran dengan baikSistem meminta pelanggan memasukan sebuah amplopMemasukan sebuah envelopeSistem menerima envelope;Sistem mencetak kwitansi yang memperlihatkan jumlah dan saldo yang telah di update;Sistem mencatat transaksi dengan benar kedalam log (yang memperlihatkan pesan ke bank, approval back, dan penerimaan envelope)

DepositSebuah transaksi simpanan dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan sebuah amplopSistem menampilkan menu jenis jenis rekeningMenekan tombol cancelSistem menampilkan pesan dan menawarkan pelanggan pilihan untuk memilih untuk melakukan transaksi lain atau tidak.

DepositSebuah transaksi simpanan dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan sebuah amplopSistem meintan pelanggan untuk memasukan nilai uang dengan mata uang dollarMenekan tombol cancelSistem menampilkan pesan dan menawarkan pelanggan pilihan untuk memilih untuk melakukan transaksi lain atau tidak.

DepositSebuah transaksi simpanan dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan sebuah amplopSistem meminta pelanggan untuk memasukan amplopMenekan tombol cancelSistem menampilkan pesan dan menawarkan pelanggan pilihan untuk memilih untuk melakukan transaksi lain atau tidak.

DepositTransaksi simpanan ditunda secara otomatis jika amplop tidak dimasukkan secara layakSistem meminta pelanggan untuk memasukan amplopMenuggu permintaan berakhirSistem menampilkan pesan dan menawarkan pelanggan pilihan untuk memilih untuk melakukan transaksi lain atau tidak.

TransferSistem menanyakan pelanggan untuk memilih sebuah rekening untuk mentransferMenu jenis jenis transaksi ditampilkanMemilih transaksi transferSistem menampilkan menu jenis jenis rekening yang ditentukan untuk mentransfer

TransferSistem menanyakan pelanggan untuk memilih sebuah rekening untuk ditransferMenu jenis jenis rekening untuk mentransfer ditampilkanMemilih memeriksa rekeningSistem menampilkan menu jenis jenis rekening yang ditentukan untuk ditransfer

TransferSistem menanyakan pelanggan untuk memasukan jumlah uang dengan mata uang dollar untuk ditransferMenu jenis jenis rekening untuk di transfer ditampilkanMemilih rekening tabungansistem menampilkan permintaan untuk pelanggan memilih mata uang dollar

TransferSistem melakukan sebuah transaksi transfer dengan baikSistem menampilkan sebuah permintaan untuk pelanggan memilih mata uang dollarMemasukan jumlah uang dengan mata uang dollarSistem mencetak sebuah kwitansi yang memperlihatkan jumlah dan saldo yang telah diupdate

TransferSebuah trasaksi transfer dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan nilai uang dengan mata uang dollarSistem menampilkan menu jenis jenis rekening yang ditentukan untuk mentransferMenekan tombol cancelSistem menampilkan sebuah pesan dan menawarkan pelanggan memilih pilihan untuk melakukan transaksi lain atau tidak

TransferSebuah trasaksi transfer dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan nilai uang dengan mata uang dollarSistem menampilkan menu jenis jenis rekening yang ditentukan untuk ditransferMenekan tombol cancelSistem menampilkan sebuah pesan dan menawarkan pelanggan memilih pilihan untuk melakukan transaksi lain atau tidak

TransferSebuah trasaksi transfer dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memasukan nilai uang dengan mata uang dollarSistem meminta pelanggan untuk memasukan nilai uang dengan mata uang dollarMenekan tombol cancelSistem menampilkan sebuah pesan dan menawarkan pelanggan memilih pilihan untuk melakukan transaksi lain atau tidak

InquirySistem menanyakan pelanggan untuk memilih sebuah rekeningMenu jenis jenis transaksi ditampilkanMemilih transaksiSistem menampilkan menu jenis jenis rekening

InquirySistem menampilkan sebuah transaksi dengan baikSistem menampilkan menu jenis jenis rekeningMemilih memeriksa rekeningSistem mencetak sebuah kwitansi yang memperlihatkan saldo dengan benar;Sistem mencatat transaksi dengan benar dalam log (memperlihatkan pesan ke bank dan approval back)

InquirySebuah transaksi dapat ditunda oleh pelanggan kapanpun sebelumnya untuk memilih sebuah rekeningSistem menampilkan menu jenis jenis rekeningMenekan tombol cancelSistem menampilkan pesan dan menyarankan pelanggan memilih pilihan untuk melakukan transaksi yang lain atau tidak

Invalid PIN Extensionpelanggan ditanya untuk memasukan kembali PINMemasukan PIN yang tidak benar;Percobaan transaksi memeriksa rekening milik pelanggan

pelanggan ditanya untuk memasukan kembali PIN

Invalid PIN ExtensionMemasukan kembali PIN yang benar diterimaSistem menanyakan untuk memasukan PIN dan transaksi selesai dengan normalMemasukan PIN yang benarTransaksi tercapai dengan sukses

Invalid PIN ExtensionSebuah PIN dimasukan kembali dengan benar digunakan untuk transaksi berikutnyaSebuah PIN yang tidak benar telah dimasukan kembali danMelakukan transaksi yang lainTransaksi ini tercapai sukses dengan baik

Invalid PIN ExtensionMemasukan kembali PIN yang tidak benar tidak diterimaPermintaan untuk memasukan kembali PIN ditampilkanMemasukan PIN yang tidak benarSebuah pesan ditampilkan dan memasukan kembali PIN kembali diminta

Invalid PIN ExtensionMemasukan kembali PIN yang benar untuk percobaan kedua diterimaPermintaan untuk memasukan kembali PIN ditampilkanMemasukan PIN yang tidak benar untuk yang pertama kali, kemudian PIN yang benar untuk kedua kalinyaTransaksi tercapai dengan sukses

Invalid PIN ExtensionMemasukan kembali PIN yang benar untuk percobaan ketiga diterimaPermintaan untuk memasukan kembali PIN ditampilkanMemasukan PIN yang tidak benar untuk yang pertama dan kedua kali, kemudian PIN yang benar untuk yang ketiga kalinyaTransaksi tercapai dengan sukses

Invalid PIN ExtensionPermintaan untuk memasukan kembali PIN ditampilkanMemasukan PIN yang tidak benar sebanyak tiga kaliSebuah pesan ditampilkan;Kartu ditahan oleh mesin;Sesi diakhiri

Analysis Case

Pembacaan awal pada use case menunjukkan bahwa berikut ini akan menjadi bagian dari sistem :

Sebuah object controller mewakili ATM itu sendiri (mengelola batasan tiap object yang tercantum di bawah) Batasan object-object tersebut mewakili setiap komponen dari ATM : Operator panel. Card reader. Konsol pelanggan, yaitu sebuah layar dan keyboard. Koneksi jaringan ke bank. Cash dispenser. Envelope acceptor. Printer struk transaksi. Controller object yang sesuai untuk kasus penggunaan (dengan ketentuan bahwa class ATM dapat menangani kasus penggunaan itu sendiri) Session Transaksi (berupa fitur umum dalam transaksi menggunakan sebuah mesin ATM) Sebuah entity object yang mewakili informasi yang dikodekan pada kartu ATM yang dimasukkan oleh pelanggan. Sebuah entity object yang mewakili data transaksi yang dikelola oleh mesin.CRC Cards Untuk Contoh ATM

Menggunakan kartu CRC untuk memberikan rensponsibiliti macam macam class untuk tugas tugas yang diperlukan oleh macam macam penggunaan class memimpin ke pembuatan kartu kartu berikut.Link berikut dapat digunakan untuk pergi secara langsung ke kartu kartu CRC untuk jenis jenis class: Class ATM Boundary/objek komponen bagian bagian dari ATM Class CardReader Class CashDispenser Class CustomerConsole Class EnvelopeAcceptor Class Log Class NetworkToBank Class OperatorPanel Class ReceiptPrinter Controller objek yang berhubungan ke jenis jenis use case Class Session Class Transaction Class Withdrawal Class Deposit Class Transfer Class Inquiry Entity objects found necessary when assigning responsiblities to other objects Class Balances Class Card Class Message Class Receipt Class StatusClass ATM

Responsibiliti

Mulai nyala ketika saklar menyalaOperatorPanelCashDispenserNetworkToBank

Mulai mati ketika saklar matiNetwork ToBank

Memulai sesi baru ketika kartu dimasukan pelangan CustomerConsoleSession

Menyediakan akses ke komponen bagian bagian untuk sesi dan transaksi transaksi

Class CardReader

ResponsibilitiKolaborator

Menceritakan ATM ketika kartu dimasukanATM

Membaca informasi dari kartuKartu

Mengeluarkan kartu

Menahan kartu

Class CashDispenser

ResponsibilitiKolaborator

Keep track of cash on hand, memulai dengan jumlah awal Melaporkan uang yang tersediaMengeluarkan uangLog

Class CustomerConsole

ResponsibilitiKolaborator

Menampilkan pesanMenampilan sebuah prompt, menerima sebuah PIN dari keyboard Menampilkan sebuah prompt dan menu, menerima sebuah pilihan dari keyboardMenampilkan sebua prompt, menerima nilai uang mata uang dollar dari keyboardMenanggapi tombol cancel yang telah ditekan oleh pelanggan

Class EnvelopeAcceptor

ResponsibilitiKolaborator

Menerima amplop dari pelanggan, melaporkan jika waktu diakhiri atau ditundaLog

Class Log

ResponsibilitiKolaborator

log pesan mengirim ke banklog tanggapan dari banklog pembagian tunailog penerimaan sebuah amplop

Class NetworkToBank

ResponsibilitiKolaborator

Koneksi awal ke bank saat nyala Mengirim pesan ke bank dan menunggu tanggapanMessageLogBalancesstatus

Mengakhiri koneksi ke bank saat mati

Class OperatorPanel

ResponsibilitiKolaborator

Memberitahukan ATM merubah ATM

Class ReceiptPrinter

ResponsibilitiKolaborator

Mencetak kwitansikwintansi

Class Session

ResponsibilitiKolaborator

Menampilkan sesi use caseATMCardReaderCardCostumerConsoleTransaction

Meubah nilai PIN jika pelanggan telah memasukkan kembali nilai PIN nya

Abstract Class Transaction

ResponsibilitiesCollaborators

Memungkinkan pelanggan memilih tipe transaksiATM

CustomerConsole

Withdrawal

Deposit

Transfer

Inquiry

Menjalankan Use Case TransactionATM

CustomerConsole

Withdrawal

Deposit

Transfer

Inquiry

Message

NetworkToBank

Receipt

ReceiptPrinter

Menjalankan extensi PIN yang tidak validCustomerConsole

Session

CardReader

Class Withdrawal

ResponsibilitiesCollaborators

Menjalankan operasi khas pada use case Transaction WithdrawalCustomerConsole

CashDispenser

Message

Receipt

Class Deposit

ResponsibilitiesCollaborators

Menjalankan operasi khas pada use case Transaction DepositCustomerConsole

EnvelopeAcceptor

Message

Receipt

Class Transfer

ResponsibilitiesCollaborators

Menjalankan operasi khas pada use case Transaction TransferCustomerConsole

Message

Receipt

Class Inquiry

ResponsibilitiesCollaborators

Menjalankan operasi khas pada use case Transaction InquiryCustomerConsole

Message

Receipt

Class Balances

ResponsibilitiesCollaborators

Merupakan informasi saldo akun yang dikembalikan oleh bank

Class Card

ResponsibilitiesCollaborators

Merupakan informasi yang dikodekan pada kartu ATM pelanggan

Class Message

ResponsibilitiesCollaborators

Merupakan informasi yang dikirim melalui jaringan ke bank

Class Receipt

ResponsibilitiesCollaborators

Merupakan informasi yang akan dicetak pada resep

Class Status

ResponsibilitiesCollaborators

Merupakan informasi status transaksi yang dikembalikan oleh bank

Class Diagram untuk Contoh Sistem ATMDapat kita lihat di bawah adalah class diagram untuk sistem ATM. Struktur dasar dari class diagram tersebut dibangun dari keterkaitan antar class. Jika sebuah class berinteraksi dengan class lainnya sebagai collaborator, atau mengirimkan sebuah pesan ke sebuah object dari class tersebut selama interaksi, maka akan ada asosiasi keterkaitan dari class tersebut.Dalam kasus sistem ATM ini, salah satu tanggung jawab dari mesin ATM adalah menyediakan akses untuk komponen-komponennya untuk session dan transaksi, dengan demikian session dan transaksi memiliki asosiasi dengan ATM dimana pada tiap gilirannya memiliki interaksi dengan class lainnya untuk mewakili komponen bagian lainnya secara individual. Penentuan class merupakan sebuah kebutuhan yang diutarakan dari berbagai macam sisi dalam proses desain. Beberapa class pun diutarakan ketika fase analisis serta pada beberapa bagian lainnya.Message digunakan untuk mewakili pesan ke bank.Receipt digunakan untuk mengenkapsulasi informasi yang akan dicetak pada struk.Status digunakan untuk mewakili nilai kembali dari pesan ke bank.Balances digunakan untuk merekam informasi saldo yang dikembalikan oleh bank.Money digunakan untuk mewakili jumlah uang.AccountInformation berisi nama dari beberapa tipe akun yang dapat dipilih oleh pelanggan.Artinya, desain OO bukanlah sebuah waterfall process. Untuk mencegah diagram yang terlalu besar, hanya nama dari tiap class yang ditunjukkan. Atribut dan method ditampilkan pada rincian desain.

State Chart untuk Contoh Sistem ATM

Tiga dari object yang telah didantifikasi memiliki perilaku yang cukup komplek untuk disusun menjadi sebuah state chart. Objek-objek tersebut mewakili mesin itu sendiri (bertanggung jawab untuk sistem startup dan sistem shutdown). Objek lainnya mewakili sebuah session untuk pelanggan (bertanggung jawab pada use case session). Objek lainnya mewakili sebuah transaksi individual yang bertanggung jawab untuk use case transaksi, use case untuk menspesifikasikan tipe dari transaksi, dan perpanjangan waktu input PIN yang tidak valid.

Interaction Diagram untuk Contoh Sistem ATM

UML mendefinisikan dua jenis diagram interaksi, yaitu sequence diagram dan collaboration diagram. Untuk menggambarkan kedua tipe tersebut, use case utama didokumentasikan dengan menggunakan sequence diagram, dan use case yang lebih spesifik didokumentasikan dengan menggunakan collaboration diagram. Alasan utama untuk menggunakan dua tipe diagram yang berbeda adalah pedagogical untuk menggambarkan tiap tipe.

Detailed DesignTugas utama dari Detailed Design adalah untuk menguraikan , dengan detail, atribut dan method yang dibutuhkan oleh setiap class (kedua dan ketiga kompartemen representasi untuk setiap class dalam sebuah class diagram)Method yang dibutuhkan oleh setiap class tersebut tersirat dalam tanggung jawab yang ditugaskan pada class dalam kartu CRC, dan menjadi gamblang dalam Interaction Diagram. Tanggung jawab yang terdaftar untuk sebuah class dalam kartu CRC nya secara umum dipetakan kedalam method dalam detailed design. Begitu juga, setiap saat sebuah objek milik class tertentu ditampilkan sebagai penerima pesan, baik dalam Sequence atau Collaboration Diagram. Beberapa attribut yang dibutuhkan juga secara explisit dan implisit ada di dalam diagram. Kebutuhan untuk yang lainnya menjadi terbukti karena code untuk sebuah class sudah tertulis. (Dengan demikian Detailed Design dan coding adalah sebuah Round Trip proses Detailed Design menentukan coding, dan coding mengarah ke penjabaran dari Detailed Design)Dalam mendesain sistem ini, beberapa keputusan desain kunci dibuat Class ATM menjadi kelas yang aktif sehingga, object ATM memiliki threadnya sendiri. Menggunakan fasilitas thread Java mengarah pada pendefinisian method run() dalam kelas ini yang tubuhnya dieksekusi oleh thread ATM. Class Status adalah abstract. Method send() pada NetworkToBank membangun sebuah Concrete Instance sehingga mengandung informasi yang sesuai pada respons yang diterima dari bank untuk pesan tertentuPada desain dibawah, setiap class dikembangkan dalam pemisahan. Tidak ada percobaan yang dibuat untuk menghubungkan setiap class ke class yang berhubungan dalam Class Diagram, karena gambar yang dihasilkan tidak akan cukup untuk dapat ditampilkan web page. Oleh karena itu, Detailed Design ini harus dilihat hubungannya dengan Class Diagram yang dikembangkan sebelumnyaPackage DiagramPackage Diagram menunjukkan bagaimana class-class yang bervariasi dikelompokkan dalam package. Terdapat dua top level class ATMMain dan ATMApplet yang memungkinkan sistem untuk dijalankan (masing-masing) sebagai aplikasi atau sebagai Applet.Setiap class-class ini, pada gilirannya, tergantung pada package atm yang berisi class ATM yang merepresentasikan sistem secara keseluruhan, dan class Session yang merepresentasikan sebuah session. ATM tergantung pada Session, dan juga sebaliknya karena ATM menciptakan Session, dan setiap Session, pada gilirannya, menggunakan ATM untuk berinteraksi dengan customer.Subpackage Transaction berisi class-class yang digunakan untuk merepresentasikan transaksi individu yang customer mulai. Class Session tergantung pada transaksi package karena menciptakan objek transaksi individual. Ini, pada saatnya, sekali lagi tergantung pada ATM untuk berinteraksi dengan customer.Subpackage physical berisi class yang merepresentasikan beragam komponen physical pada ATM. Untuk tujuan simulasi ini, berikut adalah simulasi oleh GUI. Sebuah ATM nyata akan memiliki class yang berbeda dalam package ini class yang sebenarnya mengendalikan komponen physicalnya. Class ATM memanfaatkan komponen ini, dan Session serta berbagai macam jenis transaksi mendapatkan akses kepada mereka melalu ATM untuk benar-benar melakukan operasi yang dibutuhkan.Terakhir, Package Banking berisi class-class yang merepresentasikan perbankan perusahaan itu sendiri dan informasi yang dikomunikasikan bolak-balik antara ATM dan bank contoh : class yang mungkin sama dalam implementasi yang sama sekali berbeda dari ATM yang berinteraksi dengan bank yang sama.Hal ini, tentu saja, adalah sebuah simulasi. Namun, sebagian besar kode yang khusus untuk simulasi berada di package physical, plus dua top-level class. Agaknya, kelas-kelas lain dan paket mungkin mirip dalam sistem nyata.CodeHalaman ini berisi link actual Java code yang mengimplementasikan ATM simulation, dan dokumentasi javadoc yang di-generate dari code. Code tersebut diorganisasikan kedalam sebuah sekumpulan package, seperti yang ditunjukkan dalam Package Diagram.Sebagai tambahan kepada class dan package yang sudah didiskusikan pada desain, simulasi GUI menggunakan sebuah package (disebut simulasi) yang berisi detail-detail GUI, termasuk code yang mengerjakan animasinya. Code ini ditempatkan pada hardware ATM yang sebenarnya, tapi belum didokumentasikan dalam halaman web. Desain package simulasi dibahas secara singkat, dan codenya dapat diakses disini jika anda ingin melihatnya.

Testing [Executable Applet]

Untuk menjalankan simulasi diatas, anda harus melakukan hal-hal berikut:1. Klik pada tombol ON (sudut kanan bawah) untuk mengaktifkan ATM2. Masukkan jumlah $20 yang anda ingin miliki dalam kas pada awal simulasi ketika anda diminta untuk melakukannya, dan tekan RETURN3. Lakukan sejumlah session seperti berikut :1. Klik pada tombol Click to insert card untuk simulasi memasukkan katu2. Ketik nomor kartu ketika anda diminta untuk melakukannya (lihat bagian bawah), dan tekan kembali3. Masukkan PIN yang terkait dengan kartu (lihat dibawah). Walaupun anda dapat menggunakan keyboard anda, akan lebih menyenangkan untuk klik pada tombol pada simulasi keyboard ATM seperti yang ditampilkan4. Jalankan sejumlah transaksi, gunakan mouse untuk klik tombol pada simulasi keyboard ATM. Perhatikan bahwa mesin akan melakukan simulasi pengeluaran kartu anda ketika anda tidak ingin melakukan transaksi lagi(kecuali, tentu saja, kartu anda masih ditahan karena terlalu banyak PIN yang salah).4. Matikan ATM dengan klik tombol OFF (posisi yang sama seperti tombol ON). Perhatikan bahwa anda tidak bisa menon-aktifkan ATM ketika masih berada ditengah-tengah sesi customer5. Simulasi keseluruhan dapat anda ulang sesuka anda, dengan mengaktfkan mesin lagi(klik tombol ON).Untuk demonstrasi, program ini menggunakan simulasi bank yang sangat sederhana, dengan nomor kartu yang sudah tersedia dan PINnya. Berikut adalah kartu yang sudah tersedia :Card NumberPINAvalaible Accounts

142Cek Akun #1, Menyimpan Akun #2

21234Cek Akun #1, akun Money Market #3

Semua fitur pada kerja bank - baik saldo yang terbaru maupun saldo yang tersedia (pada awalnya sama) diselenggarakan untuk akun masing-masing dan batas penarikan $300 perhari perkartu diberlakukan.Saya akan menghargai feedback tentang operasi dan/atau penampilan applet ini pada platform yang berbeda. (Feedback tentang isu yang lainnya juga diterima, tentu)MaintenanceHalaman ini berisi daftar berbagai perubahan yang mungkin dilakukan untuk sistem. Mengubah berbagai dokumen untuk memasukkan satu atau lebih perubahan akan membuat pembaca tertarik untuk mempelajarinya.Corrective MaintenancePembaca yang cermat akan mencatat bahwa pada requirement tidak tercantum penanganan entri yang akan dibuat di dalam log ketika ATM dihidupkan dan dimatikan. Hal tersebut belum tercermin dalam salah satu diagram ataupun kode. Perubahan apa yang diperlukan untuk menangani requirement tersebut?Ketika sistem memberikan pertanyaan kepada pelanggan, sistem akan menunggu hingga pelanggan memberikan jawaban. Hal tersebut menyebabkan masalah keamanan jika pelanggan memilih untuk meninggalkan mesin ATM tanpa memberikan jawaban karena kartu ATM masih berada di dalam mesin. Biasanya dalam keadaan seperti itu, secara tidak langsung memberikan kesempatan kepada pelanggan lain untuk membajak sesi pelanggan sebelumnya yang meninggalkan mesin ATM dan melakukan transaksi seperti penarikan tunai melalui akun pelanggan sebelumnya.Sangatlah mungkin hal tersebut terjadi dalam transaksi menggunakan ATM. Sebagai contoh, seorang pelanggan melakukan transaksi, kemudian sistem memberikan pertanyaan Apakah anda ingin melakukan transaksi lainnya ?. Jika pelanggan tersebut hanya melakukan penarikan tunai, dapat kita bayangkan bahwa pelanggan tersebut hanya memasukkan uang ke dalam dompetnya dan secara tidak sengaja lupa untuk menjawab pertanyaan tersebut dan meninggalkan kartunya di dalam mesin ATM.Sebuah mesin ATM yang sebenarnya biasanya memiliki mekanisme waktu timeout yang akan mengeluarkan kartu ATM dengan sendirinya dan mengakhiri session jika pengguna tidak memberikan respon dalam waktu yang telah ditentukan. Ketika seorang pelanggan melakukan hal demikian, setidaknya pelanggan selanjutnya tidak dapat melakukan transaksi dengan menggunakan kartu yang tertinggal di ATM karena tidak dapat melakukan akses menggunakan PIN yang sesuai. Perubahan seperti apa yang dibutuhkan requirement sistem, desain, dan source code untuk meningkatkan keamanan pada kasus seperti ini?

Adaptive MaintenanceBanyak mesin ATM yang memiliki cash dispensers yang mampu menangani dua nilai uang kertas yang berbeda biasanya $20 dan $5 yang memungkinkan user untuk melakukan transaksi dengan jumlah kelipatan dari $5. Jika diperlukan hal demikian, perubahan seperti apa yang diperlukan untuk meningkatkan kapabilitas dari cash dispenser?

Perfective MaintenanceKetika kartu pelanggan ditahan, sebuah entri harus dibuat dalam log untuk kasus ini. Banyak ATM yang menawarkan pilihan tambahan kepada pelanggan. Contohnya, melakukan pembayaran pada peminjaman yang dilakukan oleh pelanggan dari akun yang tersambung dengan kartu miliknya. Perubahan seperti apa yang diperlukan untuk memungkinkan pelanggan melakukan pembayaran atas pinjaman pada ATM?


Top Related