“Kullanım senaryosu”, “Kullanıcı Hikayesi” ve “Kullanım Senaryosu” arasındaki fark nedir?


42

"Kullanım Durumu", "Kullanıcı Hikayesi" ve "Kullanım Senaryosu" arasındaki ayrımın kesin, ancak basit ve anlaşılabilir bir tanımı var mı?

epeyce bir açıklama var, ama şu anda, bir veya iki cümle arasındaki farklılıkları açıklayan birini göremiyorum ...

(örneğin, http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison çok uzun ve tartışması zor, tartışma dolu)


3
Sorunuz için teşekkürler. Bazı nedenlerden dolayı, metodolojileri ortaya çıkaran insanlar asla kasıtlı olarak kesin değildir (sanırım), böylece düşünceleri hiçbir zaman belirli bir durum için geçerli olmakla suçlanmaz. Bu, her birimizin metodolojiyi kullanmadan önce işe yarayan bir adaptasyon yaratması gereken tüm endüstriyi geri sürüklüyor. Umarım toplum bu davranışa karşı durur. Bazen 2 kitap seçersiniz ve farklı şeyler tanımlarlar - Bilim bu şekilde çalışmaz.
NoChance

Terimlerinizin her birinin Wikipedia tanımını kontrol etmenizi öneririm. Terimlerin ne anlama geldiğini daha iyi anlamanıza yardımcı olabilir. Ayrıca terimlerin farklı konseptlerden geldiğine dikkat edin. Örneğin, kullanıcı hikayesi Çevik bir araç / tekniktir ve Kullanım Durumu bir OOA araç / tekniğidir.
NoChance

Yanıtlar:



20

Bana göre bir Kullanıcı Hikayesi ile Kullanım Örneği arasındaki en büyük farklar şunlardır:

  • Bir kullanıcı öyküsü , bir kart üzerine yazılabilen hafif bir belgedir (İstediğim gibi). Bir Kullanıcı Hikayesi tüm ayrıntıları yakalamaz, tartışma için gayri resmi bir destek sağlar.
  • Bir kullanım örneği bir olan ağır bir kelime belgesi ihtiyacı belgesi. Adımların ve / veya işlemlerin "Normal Akışını" ve ayrıntılı olan "Alternatif Akışları" açıklar. Bir Kullanım Örneği tüm ayrıntıları yakalar, bu resmi bir özelliktir.

Kullanım Senaryoları Üzerine Scott W. Ambler'e göre , bu eserler bir Kullanım Vakası akışına benziyor:

Bir kullanım senaryosu veya kısaca senaryo , bir veya daha fazla kişi veya kuruluşun bir sistemle nasıl etkileşime girdiğine dair gerçek dünyaya ait bir örneği açıklar. Etkileşim sırasında ortaya çıkan adımları, olayları ve / veya eylemleri açıklar. Kullanım senaryoları, birisinin kullanıcı arayüzü ile tam olarak nasıl çalıştığını veya kritik iş eylemlerini açıklayan makul düzeyde yüksek düzeyde olduğunu gösteren ancak bunların nasıl gerçekleştirildiğini gösteren oldukça ayrıntılı olabilir.

Dürüst olmak gerekirse, bir Kullanım Davası'nın akışındaki farklılıklar bu paragrafı okuduktan sonra bile net değildir (son cümle belki de en önemlisidir):

Tahmin edebileceğiniz gibi, kullanım durumları ve senaryolar arasında birkaç fark vardır. İlk olarak, bir kullanım durumu tipik olarak Müşteri gibi genel aktörlere atıfta bulunurken, senaryolar tipik olarak John Smith ve Sally Jones gibi aktörlerin örneklerine atıfta bulunur. Genel bir senaryo yazmanızı engelleyen hiçbir şey yoktur, ancak anlaşılırlıklarını artırmak için senaryoları kişiselleştirmek daha iyidir. İkinci olarak, kullanım senaryoları tek bir mantık yolunu açıklarken, kullanım senaryoları tipik olarak birkaç yolu (temel rota artı uygun olan alternatif yolları) açıklar. Üçüncüsü, YUKARI tabanlı işlemlerde kullanım durumları genellikle resmi belgeler olarak saklanırken, senaryolar artık ihtiyaç duyulmadıklarında atılmaktadır.

