İş analizi çalışması sırasında kullanılan en etkili tekniklerden biri olan use case’ler, geliştirme ekibimiz hangi yazılım geliştirme disiplinini benimsemiş olursa olsun, belirlenen kapsam içerisinde analizini gerçekleştireceğimiz sisteme ait fonksiyon ve aktör ilişkilerini tanımlamamıza yardımcı olan UML (Unified Modeling Language) tabanlı yegane yardımcı tekniktir.
BABOK v3 içerisinde kullanım senaryo diyagramları aşağıdaki şekilde tanımlanmıştır.
A use case diagram visually depicts the scope of the solution, by showing the actors who interact with the solution, which use cases they interact with, and any relationships between the use cases. Unified Modelling Language™ (UML®) describes the standard notation for a use case diagram.
Temel olarak iş analiz, çalışmalarına iş akışlarını anlamak ile başlarız. Her ne kadar zaman zaman çok yoğun bir sistem içerisinde değer üretmek için gerçekleştirdiğimiz analiz çalışmalarımız bizi karmaşık ve bağımsız gibi görünen hikâye parçalarının içerisine sürüklese de kapsam içerisinde bulunan veri ve iş akışı takibi, bize hedeflenen ürün için rehberlik etmektedir.
Ayrıca mevcut ya da hedeflenen sistemi anlamak, kullanıcıların ürünün hangi aşamasında devreye girip sistem özellikleri ile etkileşim içerisinde olacaklarını anlamaktan geçer. Kullanıcı senaryoları (Use Cases) ve kullanıcı senaryo diyagramları (Use Case Diagram), tüm ürün ya da spesifik olarak belirlenen bir alanda bulunan ürün aktörlerinin* sistem ile etkileşimini ortaya koyar.
*Aktör olarak bahsettiğimiz sistem paydaşları her zaman yaşayan bir insan kullanıcı olmak zorunda değildir. Kapsam içerisinde bulunan, bir mekanizma ya da sorgulama algoritması gibi mantıksal yapıların tanımlandırılması hakkında farklı fikirler olsa dahi bu yapılar da aktör olarak kullanılabilir. Örnek vermek gerekirse belirli bir zaman periyodu içerisinde otomatik rapor üreten bir sistemde canlı bir insan aktör yoktur. Bu tarz yapılarda canlı ve cansız aktörünü ayırt edebilmek için aktant (actant) terimi kullanılabilir. Sosyoloji bilimine ait bir terim olmasına karşın yazılım projelerinde de kullanıldığını gözlemlenebilir.
Kullanım senaryosu ile kullanım senaryo diyagramı arasındaki farklar
Temel olarak aynı veriler ile ortaya konulan bu iki yakın teknik gösterim tarzları arasında fark olsa bile aslında aynı amaca hizmet etmektedirler. Her iki teknik, aktörlerin sistem ile etkileşimini anlamamızı sağlar ancak gösterim şekilleri arasında farklar bu tekniklerin bazı güçlü ve zayıf yönlerini ortaya çıkartır. Örnek vermek gerekirse use case diyagramlar, yapılma tekniği itibari ile görsel yönü ile ön planda olduğu için bir takım eylemi yüksek seviye bir dilde kolaylıkla aktarabilmemizi sağlar. Böylelikle basit anlaşılır bir şekilde kapsam modelleme (Scope Model) çalışmalarında daha faydalı olur.
Tablo şeklinde ve yazısal olarak ifade edilen use case’ler ise gerçekleşen senaryonun adımları, beklenen istisnai durumları, ön ve son koşulları gibi noktaları yazısal olarak ayrıntılı bir şekilde tasvir edebildiği için süreç modelleme (Process Model) çalışmalarında daha faydalıdır.
Use case ve Use case diyagramları aynı projede farklı alanlara yardımcı olmak için aynı anda kullanılabilir ve ayrıca kendi içlerinde birbirlerine dönüştürülebilir ancak analiz çalışmalarında karmaşıklık (Complexity) seviyesini göz önünde bulundurmak adına, her diyagramı senaryoya dönüştürmeye gerek yoktur. Bu çalışmalara gerçekten ihtiyaç duyulan detay noktalarda başvurulabilir.
Kullanım Senaryosu
Kullanım Senaryosu Diyagramı
Her iki gösterimde de kullanılan alanlar ile ilgili kesin ve keskin kurallar yoktur ancak temel olarak izlenmesi gereken oluşturma aşamaları ve görselleştirme yöntemleri mevcuttur. Bu yazımızda vereceğimiz kullanım senaryo diyagramı örneğini IIBA (International Institute of Business Analysis)’e ait BABOK® (Business Analysis Body of Knowledge) v3 kitabındaki yönergeleri izleyerek oluşturacağız.
Use Case (Kullanım senaryosu)
Kullanım senaryoları, diyagramdan farklı olarak daha detaylı yazısal anlatıma zemin hazırladığı için
- Kullanıcı tabanlı test senaryolarının hazırlanması,
- User storylerde kullanılan kabul kriterlerinin belirlenmesi vb. alanlarında oldukça faydalıdır.
Aşağıda use case’de olması gereken alanları bulabilirsiniz;
Burada kullanılan tablo içeriği farklı ekiplerde değişiklik gösterebilir ve alanların sayısı değişebilir. Örnek vermek gerekirse Related Use Case (İlişkili kullanım senaryoları), Use Case Goals (Kullanım senaryosu hedefi) gibi alanlar tabloya eklenebilir.
Use Case Diagram (Kullanım senaryosu diyagramı)
Kullanım senaryosu diyagramı tıpkı tablo hali gibi analiz çalışmalarının farklı alanlarına özellikle katkı sağlayabilir. Görsel aktarımın en temel faydalarından biri ekip içerisinde, konunun kolay anlaşılmasına imkân sağlamasıdır. Böylelikle en temel self-organize ekip özelliklerinden biri olan ortak dil özelliğine hizmet eder. Kullanım senaryosu diyagramı, sistem ile etkileşime giren aktörlerin etkileşimde bulundukları use case diyagramlar arasındaki ilişkileri göstererek çözümün kapsamını görsel olarak tasvir eder. Aşağıda BABOK v3’te bulunan use case tanımlamasını bulabilirsiniz.
Use Case Description
Name (Use Case Name): Kullanım senaryosunun benzersiz bir adı vardır. Ad genellikle aktör tarafından gerçekleştirilen eylemi tanımlayan bir fiil ve ne yapıldığını ya da eylemin hedefini açıklayan bir isim içerir.
Goal (Amaç): Birincil aktörün bakış açısından, kullanım senaryosunun başarılı bir sonucunun kısa bir açıklamasıdır. Bu, kullanım durumunun bir özeti olarak işlev görür.
Actors (Aktörler): Bir aktör, o çözümle etkileşime giren, çözümün dışındaki herhangi bir kişi veya sistemdir. Her aktöre, çözümle etkileşimde oynadıkları rolü temsil eden benzersiz bir ad verilir. Kullanım senaryosuna destekleyici bir rol ile katılan diğer aktörlere ikincil aktörler (secondary actors) denir. (Örneğin üniversite ders kayıt sistemindeki öğrenci işleri personeli)
Ön Koşul (Pre-Condition): Ön koşul çözüm için kabul edilebilir bir gerçektir. “Kullanıcı için oturum açmanız gerekmektedir” veya “Ürün kataloğunda bulunması gerekir” gibi durumlar yazılabilir.
Olayların Akışı (Flow of Events): Olayların akışı, kullanım senaryosunun yürütülmesi sırasında aktör ve çözüm tarafından gerçekleştirilen adımlar kümesidir.
Tetikleyici (Trigger): Bir kullanım senaryosu için olay akışını başlatan bir olaydır. En yaygın tetikleyici, birincil aktör tarafından gerçekleştirilen bir eylemdir.
Son koşullar veya Güvence (Post-conditions or Guarantees): Bir son koşul, use case tamamlandığında doğru olması gereken herhangi bir gerçektir. Son koşullar hem birincil hem de alternatif akışlar dahil olmak üzere, kullanım durumu boyunca olası tüm akışlar için doğru tamamlanmış olmalıdır.
İlişkiler (Relations): Aktörler ve use case’ler arasındaki ilişkilere bağlam, birlik(association) denir. Bir ilişkilendirme çizgisi, bir aktörün kullanım senaryosu tarafından temsil edilen işlevselliğe erişimi olduğunu gösterir. İlişkilendirmeler girdiyi, çıktıyı, zamanı veya bağımlılığı temsil etmez.
Kullanım durumları arasında yaygın olarak kullanılan iki ilişki vardır:
- Extend: Olası ihtimal bağlantısını temsil eder. Örneğin “Şifre gir” —-> “Şifre Yanlış girildi”.
- Include: Bir olay olduğunda bağlantılı olduğu olayın zorunlu gerçekleşmesi.
Bunun yanında hem aktörler hem de olaylar arasında Genelleme ilişkini görebiliriz.
- Genelleme (Generalization): Aktörler ve olaylar arasında “is a” ilişkisini temsil eder. İki aktör ya da olay arasında genelleme tanımlıysa biri diğerini kapsar anlamında kullanılır.
Örnek Use Case ve Use Case Diyagramlar
Örnek Use Case
Örnek Use Case Diyagram
Kaynaklar
A GUIDE TO THE BUSINESS ANALYSIS BODY OF KNOWLEDGE® V3
Yusuf Emre Ermiş
Business Analyst at NTT Data Business Solutions
Content Writer at BA-Works