Apa perbedaan antara "use case", "User Story" dan "Skenario Penggunaan"?

42

Adakah definisi yang tepat, tetapi sederhana dan mudah dipahami tentang perbedaan antara "use case", "User Story" dan "Skenario Penggunaan"?

ada cukup banyak penjelasan, tetapi saat ini, saya tidak melihat seorang pun yang menjelaskan perbedaan dalam satu kalimat, atau dua ...

(mis. http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison sangat panjang dan sulit didapat, penuh diskusi)

Henning
sumber
3
Terima kasih atas pertanyaan anda Untuk beberapa alasan, orang yang mengemukakan metodologi tidak pernah akurat secara sengaja (saya berasumsi) sehingga pikiran mereka tidak pernah dituduh tidak berlaku untuk situasi tertentu. Ini menyeret seluruh industri kembali, di mana masing-masing dari kita harus membuat adaptasi yang berfungsi sebelum menggunakan metodologi. Saya harap komunitas menentang perilaku ini. Kadang-kadang, Anda memilih 2 buku dan mereka mendefinisikan berbagai hal secara berbeda - Sains tidak bekerja seperti ini.
NoChance
Saya sarankan Anda memeriksa definisi Wikipedia dari masing-masing istilah Anda. Mungkin membantu Anda lebih memahami apa arti istilah tersebut. Perhatikan juga bahwa istilah tersebut berasal dari konsep yang berbeda. Misalnya, cerita pengguna adalah alat / teknik Agile dan Use Case adalah alat / teknik OOA.
NoChance

Jawaban:

21

Sebuah Cerita Pengguna adalah lebih informal, ramah dan lebih kecil versi dari Use Case , minus diagram UML; ini biasanya digunakan dalam skenario berulang.

Sebuah Skenario Penggunaan adalah Use Case ditarik keluar ke prosedur langkah-demi-langkah, kadang disertai flowchart.

Robert Harvey
sumber
20

Bagi saya, perbedaan terbesar antara Kisah Pengguna dan Kasus Penggunaan adalah:

  • Sebuah cerita pengguna adalah ringan dokumen yang dapat ditulis pada kartu (Untuk, sebagai, saya ingin). Kisah Pengguna tidak menangkap semua detail, itu adalah dukungan informal untuk diskusi.
  • Case use adalah dokumen kelas berat yang membutuhkan dokumen kata. Ini menjelaskan "Aliran Normal" dari langkah dan / atau tindakan dan "Aliran Alternatif" yang dirinci. Use Case menangkap semua detail, ini spesifikasi formal.

Menurut Scott W. Ambler pada Skenario Penggunaan , artefak ini terlihat seperti aliran Use Case:

Sebuah skenario penggunaan , atau skenario untuk jangka pendek, menggambarkan contoh nyata tentang bagaimana satu atau lebih orang atau organisasi berinteraksi dengan sistem. Mereka menggambarkan langkah-langkah, peristiwa, dan / atau tindakan yang terjadi selama interaksi. Skenario penggunaan bisa sangat rinci, menunjukkan dengan tepat bagaimana seseorang bekerja dengan antarmuka pengguna, atau cukup tinggi menggambarkan tindakan bisnis penting tetapi tidak menunjukkan bagaimana mereka dilakukan.

Jujur saja, perbedaan dengan aliran Use Case tidak sejernih kristal, bahkan setelah membaca paragraf ini (kalimat terakhir mungkin yang paling penting):

Seperti yang dapat Anda bayangkan, ada beberapa perbedaan antara kasus penggunaan dan skenario. Pertama, use case biasanya merujuk pada aktor generik, seperti Pelanggan, sedangkan skenario biasanya merujuk pada contoh aktor seperti John Smith dan Sally Jones. Tidak ada yang menghentikan Anda dari menulis skenario umum, tetapi biasanya lebih baik untuk mempersonalisasikan skenario untuk meningkatkan pemahaman mereka. Kedua, skenario penggunaan menggambarkan satu jalur logika sedangkan kasus penggunaan biasanya menggambarkan beberapa jalur (kursus dasar ditambah jalur alternatif yang sesuai). Ketiga, dalam proses berbasis UP kasus penggunaan sering disimpan sebagai dokumentasi resmi sedangkan skenario sering dibuang setelah mereka tidak lagi diperlukan.