Yanılıyor olabilirim ama Kullanım Senaryosu gerçekten Kullanım Örneği akışı kullan gibi görünüyor ancak Çevik bir dokunuşla yeniden markalandı.


Senaryoları kişiselleştirmek zararlı olduğunu düşünüyorum (en azından anladığım kadarıyla). “Senaryoları kişiselleştirmek genellikle daha iyi olur” diyorsunuz - Peki ya Sally Jones şirketten ayrıldıysa veya pozisyonunu değiştirseydi - Senaryo ne değerde olurdu?
NoChance

Kişiselleştirme, gerçek bir insan için tasarım yapmak anlamına gelmez. Bu olabilir bir gerçek kişi için için, ama aynı zamanda "Personas" aracıyla gibi bir kurgusal kişi için olabilir. Belirli kullanıcıları (gerçek veya kurgusal) bir kişiyle kullanma argümanları, senaryoların daha "gerçek" hale gelmesidir. Soyut bir kesin olmayan kullanıcıyı anlamaya çalışmak yerine, programcının bu kullanıcının kişiliğini anlarken kullanıcıyı anlaması daha kolaydır. Lütfen hatalıysam veya yorumunuzu yanlış anladıysam bana bildirin.
Mads Skjern

İle ilgili olarak A use case is an heavyweight document that needs a word document.. Martin Fowler bunu düşünüyor 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.
wha7ever

3

Bunların hiçbirinin kesin tanımı yok. Her şey şirketten şirkete ve sistemden sisteme biraz (veya çok fazla) değişiyor.

En iyi bahis mevcut projeniz için hali hazırda bir örnek bulmak ve onu takip etmektir.

Eğer yeni bir sistem oluşturuyorsanız, tercih ettiğiniz sistem için farklı kullanım durumlarının tanımlarını bulabilirsiniz - Niyetinizi en iyi şekilde karşılayacak görünen modeli seçin.

İsimleri takma.


1
> İsimlere takılma. Endişelenme, yapmayacağım! :) Öte yandan, bir takımda bütün üyelerin bir kelimenin anlamını benzer bir şekilde kastetmesi ve anlaması oldukça arzu edilen bir amaçtır

1
Tamamen katılıyorum ama takım düzeyinde. Ben sadece "Küresel" bir seviye buldum, iki kişinin "Kullanım Örneği" ni aynı şekilde tanımladığını hiç görmedim.
Bill K

Aynı değil, ama benzer eğilimler hakkında ... ve en azından bilmek ve anlamak istediğim eğilimler

3

Bir kullanıcı hikayesi her zaman gayrı resmidir ve bir kullanıcının ihtiyacını açıklar. Bir kullanım durumu resmi veya gayri resmi olabilir ve sistem davranışını açıklar.

"Teknoloji" kullanıcı hikayeleri olması mümkündür, kullanım durumları için aynı değildir.

Bir kez yapıldığında, kullanıcı hikayesi tipik olarak atılır. Ürünlerin kullanım ömrü boyunca kullanım durumları korunabilir.

Kapsam da farklı. Kullanıcı hikayeleri tipik olarak kapsam bakımından daha küçüktür ve sonuç olarak kullanım durumu birkaç kullanıcı hikayesi içerir. Mevcut bir sistem için değişen bir gereksinim, yeni bir kullanıcı hikayesinde veya kullanım durumunun güncellenmiş bir versiyonunda açıklanmaktadır.

Kullanıcı hikayeleri ve kullanım durumları arasındaki benzerlik, her ikisinin de planlama ve zamanlama için kullanılmasıdır.


1

Geliştiricilere tek tek atanabilen görevlere ayrıştırıldığında bir Kullanıcı Hikayesi, Kullanım Durumu Senaryosundan daha ayrıntılı ve kısıtlı olabilir veya olmayabilir. Bir Kullanıcı Hikayesi, Kullanıcının İhtiyacı ile ilgilidir - Sistemi kullanmasından bir Hedef veya Sonuç.

Kullanıcı Hikayeleri örnekleri:

  1. Ben bir Müşteriyim ve çevrimiçi olarak hesap bakiyemi ödemek istiyorum - oldukça yüksek düzeyde bir görünüm
  2. Ben bir Müşteriyim ve depolanan kredi bilgilerimin son kullanma yılını (oldukça ayrıntılı bir görünümle) güncellemek istiyorum.

