Use case diagram (aktor sekunder)

Oct 31 2020

Saya memiliki pernyataan masalah yang menjelaskan sistem E-niaga online:

Sistem perangkat lunak E-commerce akan dikembangkan. Sistem ini memungkinkan pelanggan untuk menelusuri katalog toko, memilih item, dan memasukkannya ke dalam e-cart. Pelanggan dapat memesan dan memasukkan detail pengirimannya, informasi kartu kredit. Ini menyediakan bentuk aman dari layanan pembayaran kartu kredit. Ini akan memberikan kepada pelanggan satu set metode pengiriman, yang dikirim melalui agen pengiriman lokal, pada hari kerja berikutnya melalui DHL. Sistem memiliki backend administrasi yang memungkinkan administrator untuk menambahkan produk baru, mengelola inventaris, dan memproses pengembalian dana pelanggan jika ada juga. Sistem tersebut harus sesuai dengan semua hukum lokal dan internasional yang berlaku. Itu juga harus sesuai dengan standar perusahaan STD0945. Persyaratan di sisi klien tidak lebih dari browser web dan jumlah memori yang wajar pada perangkat komputasi. Sistem ini harus memiliki waktu respons yang cepat dan harus mentolerir jenis kesalahan yang umum.

Pertanyaannya adalah untuk mendapatkan persyaratan fungsional dan non fungsional: dalam fungsional Customersaya memiliki "meminta pengembalian dana" dan fungsional untuk Adminadalah 'proses pengembalian dana', saya menganggapnya Adminsebagai aktor sekunder karena dia menanggapi penggunaan yang dimulai kasus dari Customer(primer).

Saya punya dua pertanyaan:

1- Dapatkah saya menganggap the Adminsebagai aktor utama karena dia memiliki beberapa kasus penggunaan yang dapat dia mulai?

2- Manakah dari diagram use case berikut yang menggambarkan sistem yang benar? (Saya membuat 3 dari mereka tapi saya tidak yakin)

SEBUAH)

B)

C)

Saya yakin bahwa C adalah yang benar, tetapi saya ingin mendengar pendapat Anda tentang A dan B.

Jawaban

3 Christophe Oct 31 2020 at 15:24

Aktor primer vs. aktor sekunder tidak didefinisikan di tingkat sistem tetapi di tingkat kasus penggunaan. Artinya, aktor yang sama Adminbisa jadi:

  • aktor sekunder untuk kasus penggunaan "Minta pengembalian dana", karena permintaan ini bukan Admintujuan pelanggan, tetapi dia terlibat dalam tujuan pelanggan ini;
  • aktor utama untuk kasus penggunaan "Tambahkan produk baru", karena aktivitas ini merupakan bagian dari Admintujuan sendiri dalam kapasitas profesionalnya.

Penggunaan menempatkan aktor sekunder di sebelah kanan sistem hanyalah praktik informal. Dari sudut pandang formal B dan C adalah ekuivalen. Terserah Anda untuk memilih tata letak yang paling mudah dibaca jika seorang aktor adalah primer dan sekunder dalam diagram yang sama. Secara intuitif saya akan memilih B, tapi ini masalah selera.

A bagaimanapun juga salah, karena tidak ada asosiasi yang diperbolehkan antara dua kasus penggunaan (yaitu Meminta vs. memproses pengembalian dana).

Tidak terkait tetapi untuk meningkatkan:

  • Diagram kasus penggunaan tidak dimaksudkan untuk membuat dekomposisi fungsional dari persyaratan, dan juga tidak untuk memodelkan antarmuka pengguna. Secara keseluruhan, diagram ini tampak sangat rinci, jadi saran saya adalah mempertanyakan secara kritis apa yang sebenarnya merupakan kasus penggunaan dengan nilai bagi pengguna (terlepas dari yang lain).
  • Shipment methodadalah kata benda dan tidak menjelaskan kasus penggunaan. Baik Select shipment method(tetapi kemudian Anda tidak dapat memiliki spesialisasi melalui DHLatau local; paling baik Anda dapat mempertimbangkan ekstensi), atau Process shipping instructions(dengan asumsi bahwa pilihan sudah dibuat sebelumnya, tetapi kemudian harus Process shipping instructions via DHLdan Process shipping instruction via localuntuk mengklarifikasi bahwa itu benar-benar spesialisasi dan bukan kesalahan grafis ).
  • Pay with credit carddapat dianggap sebagai sub-tujuan (meskipun sulit untuk membayangkan secara independen dari kasus penggunaan yang melampirkan). Tetapi Place an orderuntuk memperluasnya tampaknya membingungkan. Ini tampaknya dekomposisi fungsional biasa. Saya benar-benar akan menghapus yang terakhir ini dari diagram.