Saya mungkin salah, tetapi Skenario Penggunaan benar-benar terdengar seperti aliran Use Case tetapi diganti dengan sentuhan Agile.

Thivent Pascal
sumber
Saya pikir mempersonalisasikan skenario itu berbahaya (setidaknya seperti yang saya mengerti). Anda mengatakan "biasanya lebih baik untuk mempersonalisasikan skenario" - Tetapi bagaimana jika Sally Jones meninggalkan perusahaan atau mengubah posisi - Nilai apa yang akan dimiliki skenario?
NoChance
Personalisasi bukan berarti mendesain untuk orang sungguhan. Ini bisa untuk untuk seseorang yang nyata, tetapi juga bisa untuk orang fiktif, seperti dengan "Persona" alat. Argumen untuk menggunakan pengguna tertentu (nyata atau fiktif), dengan kepribadian, adalah bahwa skenario menjadi lebih "nyata". Lebih mudah bagi programmer untuk memahami pengguna ketika memahami kepribadian pengguna itu, daripada mencoba memahami pengguna abstrak yang tidak tepat. Tolong beri tahu saya jika saya salah, atau jika saya salah memahami komentar Anda.
Mads Skjern
Mengenai A use case is an heavyweight document that needs a word document.. Martin Fowler berpikir bahwa Use case are at their best when they are short and readable. You should not be spending weeks, let alone months, generating use case documents before you begin development.
tanggal
3

Tidak ada definisi pasti dari semua hal ini. Itu semua sedikit berbeda (atau banyak) dari perusahaan ke perusahaan dan dari sistem ke sistem.

Taruhan terbaik Anda adalah menemukan contoh yang sudah ada untuk proyek Anda saat ini dan ikuti.

Jika Anda membuat sistem baru, Anda dapat menemukan definisi dari berbagai jenis kasus penggunaan untuk sistem apa pun yang Anda sukai - Cukup pilih pola yang paling sesuai dengan tujuan Anda.

Jangan terpaku pada nama.

Bill K
sumber
1
> Jangan terpaku pada nama. Jangan khawatir, saya tidak akan! :) di sisi lain, itu adalah tujuan yang cukup diinginkan ketika dalam sebuah tim semua anggota berarti dan memahami arti kata dengan cara yang sama
1
Saya sepenuhnya setuju - tetapi di tingkat tim. Saya hanya menemukan bahwa tingkat "Global", saya belum pernah melihat dua orang mendefinisikan "Use Case" dengan cara yang sama.
Bill K
Tidak sama, tetapi pada kecenderungan yang sama ... dan itu setidaknya kecenderungan ini saya ingin mengetahui dan memahami
3

Kisah pengguna selalu bersifat informal dan menggambarkan kebutuhan pengguna. Sebuah use case dapat berupa formal atau informal, dan menggambarkan perilaku sistem.

Dimungkinkan untuk memiliki cerita pengguna "teknologi", hal yang sama tidak berlaku untuk kasus penggunaan.

Setelah selesai, kisah pengguna biasanya dibuang. Kasus penggunaan dapat dipertahankan selama siklus hidup produk.

Lingkupnya juga berbeda. Cerita pengguna biasanya dalam ruang lingkup yang lebih kecil, dan akibatnya kasus penggunaan terdiri dari beberapa cerita pengguna. Persyaratan yang diubah untuk sistem yang ada dijelaskan dalam kisah pengguna baru, atau versi terbaru dari use case.

Kesamaan antara cerita pengguna dan kasus penggunaan adalah keduanya digunakan untuk perencanaan dan penjadwalan.

pengguna249665
sumber
1

Kisah Pengguna saat didekomposisi ke tugas-tugas yang ditugaskan secara individual untuk pengembang mungkin atau mungkin tidak lebih terperinci dan dibatasi dalam ruang lingkup daripada Skenario Use Case. Kisah Pengguna adalah tentang kebutuhan Pengguna - Sasaran atau Hasil dari penggunaan Sistem.