En yüksek soyutlama seviyesinde bir Kullanım Örneği çok benzer bir ses çıkarır - Müşteri Güncellemeleri Kart Sona Erme Yılı - ancak burada amaçtan çok bir fonksiyon ifadesidir.

Kullanım Vakası senaryolarının ayrıntı düzeyi tanımlandığı için, fonksiyon ve prosedür hakkında daha fazla bilgi sahibi olurlar.

Bir Kullanım Durumu Sonrası Ana Senaryosunun Durumu, Kullanıcı Öyküsünde belirtilenle aynı sonuç olmalıdır - Müşterinin Kredi Kartı Son Kullanma Yılı Güncellenmiştir.

Kullanım senaryosu senaryoları, metin veya proses akış şemasında adım adım açıklanmaktadır (mutlaka UML veya BPM değil - kullanım durumunun eğitimsiz tüketicileri tarafından anlaşılırlık ve kullanım kolaylığı için standart bir çapraz fonksiyonel akış diyagramı kullanıyorum.

Sonuç olarak, Kullanıcı Öyküleri İhtiyaçları ve Sonuçları (Sistemin Ne İhtiyacı Var?), Kullanım Koşulları ise hedefe ulaşmak için gereken Aktörler arasındaki etkileşimi - VE neyin yanlış gidebileceğini (Uzatma, Alternatif veya Hata Senaryoları) (kullanıcının nasıl etkileşime gireceği) tanımlamasıdır. Sistem bu sonucu elde eder)

Bu konuyla ilgili derinlemesine bir tartışma için Alistair Cockburn web sitesinde http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison bölümünü okumanızı öneriyorum . Agile Manifesto'nun imzacısı olduğu için, Kullanıcı Hikayeleri'ni kullanan ve son birkaç on yıl için bir Kullanım Örneği uzmanı olarak kabul edilen kişi, daha fazla bilgi için mükemmel bir kaynak olduğunu düşünüyorum.


2
Bu sadece bir metin duvarıdır; bunu okunabilirlik için düzenleyebilir misiniz?
Martijn Pieters,

1

Hızlı geçici not : Bu yazının, soruyu daha iyi cevaplayabilmesi için iyileştirmelere ihtiyacı vardır, örneğin 1) ek detaylar referanslardan dahil edilmelidir 2) bazı alıntılar belki 3) İngilizce’nin genel doğruluğu 4) genel anlatı kalitesi 5) vb. ona geri dön. Kendinizi geliştirmek için çekinmeyin.


Şablonlarına bakmak, bu terimler arasındaki farklar hakkında değerli bilgiler verebilir.

Kullanım durumda

Kullanım durumları için birden fazla şablon vardır. Hızlı bir aramadan sonra 3 tane buldum: 1 , 2 , 3 . (Bazen belli belirsiz) ortak noktaları olan bazı noktalar:

  1. Kullanım durumu / unvanı
  2. Açıklama - kapsamı açıklayan bazı kısa metinler.
  3. Aktör (ler) / Birincil aktör - bu özel durumla etkileşime giren kişi (ler).
  4. Önkoşul - bu kullanım durumunun yaşam döngüsüne başlamadan önce doğru olduğunu varsayabileceği herhangi bir şey.
  5. Başarı senaryosu - gerçekleşen olayların doğru akışını açıklayan bir adım dizisi.
  6. Eklentiler - başarı senaryosunun akışından saptığında uygulama akışı:

    1. Alternatif akışlar - diğer doğru akış seçenekleri
    2. İstisna akışları - işler ters gittiğinde olayların akışı
  7. Başarı garantisi (aka. Post koşulu) - her şey yapıldıktan sonra başvuru durumu

Eklenebilecek bazı ek noktalar, Seviye , Minimum Garanti , Tetik , vb.

Yukarıda tamamen giyimli kullanım çantası denir . Örneğin, yalnızca en hayati noktaları kullanarak geçici bir kullanım durumu kullanarak kullanım durumu yaratmayı basitleştirebilirsiniz , örneğin:

  1. Başlık
  2. Aktör (ler)
  3. Olayların sırası

