04 Aralık 2007

Use Case Driven Object Modeling with UML - 3. Bölüm : Aldığım Not


  • Yazılan kullanıcı senaryosunda bazen, GUI tasarımına dair detaylar verilebilir.
    Örnek : Kullanıcı adı soyadı bilgilerini girer, kaydet düğmesini tıklar. Sistem girilen değerleri validate eder, doğru ise sonuç sayfasına yönlendirir gibi.
  • Daha önceden çalışan bir sistem için kullanıcı senaryosu yazıryorsan öncelikle o sisteme ait kullanıcı el kitaplarını (user manual) incele. Boşu boşona kullanıcı ne yapmak ister diye uğraşma. Yeni sistemde bazı adımlar farklı olabilir onlara yoğunlaş. Mesela mainframe uygulaması ise eski sistem, F6 ile bir sonraki ekrana gidiyor, sen yeni sistemde düğme ile bu işi yapıyorsun gibi.
  • Senaryo adımları yazılırken hep olumlu adımlar üstüne yazarız. Velevki beklenmeyen bir durum oluşursa bu alternatif senaryoya yazılır.
Örnek : Girilen tarih, bügünden sonra. Kullanıcıya, kayıt sayfasında hata mesajı vererek, işlemi tekrarlatmak.
  • Bir kullanıcı senaryosu başka bir senaryoyu kullanıyorsa 2 senaryo arasındaki ilişkiyi uses veya include ile verirsin. (Rational Rose include kelimesini kullanıyor.)
Örnek : Normal Ödeme yapılırken Faiz Hesaplama senaryosu çalışmaktadır. Normal Ödeme senaryosu, Faiz Hesaplama senaryosunu kullanmaktadır.
  • Bir senaryo başka bir senaryonun özelliklerini kullanarak, daha fazla iş yapıyorsa bu durumda extend kullanırsın. Genelde birden fazla çeşit senaryo, bir ana (base) senaryonun spesifik hallerini içerebilmekte.
Örnek : Normal Ödeme senaryosu 2 çeşit senaryo ile genişlemekte :
    • Kredi Kartı ile Ödeme
    • Mahsuben Ödeme
İşte bu iki senaryo Normal Ödeme senarosundan extend etmektedir.
  • uses, extend, include : Bunların hangisi olmalı gibi şeylere çok kafa yorma.
  • Bazıları include ve extend yerine invokes ve precedes kullanıyor.
  • Senaryoları yazarken açık, anlaşılır bir dil kullan. Şimdiki zaman içeren cümleler olsun. İleri zaman içermesin.
  • Bir işi yazılırken, kimin yaptığıda belirtilmeli.
Örnek : Bayi, kredi kartını POS'a yerleştirir. Sistem, POS'dan kredi kartı bilgilerini okur.
  • Kullanıcı senaryolarını, belirli kapsamlarda grupla ve bir paket yapısında yerleştir.

Use Case Yazarken En Çok Yapılan 10 Hata

  1. Kullanım senaryo metinlerini yazma yerine, fonksiyonel gereksinimleri yazmak.
  2. Metod ve özelliklerin kullanımını anlatmak yerine, tanımlarına dalmak.
  3. Çok genel (hiç detaylandırılmamış) kullanıcı senaryosu yazmak.
  4. UI'i hiç kaale almamak.
  5. Boundary nesneler için açık isimler kullanmamak.
  6. Pasif bir dil kullanmak.
  7. Sadece kullanıcı aksiyonlarını yazmak. Sistemin cevaplarını kaale almamak.
  8. Alternatif akışları yazmamak.
  9. Giriş koşulları (precondition) ve çıkış koşullarının (postcondition) dikkate almamak.
  10. include mu extend mi olacak diye fazladan zaman harcamak.