Contoh Cerita Pengguna adalah:

  1. Saya seorang Pelanggan dan saya ingin membayar saldo akun saya secara online - tampilan tingkat tinggi yang cukup
  2. Saya seorang Pelanggan dan saya ingin memperbarui tahun kedaluwarsa pada informasi kredit saya yang tersimpan - tampilan yang sangat terperinci.

Pada tingkat abstraksi tertinggi, Use Case terdengar sangat mirip - Tahun Kedaluwarsa Kartu Pembaruan Pelanggan - tetapi di sini merupakan pernyataan fungsi alih-alih tujuan.

Ketika granularity dari skenario Use Case didefinisikan, mereka menjadi lebih tentang fungsi dan prosedur.

Skenario Utama Pascakondisi Skenario Penggunaan harus hasil yang sama dengan yang dinyatakan dalam Kisah Pengguna - Tahun Kedaluwarsa Kartu Kredit Pelanggan Diperbarui.

Skenario Use Case menjelaskan langkah-demi-langkah baik dalam teks atau diagram alir proses (belum tentu UML atau BPM - Saya menggunakan diagram alir lintas fungsional untuk kejelasan dan kemudahan penggunaan oleh konsumen yang tidak terlatih dari use case.

Intinya adalah bahwa Cerita Pengguna menggambarkan Kebutuhan dan Hasil (Apa Sistem Perlu Memberikan) sedangkan Kasus Penggunaan menggambarkan interaksi antara Aktor yang diperlukan untuk memenuhi tujuan - DAN apa yang bisa salah (Skenario, Perpanjangan, Alternatif atau Kesalahan) (bagaimana pengguna berinteraksi dengan Sistem mencapai hasil itu)

Untuk diskusi mendalam tentang topik ini saya sarankan membaca http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison di situs web Alistair Cockburn. Karena dia adalah penandatangan Agile Manifesto, orang yang menciptakan User Stories dan telah dianggap sebagai ahli Kasus Penggunaan selama beberapa dekade terakhir, saya pikir dia sumber yang bagus untuk info lebih lanjut.

jon karpoff
sumber
2
Ini hanya dinding teks; dapatkah Anda mengedit ini agar mudah dibaca.
Martijn Pieters
1

Catatan sementara cepat : Posting ini perlu perbaikan untuk menjawab pertanyaan dengan lebih baik, seperti 1) detail tambahan harus disertakan dari referensi 2) beberapa kutipan mungkin 3) kebenaran bahasa Inggris keseluruhan 4) keseluruhan kualitas narasi 5) dll. Saya akan kembali ke sana. Jangan ragu untuk memperbaikinya sendiri.


Melihat template mereka dapat memberikan wawasan berharga tentang perbedaan antara istilah-istilah ini.

Gunakan kasing

Ada beberapa templat untuk kasus penggunaan. Saya menemukan 3 setelah pencarian cepat: 1 , 2 , 3 . Beberapa poin yang mereka (kadang-kadang samar-samar) miliki adalah:

  1. Nama use case / judul
  2. Deskripsi - beberapa teks pendek yang menjelaskan ruang lingkup.
  3. Aktor / aktor Utama - orang yang berinteraksi dengan kasus penggunaan khusus ini.
  4. Prasyarat - segala sesuatu yang dapat dianggap benar oleh kasus penggunaan sebelum memulai siklus hidupnya
  5. Skenario sukses - urutan langkah yang menggambarkan aliran peristiwa yang benar yang terjadi.
  6. Extensions - aliran aplikasi ketika menyimpang dari aliran skenario sukses:

    1. Aliran alternatif - opsi lain untuk aliran yang benar
    2. Pengecualian mengalir - aliran peristiwa ketika ada yang salah
  7. Jaminan sukses (alias. Kondisi pos) - keadaan aplikasi setelah semuanya selesai

Beberapa poin tambahan yang dapat dimasukkan adalah Level , Jaminan Minimal , Pemicu , dll.

Di atas adalah apa yang disebut use case sepenuhnya berpakaian . Anda dapat menyederhanakan pembuatan use case dengan menggunakan case use kasual dengan hanya menggunakan poin paling vital, misalnya:

  1. Judul
  2. Aktor
  3. Urutan peristiwa