Kullanım vakaları, 90'lı yılların başlarında 80'lerin sonunda Ivar Jacobson tarafından yaratılmış ve yaygınlaştırılmıştır. Daha sonra diğer insanlar da çalışmalarına katkıda bulundu (bu insanlardan biri Etkili Kullanım Vakaları Yazma yazarı olan Alistair Cockburn .) To Martin Fowler tefsir bunun metninde metin ve MicroCode ama onların büyük değer yalanlar yararlanabilirler kullanım durumları. Büyük ve okunması kolay olmadıklarında en iyisidir.

Kullanıcı hikayesi (aka. Özellik)

Kullanıcı hikayesi - belirli bir özelliği tanımlayan küçük bir hikaye. Bir kullanıcı hikayesinin nasıl yazılacağına dair yaygın bir şablon vardır:

Bir itibariyle bir kullanıcının belirli türdeki
istediğim bir şey yapmak
, böylece nedense .

Ek olarak, kullanıcı hikayesi kabul kriterlerine sahip olabilir .

Gördüğünüz gibi bu şablon kullanım durumundan çok daha küçük. Kullanıcı hikayeleri genellikle yazılım geliştirmenin scrum / agile / xp bölgesi ile ilişkilendirilir. Bunlar, post-it notları gibi küçük yüzey bölgelerine ve / veya scrum tahtalarına yazılmalıdır. Orada, (genellikle) bu kullanıcı hikayesine refere ne kadar çaba harcanması gerektiğini belirten puan değerleri verilmiştir .

Bill Wake , iyi bir kullanıcı hikayesinin sahip olması gereken nitelikleri tanımlamak için INVEST anımsatıcısını geliştirdi ve Martin Fowler'in kısa özetini web sitesinden ödünç alacağım :

Bağımsız : hikayeler herhangi bir sırayla teslim
edilebilir Pazarlık edilebilir : hikayedekilerin detayları geliştirme sırasında programcılar ve müşteri tarafından birlikte oluşturulur.
Değerli : işlevsellik, yazılım müşterileri veya kullanıcıları tarafından değerli olarak görülür.
Saygıdeğer : programcılar hikaye oluşturmak için makul bir tahminde bulunmak yapabilirsiniz
Küçük : hikayeleri zaman az miktarda, kişi-gün genellikle bir konuda inşa edilmelidir. Kesinlikle bir yinelemede birkaç hikaye oluşturabilmelisiniz.
Test edilebilir : Bu hikaye için yazılımın doğru çalıştığını doğrulamak için testler yazabilmelisiniz.

Kullanım senaryosu

Kullanım senaryosu, Given-When-Then'u gösteren GWT şablonunu izler, şöyle:

Senaryo : başlık
Verildi : belirli bir gerçek
Ve : başka bir özel gerçek (isteğe bağlı olabilir)
Ne zaman : bir olay olur
O zaman : başka bir olay olur

Kullanım senaryoları, Behavior-Driven Development ile ilişkilidir. Teste çok benziyor. Martin Fowler blog yazısında , kullanım senaryolarının ardında bir miktar tarih ve akıl yürütüyor. İşte önemli kısım:

Verilen Eğer bu senaryoda belirterek ediyoruz davranışı başlamadan önce bölüm dünyasının durumunu açıklar. Bunu testin ön koşulları olarak düşünebilirsiniz.
Ne zaman bölümü belirttiğiniz davranış budur.
Nihayet o bölümde belirtilen davranışlar sonucunda beklediğiniz değişiklikleri açıklar.

Kullanım senaryoları, uygulamanız için test yazmak için kullanılabilir. Martin'in gönderisinin son paragrafından alıntı yapmak için:

Given-When-Then tarzı BDD'ye semptomatik olsa da, temel bir fikir, örneğin testler veya özellikler yazarken oldukça yaygındır. Meszaros, modeli Dört Fazlı Test olarak tanımlar. Dört aşaması Kurulum (Verilen), Egzersiz (Ne Zaman), Doğrulama (Sonra) ve Teardown'dır. Bill Wake, Formülasyonu Düzenlemek, Hareket Etmek, Assert olarak gördü.


Daha ileri çalışma için referanslar:

İçin Wikipedia sayfaları kullanım durumunda , kullanıcı hikaye , kullanım senaryosu
üzerinde Martin Fowler bloglar kullanım durumunda , kullanıcı hikaye , kullanım senaryosu


