Anda di halaman 1dari 26

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 Case
Sistem 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 Case


Sistem 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 Case


Transaksi 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 Case


Transaksi 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 Extension


Pelanggan 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 case

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

Sistem baru saja


diaktifkan

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

Sistem baru saja


ditutup

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

Menu jenis jenis


rekening
ditampilkan

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

Menu jenis jenis


transaksi
ditampilkan

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

Menu jenis jenis


transaksi
ditampilkan

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

Menu jenis jenis


rekening
ditampilkan

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

Menu jenis jenis


transaksi
ditampilkan

Memilih
transaksi transfer

Menu jenis jenis


rekening untuk
mentransfer

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

Menu jenis jenis


Memilih
rekening untuk di
rekening
transfer
tabungan
ditampilkan

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

Menu jenis jenis


transaksi
ditampilkan

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

Sebuah PIN yang


Melakukan
tidak benar telah
transaksi yang
dimasukan
lain
kembali dan

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.

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 Status
Class ATM

Responsibiliti

OperatorPanel
CashDispenser
NetworkToBank

Mulai nyala ketika saklar menyala

Mulai mati ketika saklar mati


Memulai sesi baru
dimasukan pelangan

ketika

Network ToBank
CustomerConsole
kartu Session

Menyediakan akses ke komponen bagian


bagian untuk sesi dan transaksi transaksi

Class CardReader
Responsibiliti

Kolaborator

Menceritakan ATM ketika kartu dimasukan

ATM

Membaca informasi dari kartu

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

Menampilkan sebuah prompt dan menu,


menerima sebuah pilihan dari keyboard
Menampilkan sebua prompt, menerima nilai
uang mata uang dollar dari keyboard
Menanggapi tombol cancel
ditekan oleh pelanggan

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

Koneksi awal ke bank saat nyala Mengirim Message


pesan ke bank dan menunggu tanggapan
Log
Balances
status
Mengakhiri koneksi ke bank saat mati

Class OperatorPanel
Responsibiliti

Kolaborator

Memberitahukan ATM merubah

ATM

Class ReceiptPrinter
Responsibiliti

Kolaborator

Mencetak kwitansi

kwintansi

Class Session
Responsibiliti

Kolaborator

Menampilkan sesi use case

ATM
CardReader
Card
CostumerConsole

Transaction
Meubah nilai PIN jika pelanggan telah
memasukkan kembali nilai PIN nya

Abstract Class Transaction


Responsibilities
Collaborators
ATM
CustomerConsole
Memungkinkan pelanggan memilih tipe Withdrawal
Deposit
transaksi
Transfer
Inquiry
ATM
CustomerConsole
Withdrawal
Deposit
Transfer
Menjalankan Use Case Transaction
Inquiry
Message
NetworkToBank
Receipt
ReceiptPrinter
CustomerConsole
Menjalankan extensi PIN yang tidak valid Session
CardReader
Class Withdrawal
Responsibilities
Menjalankan operasi khas pada use case
Transaction Withdrawal

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

Class Diagram untuk Contoh Sistem ATM


Dapat 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 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.

Testing [Executable Applet]


Untuk menjalankan simulasi diatas, anda harus melakukan hal-hal berikut:
1. Klik pada tombol ON (sudut kanan bawah) untuk mengaktifkan ATM
2. Masukkan jumlah $20 yang anda ingin miliki dalam kas pada awal simulasi
ketika anda diminta untuk melakukannya, dan tekan RETURN
3. Lakukan sejumlah session seperti berikut :
1. Klik pada tombol Click to insert card untuk simulasi memasukkan
katu
2. Ketik nomor kartu ketika anda diminta untuk melakukannya (lihat
bagian bawah), dan tekan kembali
3. 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
ditampilkan
4. 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 customer
5. 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 Number
1

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

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 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?

Anda mungkin juga menyukai