Kasus penggunaan dibuat dan dipopulerkan oleh Ivar Jacobson di akhir 80-an awal 90-an. Kemudian orang lain juga berkontribusi pada karyanya (salah satu dari orang-orang tersebut adalah Alistair Cockburn yang adalah penulis Menulis Kasus Penggunaan Efektif ). Untuk Mengutip Martin Fowler kasus penggunaan dapat menggunakan teks dan diagram UML, tetapi nilai kebohongan terbesar mereka dalam teks itu. Mereka terbaik ketika mereka tidak besar dan mudah dibaca.

Kisah pengguna (alias. Fitur)

Kisah pengguna - kisah kecil yang menggambarkan fitur tertentu. Ada pola umum tentang cara menulis cerita pengguna, yaitu:

Sebagai tipe pengguna tertentu
saya ingin melakukan sesuatu
sehingga ada alasan .

Selain itu, kisah pengguna dapat memiliki kriteria penerimaan .

Seperti yang Anda lihat templat ini jauh lebih kecil dari pada use case. Kisah-kisah pengguna umumnya dikaitkan dengan scrum / agile / xp wilayah pengembangan perangkat lunak. Mereka dimaksudkan untuk ditulis di daerah kecil permukaan, seperti catatan post-it, dan / atau di papan scrum. Di sana, mereka (biasanya) diberi nilai poin yang memperkirakan berapa banyak upaya yang perlu diinvestasikan ke dalam ref cerita pengguna itu .

Bill Wake mengembangkan INVEST mnemonic untuk menggambarkan kualitas apa yang harus dimiliki oleh cerita pengguna yang baik, dan saya akan meminjam ringkasan singkat Martin Fowler tentang itu dari situs webnya :

Independen : cerita dapat disampaikan dalam urutan apa pun. Dapat
dinegosiasikan : detail dari apa yang ada dalam cerita tersebut dibuat bersama oleh programmer dan pelanggan selama pengembangan.
Berharga : fungsionalitas dianggap bernilai oleh pelanggan atau pengguna perangkat lunak.
Diperkirakan : pemrogram dapat membuat estimasi yang masuk akal untuk membangun cerita
Kecil : cerita harus dibangun dalam jumlah kecil, biasanya dalam hitungan hari orang. Tentu saja Anda harus dapat membangun beberapa cerita dalam satu iterasi.
Diuji : Anda harus dapat menulis tes untuk memverifikasi perangkat lunak agar cerita ini berfungsi dengan benar.

Skenario penggunaan

Skenario penggunaan mengikuti pola GWT yang merupakan kepanjangan dari Given-When-Then, seperti:

Skenario : judul
Diberikan : fakta tertentu
Dan : fakta tertentu lainnya (mungkin opsional)
Kapan : beberapa peristiwa terjadi
Kemudian : beberapa peristiwa lain terjadi

Skenario penggunaan dikaitkan dengan Pengembangan Berbasis Perilaku. Kedengarannya sangat mirip dengan tes. Martin Fowler dalam posting blognya memberikan beberapa sejarah dan alasan di balik skenario penggunaan. Inilah bagian penting:

Bagian yang diberikan menjelaskan keadaan dunia sebelum Anda memulai perilaku yang Anda tentukan dalam skenario ini. Anda dapat menganggapnya sebagai prasyarat untuk ujian.
Bagian when adalah perilaku yang Anda tentukan.
Akhirnya bagian kemudian menjelaskan perubahan yang Anda harapkan karena perilaku yang ditentukan.

Skenario penggunaan dapat digunakan untuk tes menulis untuk aplikasi Anda. Mengutip paragraf terakhir dari pos Martin:

Meskipun gaya Given-When-Then adalah gejala dari BDD, ide dasarnya cukup umum ketika menulis tes atau spesifikasi dengan contoh. Meszaros menggambarkan polanya sebagai Tes Empat Fase. Empat fase-nya adalah Pengaturan (Diberikan), Latihan (Kapan), Verifikasi (Lalu) dan Teardown. Bill Wake muncul dengan formulasi sebagai Arrange, Act, Assert.


Referensi untuk studi lebih lanjut:

Halaman Wikipedia untuk kasus penggunaan , cerita pengguna , penggunaan skenario
blog Martin Fowler pada kasus penggunaan , cerita pengguna , penggunaan skenario

dimanapun
sumber
0