0

Kullanıcı Hikayesine aşina değilim, ancak birkaç yıl önce buna baktığımda:

Bir Kullanım Örneği ana görevdir.
Kullanıcı Senaryoları, görevin yerine getirebileceği çeşitli yollardır. Dolayısıyla, Her Kullanım Durumunda bir veya daha fazla senaryo var. Kullanım Durumu soyut, Kullanıcı Senaryoları bu soyut görevin olası tüm örneklerini içeren bir katalogdur.

Öyleyse:
Harf A'yı Kullan: Kullanıcı kimliği ve parola ile doğrulanıyor.

Senaryolar:
1. Kimlik tanınır, şifre doğru. ("güneşli gün" senaryosu)
2. Kimlik tanınır, şifre yanlış.
3. Kimlik tanınır, şifre üçüncü kez yanlıştır.
4. Kimlik tanınmıyor.

Kullanım koşullarını her zaman müşterinin şartlarına göre bir anlatı biçiminde gereksinimleri tanımlamanın bir yolu olarak düşündüm. w / r / t, eğer müşteri "Peki ya sistem kapalıyken gece yarısı ile bir arasında oturum açmaya çalışırsa ne olacak?"


0

Bir kullanıcı hikayesi müşterinin bakış açısından, bazen yanlış veya eksik. Performansı, hata yönetimi ya da arka uçtaki hiçbir şeyi göz önüne almaz.

Bir kullanım durumu dev'in bakış açısından. Doğru ve eksiksiz. Müşterilerden gelen tüm ihtiyaçlara cevap vermelidir.


0

"Kullanım durumu" ve "kullanıcı hikayesi", müşterinin "gereksinimlerini" temsil ettikleri anlamında aynıdır.

Kullanım durumu, sistemin her durumda, normal olarak oyuncu ve sistem arasındaki veya sistemler arasındaki bir etkileşim olarak temsil edilen şeklidir.

Kullanıcı hikayesi, son kullanıcının bir şey yapmasını sağlayacak bilgisayar destekli bir araç oluşturma yolculuğundaki başlangıç ​​noktasıdır ve normalde kim, ne, neden ("Uygulamayı kapatan bir kullanıcı olarak istiyorum. Son tasarruftan bu yana değişen bir şeyi kaydetmem isteniyor, böylece yararlı işi koruyabilir ve hatalı işi atabilirim. "). Bu kullanıcı öyküsünün, geliştiricilerin bir uygulama oluşturmak için kullandıkları ve test yapmak için test edenlerin kullandığı bir kullanım senaryosunda geliştirilmesi gerekir.

Bir QA Test Cihazının perspektifinden bakıldığında, "kullanıcı hikayelerini" test etmiyorlar, bunun yerine "kullanım durumlarını", yani yazılım fonksiyonlarını test ettiklerini söylüyorlar.


1
Doğru olsa da, bu 4 yıl önce verilen cevaplara hiçbir şey eklemiyor.
Adam Zuckerman

0

Kullanım Senaryosunun amacı, sistem eylemlerinin ayrıntılarına veya gerçek tasarımına dalmadan, bir hedef elde etmek için kullanıcı sisteminizle etkileşiminin özünü yakalamaktır. Odak, sistem üzerinde değil Kullanıcı üzerindedir.

... Kullanım Örneği ayrıca sistemin ne yapacağı ile ilgili ifadeler içerir, oysa Kullanım Senaryosu bu tartışmadan kaçınır.

Bunu nasıl uygulayacağınıza henüz karar vermediniz.

Gönderen ürün sanatları sitede.


Bu, yedi yıldan daha önce yayınlanmış olan kabul edilen cevabın üstüne ve ötesine bir şey eklememektedir. Dahası, kaynaklardan alıntı yapmak iyidir, ancak bunu kendi kelimelerinizle açıklamak daha iyi olur: metin

Sadece açık olmak gerekirse: eski soruları yanıtlamanın yanlış bir tarafı yoktur. Yığın Borsası, bir hata önleme politikasına sahip değildir. Ancak tartışmaya geç kaldıysanız, lütfen yeni bilgiler eklediğinizden, muhtemelen yedi yıl önce bulunmayan bilgiler eklediğinizden emin olun.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.