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.
Fungsi yang
diuji
System startup
Sistem dimulai
saat saklar
diputar ke "on"
System startup
Sistem menerima
jumlah kas awal
Initial System
State
System dalam
keadaan off
Sistem meminta
jumlah kas
Input
mengaktifkan
saklar ke "on"
Masukkan
jumlah yang sah
Output yang
diharapkan
Sistem meminta
jumlah kas awal
System dalam
keadaan on
System startup
Koneksi ke bank
ditetapkan
System
shutdown
Sistem dimatikan
ketika saklar
diputar ke "off"
Sistem dalam
keadaan on dan
tidak melayani
pelanggan
System
shutdown
Koneksi ke Bank
diakhiri ketika
sistem dimatikan
Session
Sistem membaca
kartu ATM
seorang
pelanggan
Sistem dalam
keadaa on dan
tidak melayani
pelanggan
Melakukan
transaksi yang
sah
Mengaktifkan
saklar ke "off"
Masukkan kartu
yang dapat
dibaca
Session
Sistem menolak
kartu yang tidak
dapat dibaca
Sistem dalam
keadaan on dan
tidak melayani
pelanggan
Masukkan kartu
yang tidak dapat
dibaca
Session
Sistem
meneriman PIN
nya pelanggan
Sistem
menanyakan
untuk
memasukan PIN
Memasukan PIN
Sistem
memperlihatkan
menu jenis jenis
transaksi
Melakukan
transaksi
Session
Session
Session
Sistem
memungkinkan
pelanggan untuk
melakukan
transaksi
Sistem
memungkinkan
beberapa
transaksi dalam
satu ses
Sistem berakhir
Sistem
menanyakan
apakah
pelanggan ingin
transaksi lain
Sistem
Output sistem
harus
menunjukkan
bahwa
sambungan
sudah ditetapkan
ke Bank
System dalam
keadaan off
Verifikasi dari
sisi bank bahwa
koneksi ke ATM
tidak ada lagi
Kartu diterima;
Sistem meminta
masuknya PIN
Kartu ditolak;
Sistem
memperlihatkan
layar error;
Sistem siap
untuk memulai
sesi baru;
Sistem
memperlihatkan
menu jenis jenis
transaksi
Sistem
menanyakan
apakah
pelanggan ingin
transaksi lain
Menjawab ya
Sistem
memperlihatkan
menu jenis jenis
transaksi
Menjawab tidak
Sistem
Transactions
Transactions
Withdrawal
Withdrawal
Withdrawal
ketika pelanggan
memilih untuk
tidak melakukan
transaksi yang
lain
Transaksi setiap
individu akan
ditest dibawah
ini
Sistem
menanganin
sebuap PIN yang
tidak sah dengan
baik
Sistem
menayakan
pelanggan untuk
memilih sebuah
rekening untuk
penarikan uang
Sistem
menanyakan
pelanggan untuk
memilih mata
uang dollar
untuk penarikan
uang
Sistem
melakukan
transaksi
penarikan uang
yang sah dengan
baik
menanyakan
apakah
pelanggan ingin
transaksi lain
mengeluarkan
kartu dan siap
untuk memulai
sesi baru
Memasukan
sebuah PIN yang
tidak benar dan
kemudian
mencoba
melakukan
transaksi
Perpanjangan
PIN yang tidak
sah dilakukan
Memilih
transaksi
penarikan uang
Sistem
menampilkan
sebuah menu
jenis jenis
rekening
Memilih
memeriksa
rekening
Sistem
menampilkan
menu sejumlah
penarikan uang
yang
memungkinkan
Sistem
menampilkan
menu sejumlah
penarikan uang
Memilih jumlah
uang sesuai
pilihan yang
mana tidak lebih
besar dari pada
saldo rekening
Sebuah kartu
yang tidak dapat
dibaca telah
dimasukkan
Sistem mencetak
sebuah kwitansi
yang
memperlihatkan
jumlah dan saldo
yang telah
diupdate;
Sistem memcatat
transaksi dalam
log
(memperlihatkan
pesan ke bank
Withdrawal
Sistem
memeriksa
bahwa saldo
cukup untuk
memnuhi
permintaan
Sistem
Withdrawal
Sistem
memeriksa
bahwa saldo
pelanggan cukup
untuk memenuhi
permintaan
Sistem meminta
jumlah
pengambilan
Withdrawal
Sebuah transaksi
pengambilan
dapat ditunda
oleh pelanggan
kapanapun
sebelumnya
untuk memilih
jumlah dollar
Sistem
menampilkan
menu jenis jenis
rekening
Withdrawal
Sebuah transaksi
pengambilan
dapat ditunda
oleh pelanggan
kapanapun
sebelumnya
untuk memilih
jumlah dollar
Deposit
Sistem
menanyakan
pelanggan untuk
memilih sebuah
Sistem
menampilkan
menu jumlah
dollar
dan approval
back)
Sistem
menampilkan
pesan dan
Memilih jumlah
menanyakan
yang lebih besar
pelanggan untuk
memilih jumlah
yang lain
Sistem
menampilkan
Memilih jumlah
pesan dan
yang mana sesuai
menawarkan
dengan pilihan
pelanggan
sistem tapi lebih
memilih piihan
besar daripada
untuk melakukan
saldo rekening
transaksi lain
atau tidak
Sistem
menampilkan
pesan dan
menawarkan
Menekan tombol pelanggan
cancel
memilih piihan
untuk melakukan
transaksi lain
atau tidak
Menekan tombol
cancel
Memilih
transaksi deposit
Sistem
menampilkan
pesan dan
menawarkan
pelanggan
memilih piihan
untuk melakukan
transaksi lain
atau tidak
Sistem
menampilkan
menu jenis jenis
rekening
Deposit
Deposit
Deposit
Deposit
rekening untuk
deposito
Sistem
menanyakan
pelanggan untuk
memasukan nilai
uang dengan
mata uang dollar
untuk dideposito
Sistem
mananyakan
pelanggan untuk
memasukan
sebuah amplop
Memilih
memeriksa
rekening
Sistem
menampilkan
permintaan
pelanggan untuk
mengetik jumlah
dolar
Sistem
menampilkan
permintaan
pelanggan untuk
mengetik nilai
uang dengan
mata uang dollar
Memasukkan
nilai uang
dengan mata
uang dollar
Sistem meminta
pelanggan untuk
memasukan
sebuah envelope
Sistem
menampilkan
transaksi setoran
dengan baik
Sistem meminta
pelanggan
memasukan
sebuah amplop
Sebuah transaksi
simpanan dapat
ditunda oleh
pelanggan
kapanpun
sebelumnya
untuk
memasukan
Sistem
menampilkan
menu jenis jenis
rekening
Memasukan
sebuah envelope
Menekan tombol
cancel
Sistem 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)
Sistem
menampilkan
pesan dan
menawarkan
pelanggan
pilihan untuk
memilih untuk
melakukan
sebuah amplop
Deposit
Sebuah transaksi
simpanan dapat
ditunda oleh
pelanggan
kapanpun
sebelumnya
untuk
memasukan
sebuah amplop
Sistem meintan
pelanggan untuk
memasukan nilai
uang dengan
mata uang dollar
Menekan tombol
cancel
Deposit
Sebuah transaksi
simpanan dapat
ditunda oleh
pelanggan
kapanpun
sebelumnya
untuk
memasukan
sebuah amplop
Sistem meminta
pelanggan untuk
memasukan
amplop
Menekan tombol
cancel
Deposit
Transaksi
simpanan
ditunda secara
otomatis jika
amplop tidak
dimasukkan
secara layak
Sistem meminta
pelanggan untuk
memasukan
amplop
Menuggu
permintaan
berakhir
Memilih
transaksi transfer
Memilih
memeriksa
rekening
Transfer
Transfer
Sistem
menanyakan
pelanggan untuk
memilih sebuah
rekening untuk
mentransfer
Sistem
menanyakan
pelanggan untuk
transaksi lain
atau tidak.
Sistem
menampilkan
pesan dan
menawarkan
pelanggan
pilihan untuk
memilih untuk
melakukan
transaksi lain
atau tidak.
Sistem
menampilkan
pesan dan
menawarkan
pelanggan
pilihan untuk
memilih untuk
melakukan
transaksi lain
atau tidak.
Sistem
menampilkan
pesan dan
menawarkan
pelanggan
pilihan untuk
memilih untuk
melakukan
transaksi lain
atau tidak.
Sistem
menampilkan
menu jenis jenis
rekening yang
ditentukan untuk
mentransfer
Sistem
menampilkan
menu jenis jenis
Transfer
Transfer
Transfer
Transfer
Transfer
memilih sebuah
rekening untuk
ditransfer
Sistem
menanyakan
pelanggan untuk
memasukan
jumlah uang
dengan mata
uang dollar
untuk ditransfer
Sistem
melakukan
sebuah transaksi
transfer dengan
baik
Sebuah trasaksi
transfer dapat
ditunda oleh
pelanggan
kapanpun
sebelumnya
untuk
memasukan nilai
uang dengan
mata uang dollar
Sebuah trasaksi
transfer dapat
ditunda oleh
pelanggan
kapanpun
sebelumnya
untuk
memasukan nilai
uang dengan
mata uang dollar
Sebuah trasaksi
transfer dapat
ditunda oleh
ditampilkan
rekening yang
ditentukan untuk
ditransfer
sistem
menampilkan
permintaan untuk
pelanggan
memilih mata
uang dollar
Sistem
menampilkan
sebuah
permintaan untuk
pelanggan
memilih mata
uang dollar
Memasukan
jumlah uang
dengan mata
uang dollar
Sistem mencetak
sebuah kwitansi
yang
memperlihatkan
jumlah dan saldo
yang telah
diupdate
Menekan tombol
cancel
Sistem
menampilkan
sebuah pesan dan
menawarkan
pelanggan
memilih pilihan
untuk melakukan
transaksi lain
atau tidak
Menekan tombol
cancel
Sistem
menampilkan
sebuah pesan dan
menawarkan
pelanggan
memilih pilihan
untuk melakukan
transaksi lain
atau tidak
Sistem
menampilkan
menu jenis jenis
rekening yang
ditentukan untuk
mentransfer
Sistem
menampilkan
menu jenis jenis
rekening yang
ditentukan untuk
ditransfer
Sistem meminta
pelanggan untuk
memasukan nilai
Menekan tombol
cancel
Sistem
menampilkan
sebuah pesan dan
Inquiry
pelanggan
kapanpun
sebelumnya
untuk
memasukan nilai
uang dengan
mata uang dollar
Sistem
menanyakan
pelanggan untuk
memilih sebuah
rekening
uang dengan
mata uang dollar
menawarkan
pelanggan
memilih pilihan
untuk melakukan
transaksi lain
atau tidak
Sistem
menampilkan
menu jenis jenis
rekening
Memilih
transaksi
Inquiry
Sistem
menampilkan
sebuah transaksi
dengan baik
Sistem
menampilkan
menu jenis jenis
rekening
Memilih
memeriksa
rekening
Inquiry
Sebuah transaksi
dapat ditunda
oleh pelanggan
kapanpun
sebelumnya
untuk memilih
sebuah rekening
Sistem
menampilkan
menu jenis jenis
rekening
Menekan tombol
cancel
Invalid PIN
Extension
pelanggan
ditanya untuk
memasukan
kembali PIN
Memasukan PIN
yang tidak benar;
Percobaan
transaksi
memeriksa
rekening milik
pelanggan
Sistem mencetak
sebuah kwitansi
yang
memperlihatkan
saldo dengan
benar;
Sistem mencatat
transaksi dengan
benar dalam log
(memperlihatkan
pesan ke bank
dan approval
back)
Sistem
menampilkan
pesan dan
menyarankan
pelanggan
memilih pilihan
untuk melakukan
transaksi yang
lain atau tidak
pelanggan
ditanya untuk
memasukan
kembali PIN
Invalid PIN
Extension
Memasukan
kembali PIN
yang benar
diterima
Sistem
menanyakan
untuk
memasukan PIN
dan transaksi
selesai dengan
normal
Invalid PIN
Extension
Sebuah PIN
dimasukan
kembali dengan
benar digunakan
untuk transaksi
berikutnya
Transaksi ini
tercapai sukses
dengan baik
Invalid PIN
Extension
Memasukan
kembali PIN
yang tidak benar
tidak diterima
Permintaan
untuk
memasukan
kembali PIN
ditampilkan
Sebuah pesan
ditampilkan dan
memasukan
kembali PIN
kembali diminta
Invalid PIN
Extension
Memasukan
kembali PIN
yang benar untuk
percobaan kedua
diterima
Permintaan
untuk
memasukan
kembali PIN
ditampilkan
Invalid PIN
Extension
Memasukan
kembali PIN
yang benar untuk
percobaan ketiga
diterima
Permintaan
untuk
memasukan
kembali PIN
ditampilkan
Invalid PIN
Extension
Permintaan
untuk
memasukan
kembali PIN
ditampilkan
Memasukan PIN
yang benar
Memasukan PIN
yang tidak benar
Memasukan PIN
yang tidak benar
untuk yang
pertama kali,
kemudian PIN
yang benar untuk
kedua kalinya
Memasukan PIN
yang tidak benar
untuk yang
pertama dan
kedua kali,
kemudian PIN
yang benar untuk
yang ketiga
kalinya
Memasukan PIN
yang tidak benar
sebanyak tiga
kali
Transaksi
tercapai dengan
sukses
Transaksi
tercapai dengan
sukses
Transaksi
tercapai dengan
sukses
Sebuah 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 :
o Operator panel.
o Card reader.
o Konsol pelanggan, yaitu sebuah layar dan keyboard.
o Koneksi jaringan ke bank.
o Cash dispenser.
o Envelope acceptor.
o Printer struk transaksi.
Controller object yang sesuai untuk kasus penggunaan (dengan ketentuan
bahwa class ATM dapat menangani kasus penggunaan itu sendiri)
o Session
o 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.
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
Class Session
Class Transaction
Class Withdrawal
Class Deposit
Class Transfer
Class Inquiry
Class Balances
Class Card
Class Message
Class Receipt
Class Status
Class ATM
Responsibiliti
OperatorPanel
CashDispenser
NetworkToBank
ketika
Network ToBank
CustomerConsole
kartu Session
Class CardReader
Responsibiliti
Kolaborator
ATM
Kartu
Mengeluarkan kartu
Menahan kartu
Class CashDispenser
Responsibiliti
Kolaborator
Keep track of cash on hand, memulai dengan
Log
jumlah awal
Melaporkan uang yang tersedia
Mengeluarkan uang
Class CustomerConsole
Responsibiliti
Kolaborator
Menampilkan pesan
Menampilan sebuah prompt,
sebuah PIN dari keyboard
menerima
yang
telah
Class EnvelopeAcceptor
Responsibiliti
Kolaborator
Menerima
amplop
dari
pelanggan, Log
melaporkan jika waktu diakhiri atau ditunda
Class Log
Responsibiliti
log pesan mengirim ke bank
log tanggapan dari bank
log pembagian tunai
log penerimaan sebuah amplop
Kolaborator
Class NetworkToBank
Responsibiliti
Kolaborator
Class OperatorPanel
Responsibiliti
Kolaborator
ATM
Class ReceiptPrinter
Responsibiliti
Kolaborator
Mencetak kwitansi
kwintansi
Class Session
Responsibiliti
Kolaborator
ATM
CardReader
Card
CostumerConsole
Transaction
Meubah nilai PIN jika pelanggan telah
memasukkan kembali nilai PIN nya
Collaborators
CustomerConsole
CashDispenser
Message
Receipt
Class Deposit
Responsibilities
Menjalankan operasi khas pada use case
Transaction Deposit
Collaborators
CustomerConsole
EnvelopeAcceptor
Message
Receipt
Class Transfer
Responsibilities
Menjalankan operasi khas pada use case
Transaction Transfer
Collaborators
CustomerConsole
Message
Receipt
Class Inquiry
Responsibilities
Menjalankan operasi khas pada use case
Transaction Inquiry
Collaborators
CustomerConsole
Message
Receipt
Class Balances
Responsibilities
Merupakan informasi saldo akun yang
dikembalikan oleh bank
Class Card
Responsibilities
Merupakan informasi yang dikodekan
pada kartu ATM pelanggan
Collaborators
Collaborators
Class Message
Responsibilities
Merupakan informasi yang dikirim
melalui jaringan ke bank
Class Receipt
Responsibilities
Merupakan informasi yang akan dicetak
pada resep
Class Status
Responsibilities
Merupakan informasi status transaksi
yang dikembalikan oleh bank
Collaborators
Collaborators
Collaborators
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.
Detailed Design
Tugas 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 tertentu
Pada 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 sebelumnya
Package Diagram
Package 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.
Code
Halaman 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 detaildetail 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.
PIN
42
1234
Avalaible Accounts
Cek Akun #1, Menyimpan
Akun #2
Cek 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)
Maintenance
Halaman 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 Maintenance
Pembaca 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
Adaptive Maintenance
Banyak 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 Maintenance
Ketika 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?