Dalam contoh kasus ini akan dimodelkan Sistem ATM Bank.
A. Batasan Masalah
Sistem ATM yang akan dibuat modelnya adalah sistem ATM sederhana dan umum dengan fungsi mendasar yaitu: mengambil uang tunai, melakukan transfer ke rekening tertentu pada bank yang sama dan memeriksa saldo.
Sistem yang akan dimodelkan tidak mencakup beberapa fungsi ATM yang bergantung fasilitas tambahan dari bank misalnya membayar kartu kredit, membayar telpon, membayar tagihan kartu seluler, mengisi pulsa, membayar PBB, ATM bersama yang menerima berbagai kartu, dan lain-lain, karena layanan-layanan tersebut berbeda-beda tergantung dari operator/bank yang mengeluarkan ATM tersebut.
B. Deskripsi Use case
Sistem mulai dijalankan (start) ketika operator memindahkan tombol ke posisi 'on'. Operator akan diminta untuk memasukkan sejumlah uang ke dalam dispenser dan menetapkan koneksi ke bank. Setelah koneksi stabil maka mesin siap melayani customer.
Sistem dimatikan (shut) jika operator telah memeriksa tidak ada customer yang sedang menggunakan mesin dan kemudian memindahkan ke tombol 'off'. Koneksi ke bank akan diputuskan dan operator dapat membuka mesin untuk beberapa pekerjaan pemeliharaan (misalnya untuk penggantian kertas, penggantian/penambahan uang, dan sebagainya).
Sebuah sesi dimulai ketika customer memasukkan kartu ATM ke slot pembaca kartu pada mesin. ATM akan menarik kartu ke dalam mesin dan membaca kodenya. Jika pembaca kartu tidak dapat membaca kartu karena misalnya salah posisi ketika memasukkan kartu atau kartu tergores, maka kartu akan dikeluarkan dan akan ditampilkan pesan kesalahan pada layar dan sesi dibatalkan. Jika kartu diterima maka customer akan diminta memasukkan PIN dan boleh melakukan satu atau beberapa transaksi, dengan cara memilih dari menu transaksi yang ditawarkan. Setiap satu transaksi selesai, customer akan menjawab pertanyaan apakah akan melakukan transaksi lain. Jika customer telah selesai melakukan semua transaksi yang diinginkan maka kartu dikeluarkan dan sesi dianggap selesai. Jika sebuah transaksi gagal karena terlalu banyak memasukkan PIN yang salah maka sesi juga dibatalkan dan kartu tetap berada di dalam mesin. Customer boleh membatalkan satu sesi dengan menekan tombol 'cancel' ketika memasukkan PIN atau ketika memilih salah satu jenis transaksi.
Transaksi adalah abstraksi generalisasi dari beberapa proses yang memiliki kemiripan. Setiap tipe transaksi memiliki operasi tertentu dengan cara tertentu. Untuk menggambarkan perilaku transaksi secara umum (untuk semua tipe: pengambilan uang, transfer, cek saldo) maka digunakan deksripsi narasi berdasarkan alur kejadian. Sebuah transaksi dimulai dalam sebuah sesi ketika user memilih satu tipe transaksi dari menu yang tersedia.
Customer akan diminta untuk mengisi beberapa informasi detil (misalnya no. rekening yang terkait dan jumlah uang). Transaksi kemudian akan dikirim ke bank disertai dengan informasi yang diperoleh dari kartu ATM customer dan PIN yang dimasukkan oleh customer. Jika bank menyetujui transaksi tersebut, maka akan dilakukan beberapa tahapan untuk menyelesaikan transaksi (misalnya mengeluarkan sejumlah uang, menghitung saldo) dan kemudian akan dicetak slip transaksi. Kemudian mesin ATM akan menanyakan apakah customer akan melakukan transaksi lain. Jika tidak maka transaksi selesai, sesi ditutup, slip dikeluarkan dan kartu dikeluarkan. Jika bank menyatakan bahwa PIN salah, maka akan dikeluarkan pesan dan jika terlalu banyak kesalahan mengisikan PIN maka kartu akan ditahan di dalam mesin ATM. Jika transaksi dibatalkan oleh customer atau gagal akibat alasan tertentu (selain dari pengulangan entri PIN yang salah) maka pada layar akan ditampilkan pesan kesalahan serta alasan/penyebab kegagalan, customer ditawarkan untuk melakukan transaksi lain (jika dimungkinkan). Customer dapat membatalkan transaksi dengan menekan tombol 'cancel'. Semua pesan yang dikirimkan ke bank dan respon yang diterima dari bank dicatat dalam log ATM.
- Use case Transaksi Pengambilan Uang (Ambil Tunai)
Pada transaksi pengambilan uang, customer diminta menentukan jenis rekening yang akan diambil (misalnya tabungan atau giro), dan diminta memilih jumlah uang dari daftar pilihan yang tersedia atau menuliskan jumlah lain (jika tidak ada pilihan yang sesuai). Jumlah uang yang diisikan harus sesuai dengan kelipatan pecahan uang yang tersimpan pada mesin ATM (misalnya limapuluhribuan atau seratusribuan). Sistem akan memeriksa total uang yang tersedia pada dispenser uang. Jika total uang tidak mencukupi maka sistem akan menampilkan pesan dan menawarkan customer untuk memasukkan jumlah lain. Jika total uang mencukupi maka sistem akan mengirimkan pesan ke bank untuk pemeriksaan saldo pada nomor rekening tersebut. Jika bank menyetujui transaksi maka sistem akan menyiapkan sejumlah uang yang diminta dan uang tersebut akan dikeluarkan dari mesin. Setelah uang dikeluarkan maka hasil transaksi dicetak pada slip.
Pengeluaran uang juga dicatat pada log ATM. Transaksi pengambilan uang dapat dibatalkan customer dengan cara menekan tombol 'cancel' sebelum memilih/memasukkan jumlah uang.
- Use case Transaksi Transfer
Pada transaksi transfer customer akan diminta memilih jenis rekening yang akan ditransfer dari daftar menu jenis rekening, kemudian customer diminta memasukkan nomor rekening tujuan dan menuliskan jumlah uang yang akan ditransfer. Sebelum transfer dilakukan, bank akan menampilkan informasi tentang nomor rekening tujuan, khususnya tentang nama pemilik rekening tersebut dan jumlah uang yang akan ditransfer. Customer diminta melakukan konfirmasi dan jika customer menyetujui informasi ini maka transfer dilakukan dan bank akan melakukan perhitungan saldo dan mesin akan mencetak hasilnya pada slip. Transaksi transfer dapat dibatalkan oleh customer dengan menekan tombol 'cancel' sebelum menyetujui konfirmasi dari bank.
- Use case Transaksi Pengecekan Saldo (Cek Saldo)
Pada transaksi pengecekan saldo, customer diminta memilih jenis rekening dan mesin akan mengirimkan data ini ke bank. Respon dari bank akan ditampilkan di layar dan dicetak pada slip. Transaksi dapat dibatalkan sebelum customer memilih jenis rekening.
Kasus PIN salah dimulai di dalam sebuah transaksi ketika bank melaporkan bahwa transaksi customer tidak disetujui karena PIN salah. Customer diminta memasukkan PIN lain dan pesan ini dikirimkan kembali ke bank. Jika bank kemudian menyetujui, atau tidak menyetujui karena alasan tertentu, maka customer diminta memasukkan PIN lainnya. Jika customer tiga kali melakukan kesalahan memasukkan PIN maka kartu akan ditahan di dalam mesin dan mesin akan menampilkan pesan agar customer menghubungi petugas bank terkait dan sesi dibatalkan.
C. Penyelesaian
- Identifikasi aktor yang terlibat: Operator, Customer dan Bank
- Identifikasi use case apa yang digambarkan dalam sistem: Use case Sistem StartUp, Use case Sistem Shutdown, Use case Sesi, Use case Transaksi, Use case Transaksi Pengambilan Uang Tunai, Use case Transaksi Transfer, Use case Pengecekan Saldo, Use case PIN Salah.
- Kelompokkan use case yang telah diidentifikasi berdasarkan skenario kasusnya:Use case (utama) : Sistem StartUp, Sistem Shutdown, Sesi, Transaksi Use case transaksi, seperti telah diuraikan di atas, terbagi atas 3 (tiga) tipe dengan tambahan sifat spesifik selain dari sifat utama yang diwarisi (inherite) dari use case transaksi, yaitu: Ambil Tunai, Transfer dan Cek Saldo. Perluasan use case utama yang mencakup perilaku terhadap kejadian khusus (extend): PIN Salah.