Saya tidak terbiasa dengan Cerita Pengguna, tetapi ketika saya melihat ini beberapa tahun yang lalu:

Use Case adalah tugas utama.
Skenario Pengguna adalah berbagai cara yang dapat dimainkan tugas. Jadi, Setiap Kasus Penggunaan memiliki satu skenario atau lebih. Use Case adalah abstrak, Skenario Pengguna adalah katalog dari semua contoh yang mungkin dari tugas abstrak itu.

Jadi:
Gunakan Kasus A: Pengguna mengautentikasi dengan id dan kata sandi.

Skenario:
1. ID dikenali, kata sandi benar. (skenario "hari cerah")
2. ID dikenali, kata sandi salah.
3. ID dikenali, kata sandi salah untuk ketiga kalinya.
4. ID tidak dikenali.

Saya selalu menganggap kasus penggunaan sebagai cara mendefinisikan persyaratan dengan cara naratif untuk klien dalam istilah mereka. w / r / t di atas, jika klien mengatakan "Tetapi bagaimana jika mereka mencoba masuk antara tengah malam dan satu ketika sistem mati?", kami telah menemukan skenario lain untuk tugas otentikasi, dan beberapa persyaratan tambahan.


sumber
0

Kisah pengguna adalah dari sudut pandang pelanggan, kadang-kadang itu tidak benar atau tidak lengkap. Mungkin tidak ada pertimbangan kinerja, penanganan kesalahan, atau tidak ada apa-apa di backend.

Case use adalah dari sudut pandang dev. Ini akurat dan lengkap. Itu harus menjawab semua persyaratan dari pelanggan.


sumber
0

"Kasus penggunaan" dan "kisah pengguna" adalah sama dalam arti mereka mewakili "persyaratan" pelanggan.

Use case adalah cara sistem digunakan dalam setiap kasus, biasanya direpresentasikan sebagai interaksi antara aktor dan sistem atau antar sistem.

Kisah pengguna adalah titik awal dalam perjalanan untuk membuat alat bantu komputer yang akan memungkinkan pengguna akhir untuk menyelesaikan sesuatu, dan biasanya dimulai dengan kalimat sederhana menggunakan siapa, apa, mengapa ("Sebagai pengguna menutup aplikasi, saya ingin diminta untuk menyimpan apa pun yang telah berubah sejak penyimpanan terakhir sehingga saya dapat mempertahankan pekerjaan yang bermanfaat dan membuang pekerjaan yang salah. "). Kisah pengguna itu kemudian perlu diolah menjadi use case yang digunakan pengembang untuk membangun aplikasi, dan penguji untuk melakukan pengujian.

Dari perspektif Penguji QA, mereka tidak menguji "cerita pengguna", melainkan "kasus penggunaan", yang berarti mereka menguji fungsionalitas perangkat lunak.

Kate
sumber
1
Meskipun benar, ini tidak menambahkan apa pun ke jawaban yang sudah ada selama 4 tahun.
Adam Zuckerman
0

Tujuan Skenario Penggunaan adalah untuk menangkap esensi dari interaksi pengguna dengan sistem Anda untuk mencapai tujuan, tanpa masuk ke rincian tindakan sistem atau desain aktual. Fokusnya adalah pada Pengguna, bukan pada sistem.

... Use Case juga mencakup pernyataan tentang apa yang akan dilakukan sistem, sedangkan Skenario Penggunaan akan menghindari diskusi ini.

Anda belum menentukan bagaimana Anda akan mengimplementasikannya.

Dari situs produk-seni .

Daniel
sumber
Ini tidak menambahkan apa pun di atas dan di luar jawaban yang diterima yang diposting lebih dari tujuh tahun yang lalu. Lebih jauh, mengutip sumber itu bagus, tetapi akan lebih baik untuk menjelaskannya dengan kata-kata Anda sendiri: apa arti teks itu bagi Anda?
Hanya untuk memperjelas: tidak ada yang salah dengan menjawab pertanyaan lama. Stack Exchange tidak memiliki kebijakan anti-necromancy. Tetapi jika Anda terlambat untuk diskusi, pastikan untuk menambahkan informasi baru, mungkin informasi yang tidak tersedia tujuh tahun yang lalu.