Apa itu Use Case?
Use case adalah metodologi yang digunakan dalam analisis sistem untuk mengidentifikasi, memperjelas, dan mengorganisir persyaratan sistem. Use case terdiri dari serangkaian urutan interaksi yang mungkin antara sistem dan pengguna dalam suatu lingkungan tertentu dan terkait dengan tujuan tertentu. Metode ini menghasilkan dokumen yang menggambarkan semua langkah yang diambil oleh pengguna untuk menyelesaikan aktivitas.
Analis bisnis biasanya bertanggung jawab untuk menulis use case dan mereka terlibat pada beberapa tahap pengembangan perangkat lunak, seperti merencanakan persyaratan sistem, memvalidasi desain, menguji perangkat lunak, dan membuat garis besar untuk bantuan online serta manual pengguna. Dokumen use case dapat membantu tim pengembangan mengidentifikasi dan memahami di mana kesalahan mungkin terjadi selama transaksi sehingga mereka dapat menyelesaikannya.
Setiap use case mengandung tiga elemen penting:
- Aktornya. Pengguna sistem – ini bisa berupa seorang individu atau sekelompok orang yang berinteraksi dengan proses.
- Tujuan. Hasil akhir yang sukses yang menyelesaikan proses.
- Sistem. Proses dan langkah-langkah yang diambil untuk mencapai tujuan akhir, termasuk persyaratan fungsional yang diperlukan dan perilaku yang diperkirakan.
Karakteristik Use Case
Use case menggambarkan persyaratan fungsional sistem dari perspektif pengguna akhir, menciptakan urutan kejadian yang berfokus pada tujuan yang mudah diikuti oleh pengguna dan pengembang. Sebuah use case yang lengkap akan mencakup satu alur utama atau dasar serta berbagai alur alternatif. Alur alternatif — yang juga dikenal sebagai use case yang memperluas — menggambarkan variasi normal dari alur dasar serta situasi yang tidak biasa.
Sebuah use case harus:
- Mengorganisir persyaratan fungsional.
- Memodelkan tujuan interaksi sistem/aktor.
- Mencatat jalur — yang disebut skenario — dari peristiwa pemicu menuju tujuan.
- Menjelaskan satu alur utama peristiwa dan berbagai alur alternatif.
- Memiliki beberapa level, sehingga satu use case bisa menggunakan fungsionalitas dari use case lainnya.
Bagaimana Menulis Use Case
Ada dua jenis use case yang berbeda: business use case dan system use case.
Business use case adalah deskripsi yang lebih abstrak yang ditulis dengan cara yang agnostik teknologi, hanya merujuk pada proses bisnis yang dijelaskan dan aktor yang terlibat dalam aktivitas tersebut. Business use case mengidentifikasi urutan tindakan yang harus dilakukan oleh bisnis untuk memberikan hasil yang berarti dan dapat diamati kepada pengguna akhir.
Sebaliknya, system use case ditulis dengan lebih detail daripada business use case, merujuk pada proses spesifik yang harus terjadi di berbagai bagian sistem untuk mencapai tujuan pengguna akhir. Sebuah diagram use case sistem akan merinci spesifikasi fungsional, termasuk ketergantungan, fitur internal pendukung yang diperlukan, dan fitur internal opsional.
Saat menulis use case, penulis harus mempertimbangkan ruang lingkup desain untuk mengidentifikasi semua elemen yang berada dalam dan di luar batasan proses. Apa pun yang penting untuk use case tetapi berada di luar batasannya harus ditunjukkan dengan aktor pendukung atau oleh use case lain. Ruang lingkup desain bisa berupa sistem spesifik, subsistem, atau seluruh perusahaan. Use case yang menggambarkan proses bisnis biasanya bersifat ruang lingkup perusahaan.
Seperti yang disebutkan, tiga elemen dasar yang membentuk use case adalah aktor, sistem, dan tujuan. Elemen tambahan lainnya yang perlu dipertimbangkan saat menulis use case meliputi:
- Pemangku kepentingan, atau siapa pun yang memiliki kepentingan atau investasi dalam bagaimana sistem berfungsi.
- Prasyarat, atau elemen yang harus benar sebelum use case dapat terjadi.
- Pemicu, atau peristiwa yang menyebabkan use case dimulai.
- Post-kondisi, atau apa yang harus diselesaikan oleh sistem pada akhir langkah-langkah tersebut.
Pengembang menulis use case dengan bahasa naratif, menggambarkan persyaratan fungsional sistem dari perspektif pengguna akhir. Mereka juga bisa membuat diagram use case menggunakan bahasa pemodelan terstandarisasi, di mana setiap langkah diwakili oleh nama dalam oval; setiap aktor diwakili oleh figur stik dengan nama mereka tertulis di bawahnya; setiap tindakan diindikasikan dengan garis antara aktor dan langkah; dan batasan sistem ditunjukkan dengan persegi panjang di sekitar use case.
Proses penulisan mencakup:
- Mengidentifikasi semua pengguna sistem dan membuat profil untuk masing-masing. Ini termasuk setiap peran yang dimainkan oleh pengguna yang berinteraksi dengan sistem.
- Memilih satu pengguna dan mendefinisikan tujuan mereka — atau apa yang ingin dicapai oleh pengguna saat berinteraksi dengan sistem. Setiap tujuan ini menjadi use case.
- Mendeskripsikan jalur yang ditempuh untuk setiap use case melalui sistem untuk mencapai tujuan tersebut.
- Mengambil semua jalur alternatif kejadian dan use case yang memperluas — atau berbagai jalur yang bisa diambil untuk mencapai tujuan.
- Mengidentifikasi kesamaan dalam perjalanan untuk membuat use case jalur umum dan menulis deskripsi masing-masing.
- Mengulang langkah dua hingga lima untuk semua pengguna sistem lainnya.
Saat menulis use case, pengembang dapat menggunakan diagram urutan — yang menunjukkan bagaimana objek berinteraksi sepanjang garis waktu — untuk memodelkan interaksi antara objek dalam satu use case. Diagram urutan memungkinkan pengembang untuk melihat bagaimana setiap bagian dari sistem berinteraksi dengan yang lain untuk melaksanakan fungsi tertentu serta urutan interaksi tersebut.
Manfaat Use Case
Satu use case dapat memberi manfaat bagi pengembang dengan mengungkapkan bagaimana sistem harus berperilaku sekaligus membantu mengidentifikasi kesalahan yang mungkin timbul dalam proses.
Manfaat lain dari pengembangan use case meliputi:
- Daftar tujuan yang dibuat dalam proses penulisan use case dapat digunakan untuk menetapkan kompleksitas dan biaya sistem.
- Dengan berfokus pada pengguna dan sistem, kebutuhan sistem yang nyata dapat diidentifikasi lebih awal dalam proses desain.
- Karena use case ditulis terutama dalam bahasa naratif, mereka mudah dipahami oleh pemangku kepentingan, termasuk pelanggan, pengguna, dan eksekutif — bukan hanya oleh pengembang dan penguji.
- Pembuatan use case yang memperluas dan identifikasi pengecualian terhadap skenario use case yang berhasil menghemat waktu pengembang dengan mempermudah mendefinisikan persyaratan sistem yang lebih halus.
- Dengan mengidentifikasi batasan sistem dalam ruang lingkup desain use case, pengembang dapat menghindari scope creep.
- Desain prematur dapat dihindari dengan berfokus pada apa yang harus dilakukan sistem daripada bagaimana cara melakukannya.
Selain itu, use case dapat dengan mudah diubah menjadi test case dengan memetakan jalur umum dan jalur alternatif serta mengumpulkan data uji untuk masing-masing skenario. Test case fungsional ini akan membantu tim pengembangan memastikan semua persyaratan fungsional sistem dimasukkan dalam rencana uji.
Lebih lanjut, use case dapat digunakan dalam berbagai area pengembangan perangkat lunak lainnya, termasuk perencanaan proyek, dokumentasi pengguna, dan definisi test case. Use case juga bisa digunakan sebagai alat perencanaan untuk pengembangan iteratif.
Use Case vs. User Story
Meskipun baik use case dan user story digunakan untuk mengidentifikasi pengguna sistem dan menggambarkan tujuan mereka, kedua istilah ini tidak dapat dipertukarkan; mereka memiliki tujuan yang berbeda. Sementara use case lebih spesifik dan melihat langsung bagaimana sistem akan bertindak, user story adalah teknik pengembangan Agile yang berfokus pada hasil dari aktivitas dan manfaat dari proses yang dijelaskan.
Lebih khusus lagi, use case — yang sering ditulis sebagai dokumen — menggambarkan serangkaian interaksi yang terjadi antara sistem dan aktor untuk mencapai tujuan. User story akan menggambarkan apa yang akan dilakukan pengguna saat berinteraksi dengan sistem, dengan fokus pada manfaat yang diperoleh dari melakukan aktivitas tertentu.
Selain itu, user story sering kali kurang terdokumentasi dibandingkan use case dan dengan sengaja mengabaikan detail penting. User story terutama digunakan untuk menciptakan percakapan dengan mengajukan pertanyaan selama pertemuan scrum, sementara use case digunakan oleh pengembang dan penguji untuk memahami semua langkah yang harus diambil oleh sistem untuk memenuhi permintaan pengguna.
Contoh Use Case
Di luar pengembangan perangkat lunak dan sistem, contoh lain dari use case adalah petunjuk arah mengemudi. Seorang pengemudi ingin pergi dari Surabaya ke Jakarta. Dalam skenario ini, aktornya adalah pengemudi, tujuannya adalah sampai di Jakarta dan sistemnya adalah jaringan jalan dan jalan raya yang akan dilalui untuk sampai ke sana. Ada satu jalur umum yang biasanya dilalui pengemudi antara Surabaya dan Sakarta — ini adalah use case jalur umum. Namun, ada berbagai jalan lain yang bisa diambil pengemudi yang meskipun lebih jauh, namun tetap akan membawa mereka ke Jakarta. Jalur-jalur berbeda ini adalah use case yang memperluas(common course use case). Tujuan dari petunjuk arah adalah mengidentifikasi setiap belokan yang harus diambil pengemudi untuk mencapai tujuan mereka.
Lebih spesifik terkait dengan pengembangan perangkat lunak dan sistem, use case dapat digunakan untuk mengidentifikasi bagaimana seorang pelanggan menyelesaikan pemesanan melalui penjual online. Pertama, pengembang harus memberi nama use case dan mengidentifikasi aktor. Dalam skenario ini, use case akan disebut “selesai membeli” dan aktor-aktornya adalah:
- pelanggan;
- sistem pemenuhan pesanan; dan
- sistem penagihan.
Selanjutnya, pemicu, prasyarat, dan post-kondisi didefinisikan. Dalam hal ini, pemicu adalah pelanggan yang mengindikasikan bahwa mereka ingin membeli produk yang dipilih. Prasyarat untuk use case adalah pelanggan memilih barang yang akhirnya ingin dibeli. Post-kondisi mencakup pesanan yang telah ditempatkan; pelanggan menerima ID pelacakan untuk pesanan mereka; dan pelanggan menerima tanggal perkiraan pengiriman untuk pesanan mereka.
Setelah judul, aktor, pemicu, prasyarat, dan post-kondisi diidentifikasi, alur dasar — atau use case jalur umum — dapat digariskan. Ini dimulai dengan pelanggan yang mengindikasikan bahwa mereka ingin melakukan pembelian dan berakhir dengan pelanggan keluar dari sistem setelah pesanan mereka dikonfirmasi. Setelah alur normal ditulis, semua use case yang memperluas harus dirinci, dicatat, dan dimasukkan dalam dokumen tersebut.