Bahasa Pemodelan Terpadu (UML)diagram kasus penggunaan adalah alat yang kuat untuk memodelkan kebutuhan fungsional suatu sistem. Mereka menggambarkan bagaimana aktor (pengguna atau sistem eksternal) berinteraksi dengan sistem melalui kasus penggunaan, yang mewakili fungsi-fungsi tertentu. Dua hubungan kunci dalam diagram kasus penggunaan—Include dan Extend—membantu mengelola kompleksitas dengan mengatur dan memodularisasi perilaku. Tutorial ini memberikan penjelasan rinci mengenai hubungan-hubungan ini, tujuannya, ciri-cirinya, dan aplikasi praktisnya, dilengkapi contoh untuk memastikan kejelasan.
Dalam diagram kasus penggunaan UML, Include dan Extendhubungan Include dan Extend memungkinkan Anda memecah kasus penggunaan yang kompleks menjadi komponen-komponen kecil yang dapat digunakan kembali atau opsional. Hubungan-hubungan ini meningkatkan modularity, mengurangi redundansi, dan memperbaiki kejelasan diagram.

Hubungan Include (<<include>>): Mewakili perilaku wajib yang selalu dieksekusi sebagai bagian dari kasus penggunaan dasar. Ini mengekstrak fungsi umum yang dibagikan di antara beberapa kasus penggunaan menjadi komponen yang dapat digunakan kembali.
Hubungan Extend (<<extend>>): Mewakili perilaku opsional atau kondisional yang memperluas kasus penggunaan dasar dalam kondisi tertentu, sehingga menjaga kasus penggunaan dasar tetap fokus pada fungsionalitas utamanya.
Kedua hubungan ini menggunakan panah putus-putus untuk menghubungkan kasus penggunaan, dengan label yang menunjukkan<<include>> atau <<extend>>. Arah panah sangat penting, karena mencerminkan ketergantungan antara kasus penggunaan.
The SertakanHubungan ini digunakan untuk mengekstrak perilaku umum dan wajib dari beberapa use case ke dalam satu use case yang dapat digunakan kembali. Ini mempromosikan penggunaan kembali dan menyederhanakan use case dasar dengan menghindari fungsi yang digandakan.
Wajib: Use case yang disertakan selalu dieksekusi ketika use case dasar dilakukan.
Dapat Digunakan Kembali: Use case yang disertakan adalah fungsi yang mandiri dan koheren yang dapat digunakan oleh beberapa use case dasar.
Menyederhanakan Diagram: Dengan mengekstrak langkah-langkah umum, use case dasar tetap ringkas dan fokus.
Arah: Panah mengarah dari use case dasar ke use case yang disertakan, menunjukkan bahwa use case dasar bergantung pada use case yang disertakan.
Panah putus-putus yang diberi label<<sertakan>> menghubungkan use case dasar dengan use case yang disertakan.
Pertimbangkan sistem belanja online di mana pelanggan dapatTempatkan Pesanan atau Batalkan Pesanan. Kedua use case ini mengharuskan pelanggan untukMasuk ke dalam sistem.
Use Case Dasar: Tempatkan Pesanan, Batalkan Pesanan
Kasus Penggunaan yang Dikandung: Masuk
Penjelasan: Masuk adalah langkah wajib baik untuk memesan maupun membatalkan pesanan. Alih-alih menduplikasi fungsi masuk dalam kedua kasus penggunaan, fungsi tersebut diekstrak ke dalam kasus penggunaan terpisahMasuk kasus penggunaan, yang dikandung oleh keduanya.
Representasi Diagram:
[Pesanan] ----<<kandung>>----> [Masuk]
[Batalkan Pesanan] ----<<kandung>>----> [Masuk]
Dalam sistem perpustakaan, pengguna dapatMeminjam Buku atau Mengembalikan Buku. Kedua proses ini memerlukanVerifikasi Pengguna.
Kasus Penggunaan Dasar: Meminjam Buku, Mengembalikan Buku
Kasus Penggunaan yang Dikandung: Verifikasi Pengguna
Penjelasan: Memverifikasi identitas pengguna (misalnya, memeriksa kartu perpustakaan mereka) adalah langkah wajib dalam meminjam dan mengembalikan buku. Kasus penggunaanVerifikasi Pengguna use case disertakan untuk menghindari pengulangan.
Representasi Diagram:
[Pinjam Buku] ----<<include>>----> [Verifikasi Pengguna]
[Kembalikan Buku] ----<<include>>----> [Verifikasi Pengguna]
Ketika beberapa use case berbagi langkah yang umum dan wajib.
Ketika Anda ingin menyederhanakan deskripsi use case dengan mengekstrak fungsi yang dapat digunakan kembali.
Ketika use case yang disertakan memiliki makna secara mandiri (misalnya, Masuk atau Verifikasi Penggunadapat dipahami sebagai fungsi mandiri).
Hubungan ExtendHubungan Extend digunakan untuk memodelkan perilaku opsional atau kondisional yang hanya dieksekusi dalam keadaan tertentu. Ini memungkinkan use case dasar tetap fokus pada fungsionalitas intinya sambil menambahkan perilaku opsional secara modular.
Opsional/Kondisional: Use case yang diperluas dieksekusi hanya jika kondisi tertentu terpenuhi.
Terikat: Use case yang diperluas tidak memiliki makna secara mandiri dan bergantung pada use case dasar.
Titik Ekstensi: Use case dasar dapat menentukan titik-titik tertentu di mana perilaku perluasan dapat dimasukkan.
Arah: Panah mengarah dari use case yang diperluas ke use case dasar, menunjukkan bahwa use case yang diperluas menambahkan perilaku ke use case dasar.
Panah putus-putus yang diberi label <<extend>> menghubungkan use case yang diperluas dengan use case dasar, sering kali dengan catatan yang menentukan kondisi atau titik perluasan.
Dalam sistem ATM, use case dasar adalahTarik Uang. Suatu perilaku opsional,Cetak Kwitansi, dapat terjadi jika pengguna meminta kwitansi.
Use Case Dasar: Tarik Uang
Use Case Perluas: Cetak Kwitansi
Kondisi: Pengguna memilih untuk mencetak kwitansi setelah menarik uang.
Penjelasan: Mencetak kwitansi tidak wajib dan hanya terjadi jika pengguna secara eksplisit memintanya. Use caseCetak Kwitansi memperluasTarik Uang pada titik perluasan ‘Pengguna meminta kwitansi.’
Representasi Diagram:
[Cetak Kwitansi] ----<<extend>>----> [Tarik Uang]rn(Catatan: Kondisi = Pengguna meminta kwitansi)
Dalam platform kursus online, pengguna dapatIkuti Kuis. Suatu perilaku opsional,Minta Petunjuk, terjadi jika pengguna mengalami kesulitan dengan pertanyaan.
Kasus Penggunaan Dasar: Ambil Kuis
Kasus Penggunaan Perluasan: Minta Petunjuk
Kondisi: Pengguna meminta petunjuk selama kuis.
Penjelasan: Meminta petunjuk bersifat opsional dan tergantung pada kebutuhan pengguna. Kasus Minta Petunjuk kasus penggunaan diperluas oleh Ambil Kuis pada titik perluasan ‘Pengguna membutuhkan bantuan.’
Representasi Diagram:
[Minta Petunjuk] ----<<extend>>----> [Ambil Kuis]
(Catatan: Kondisi = Pengguna membutuhkan bantuan)
Ketika perilaku bersifat opsional atau tergantung pada kondisi tertentu.
Ketika Anda ingin menjaga kasus penggunaan dasar tetap fokus pada fungsionalitas utamanya.
Ketika kasus penggunaan perluasan tidak bermakna tanpa kasus penggunaan dasar (misalnya, Cetak Kwitansi tidak relevan tanpa Tarik Uang).
Tabel di bawah ini merangkum perbedaan antara Include dan Perluas hubungan untuk membimbing penggunaannya:
|
Kriteria |
Sertakan (<<sertakan>>) |
Perluas (<<perluas>>) |
|---|---|---|
|
Apakah perilaku tersebut wajib? |
Ya, selalu dieksekusi sebagai bagian dari use case dasar |
Tidak, dieksekusi hanya dalam kondisi tertentu |
|
Apakah perilaku tersebut dapat berdiri sendiri? |
Ya, merupakan fungsi yang koheren dan dapat digunakan kembali |
Tidak, tergantung pada use case dasar |
|
Apakah terjadi dalam beberapa use case? |
Ya, dibagikan di antara beberapa use case |
Biasanya spesifik untuk satu use case |
|
Tujuan |
Mendorong penggunaan kembali dan menyederhanakan use case dasar |
Menambahkan perilaku opsional atau eksplisit secara modular |
|
Arah Panah |
Dasar → Use case yang disertakan |
Memperluas → Use case dasar |
Mari kita terapkan kedua hubungan ini dalam sistem manajemen restoran untuk menggambarkan penggunaannya dalam skenario dunia nyata.
Sistem restoran memungkinkan pelanggan untukPesanan Makanan dan Pesankan Meja. Sistem juga menangani perilaku tambahan seperti Bayar Tagihan dan Permintaan Bawa Pulang.
Pesanan Makanan: Pelanggan memesan makanan dari menu.
Pesankan Meja: Pelanggan memesan meja untuk makan.
Autentikasi Pelanggan: Memverifikasi identitas pelanggan (misalnya melalui akun loyalitas).
Bayar Tagihan: Pelanggan membayar pesanan mereka (wajib untuk Pesanan Makanan).
Permintaan Bawa Pulang: Permintaan opsional untuk membungkus pesanan untuk dibawa pulang.
Termasuk: Keduanya Pesanan Makanan dan Pesankan Meja memerlukan Autentikasi Pelanggan untuk memverifikasi identitas pelanggan. Pesanan Makanan juga mencakup Bayar Tagihan karena pembayaran wajib dilakukan setelah pemesanan.
Perpanjang: Pesanan Makanan dapat diperpanjang olehPermintaan Bawa Pulang jika pelanggan memilih membawa makanan pulang.
[Pesanan Makanan] ----<<include>>----> [Autentikasi Pelanggan]
[Pesanan Makanan] ----<<include>>----> [Bayar Tagihan]
[Reservasi Meja] ----<<include>>----> [Autentikasi Pelanggan]
[Permintaan Bawa Pulang] ----<<extend>>----> [Pesanan Makanan]
(Catatan: Kondisi = Pelanggan meminta bawa pulang)
Autentikasi Pelanggan termasuk dalam keduaPesanan Makanan danReservasi Meja karena merupakan langkah wajib untuk mengakses sistem.
Bayar Tagihan termasuk dalamPesanan Makanan karena pembayaran diperlukan untuk menyelesaikan pesanan.
Permintaan Bawa Pulang memperpanjangPesanan Makanan karena merupakan perilaku opsional yang hanya terjadi jika pelanggan meminta bawa pulang.
Gunakan Include Secara Bijak: Hanya ekstrak perilaku ke dalam use case yang diinclude jika perilaku tersebut dibagikan oleh beberapa use case atau secara signifikan menyederhanakan use case utama. Penggunaan include yang berlebihan dapat membuat diagram menjadi kusut.
Tentukan Titik Perpanjangan yang Jelas untuk Extend: Tentukan kondisi atau titik dalam use case utama di mana perilaku perpanjangan berlaku untuk menghindari ambiguitas.
Jaga Fokus Kasus Penggunaan: Pastikan kasus penggunaan dasar tetap sederhana dan fokus pada tujuan utamanya, dengan menggunakan Sertakan untuk langkah-langkah wajib dan Perluas untuk yang opsional.
Validasi Kemampuan Digunakan Kembali untuk Sertakan: Kasus penggunaan yang disertakan harus bermakna dan dapat digunakan kembali di berbagai konteks.
Hindari Memperumit Diagram: Gunakan Sertakan dan Perluas hanya bila mereka menambah kejelasan. Hubungan yang kompleks dapat membingungkan pemangku kepentingan.
Mengaburkan Sertakan dengan Perluas:
Rintangan: Menggunakan Sertakan untuk perilaku opsional atau Perluas untuk perilaku wajib.
Solusi: Selalu periksa apakah perilaku bersifat wajib (gunakan Sertakan) atau bersyarat (gunakan Perluas).
Terlalu Sering Menggunakan Hubungan:
Rintangan: Menciptakan terlalu banyak Sertakan atau Perluas hubungan, sehingga membuat diagram sulit dibaca.
Solusi: Hanya gunakan hubungan ini ketika mereka mengurangi redundansi atau meningkatkan kejelasan.
Kondisi Perluasan yang Tidak Jelas:
Rintangan: Tidak menentukan kondisi untuk hubungan Perluas hubungan, yang menyebabkan kebingungan.
Solusi: Selalu sertakan catatan atau deskripsi kondisi atau titik perluasan.
Menyertakan Perilaku yang Tidak Dapat Digunakan Kembali:
Rintangan: Menciptakan use case yang disertakan yang hanya digunakan oleh satu use case dasar.
Solusi: Pastikan use case yang disertakan dapat digunakan kembali atau secara signifikan menyederhanakan use case dasar.
Hubungan Sertakan dan Perluas hubungan dalam diagram use case UML sangat penting untuk mengelola kompleksitas dan memastikan modularity. Hubungan Sertakan hubungan mempromosikan penggunaan kembali dengan mengekstrak perilaku wajib dan bersama, sementara Perluas hubungan menjaga use case dasar tetap fokus dengan memodelkan perilaku opsional atau kondisional. Dengan memahami tujuan, karakteristik, dan praktik terbaiknya, Anda dapat membuat diagram use case yang jelas, dapat dipelihara, dan efektif yang menyampaikan fungsi sistem kepada pemangku kepentingan.