Kullanıcıların Senaryoları Use Case'ler
Usa Case
Use Case’ler yani Türkçe tabirle
kullanıcı senaryoları, bir kullanıcının spesifik bir amaca ulaşabilmek için bir
sistem içerisinde atması gereken adımları tanımlamak için kullanılırlar. Söz
konusu amacı gerçekleştirmeye yönelik tüm olası senaryoların bir arada yer
aldığı bir klasör olarak da düşünülebilirler. Use Case (Kullanıcı Senaryosu)
Diyagramları, UML yani Unified Modelling Language — Birleşik Modelleme Dili diyagramlarındandır.
Peki nedir bu UML? UML, proje ve
iş sistemlerinin modellenmesi konusunda ortaya çıkmış standart bir diyagram
çizme ve ilişkisel modelleme dilidir, bir programlama dili değildir. Genellikle
yazılım sektöründe kullanılmakla beraber, iş sistemlerini, bir süreci veya
herhangi bir işi grafikler ile açıklamak isteyenlerce kullanılır. Bir projenin
her türlü bileşeninin ve bu bileşenlerin aralarındaki ilişkilerin görsel olarak
ifade edilebilmesini sağlayan bir standarttır. Büyük çaplı projelerde karmaşık
yapıları hem geliştirme takımına kolayca aktarmak hem de projenin mimarisini
daha proje geliştirilmeye başlanmadan önce belirlemek için oluşturulmuştur.
UML, bir yazılımın geliştirme
sürecinde yer alan farklı yönelimleri modelleyecek farklı diyagramlara
sahiptir.
![]() |
Şekil 1. UML Diyagram Türleri |
Şimdi konumuz olan Use case diyagramlarına
tekrar dönelim. Use case diyagramı için kısa bir tanım yapmak gerekirse “Bir
kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” diyebiliriz.
Ivar Jacobson (kendisi UML diyagramlarının mimarı bir bilgisayar mühendisi ve yazılım
mühendisidir) senaryo tanımı için der ki:
“Aktörle sistem arasında
gerçekleştirilen, sonucunda aktöre fark edilir getirisi/ faydası oluşan
etkileşimli diyalogdur.”
Use case analizi ise, yazılım
mimarlarının ve analistlerin, geliştirilecek yazılımın gereksinimlerini elde
etmek ve düzenlemek için kullandıkları bir yazılım modelleme tekniğidir. Bu
analizin öncelikli amacı; sistemi kullanıcı perspektifinden tasarlamak,
sistemsel davranışları bizzat kullanıcılarının diliyle ifade etmek ve olası tüm
sistemsel davranışları ‘high level’ detay seviyesinde ortaya koymaktır.
![]() |
Şekil 2. Kullanım Fonksiyonları |
Diğer yandan; sistemin
fonksiyonel gereksinimlerini, sistemin ne şekilde kullanılacağını,
kullanıcıların sistem içerisinde bürüneceği rolleri, kullanıcıların etkilerine
bağlı olarak sistemin ne gibi tepkiler vereceğini, müşteri ya da kullanıcıların
sistemden hangi faydaları elde edeceğini açık bir şekilde ortaya koymak da bu
tekniğin amaçları içerisinde yer almaktadır.
Use Case Diyagramlarının Amacı
·
Bir sistemin gereksinimlerini toplamak için
kullanılır. Toplanan gereksinimler üzerinde anlaşmayı kolaylaştırır.
·
Bir sistemin dış görünümünü elde etmek için
kullanılır.
·
Sistemi etkileyen dış ve iç faktörleri
tanımlamak için kullanılır.
·
Gereksinimler arasındaki etkileşimi aktörler
bazında göstermek için kullanılır.
·
Use case diyagramları yazılım ekip üyeleri
arasındaki iletişimi geliştirir.
·
İş süreçlerinin anlaşılmasını kolaylaştırır.
Use case’ler vasıtasıyla bir
sistemin fonksiyonel gereksinimleri kolayca tanımlanıp, yönetilebilir ve bu
şekilde belirlenen kapsam içerisinde kalmak kolaylaşır. Fikirler; müşterilere,
geliştirme ekibine, yöneticilere ve proje içerisindeki diğer paydaşlara hızlı,
kolay ve anlaşılabilir bir şekilde aktarılabilirler. Tüm bu avantajlar, use
case analizinin, bir sistemin fonksiyonel gereksinimlerinin tanımlanması
noktasında en sık kullanılan teknik olmasını sağlamıştır.
Kullanım diyagramlarının
kullanıldığı yerler:
- Gereksinim analizi ve üst düzey tasarım
- Bir sistem bağlamını modelleme
- Tersine mühendislik
- İleri mühendislik
Use Case Ögeleri
Use case diyagramlarının 4 temel
ögesi vardır. Bunlar;
- Aktör
- Sistem
- Use case
- İlişki
![]() |
Şekil 3. Use Case Öğeleri |
Bir use case diyagramı, kapsamı
içerisindeki use case’lerin detaylarına yönelik ayrıntılar içermez; daha çok
aktörler, use case’ler ve sistemler arasındaki ilişkileri bize gösterir. Başka
bir deyişle, use case’ler tarafından temsil edilen amaçlara ulaşmak için
kullanıcının atması gereken adımları bu diyagramlara bakarak anlayamayız. Diğer
yandan, bu fonksiyonları yerine getirecek, yani sistemle etkileşime geçecek
kullanıcılar aktör olarak adlandırılır.
Aktörler, bir insan olabileceği gibi; harici bir donanım ya da başka
yazılım sistemleri de olabilir.
Use case ilişkilerine gelecek
olursak burada 4 ana ilişkiden bahsetmek mümkündür.
Şekil 4. Inculude İlişkisi |
2. Extension
(eklenti): Use case’ler arasındaki diğer bir ilişki türü extend olarak
adlandırdığımız ilişki türüdür. Bu ilişki türü, iki use case arasında opsiyonel
olarak varolabilecek bir durumu ifade etmek için kullanılır. Biz bu iki use
case’i “base use case” ve “extending use case” olarak adlandıracağız.
Bu ilişki, bir use case’in
kapsamının başka bir use case tarafından genişletilebilmesinin olası olduğu
durumlar için geçerlidir. Elimizde bir use case ve bu use case’in kapsamını
oluşturan bir dizi adım olduğunu varsayarsak; sürecin bazı noktalarında, başka
bir use case’in kapsamını oluşturan adımların kullanılması suretiyle, use
case’in adımlarına yeni adımlar eklenmesi ve kapsamının genişletilmesi mümkün
olabilir.
Şekil 5. Extension İlişkisi |
![]() |
Şekil 6. Generalization İlişkisi |
Şekilde, bir siteye ait
kullanıcıların genellemesinin nasıl yapıldığını görebilirsiniz. Bir sitedeki
online kullanıcılar ziyaretçilerden ve üyelerden oluşur, ayrıca sitenin üye
kullanıcıları ve ziyaretçiler için sunduğu hizmetler farklı olabileceği için
aktörler arasında genelleme yapılmıştır.
4. Grouping
(gruplama): Gruplama metodu tamamen fiziksel olarak bazı use case ‘leri bir
arada toplamak için kullanılır. Gruplama tekniği genellikle birkaç alt
sistemden oluşan büyük sistemlerde kullanılır.
Use case kullanımını bir örnekle
incelemeye devam edelim. Aşağıdaki diyagramda henüz geliştirilme aşamasında olan Fazla Mesai Yönetim Modülü için
çizilmiş use diyagramını görebilirsiniz.
![]() |
Şekil 7. Fazla Mesai Modülü Use Case Diyagramı |
Fazla mesai taslağı oluşturmak
için sisteme giren ofis uzmanı kullanıcısı fazla mesai bilgilerini girmeli,
personel seçmeli ve yemek talebi oluşturmalıdır. Fakat burada personel seçebilmek
için personellerin verilerinin SAP aktörü tarafından paylaşılması (fazla mesai modülüne
entegre olması) gerekmektedir. Yine aynı şekilde personeller için yemek talebi
oluşturmak için yemek menülerinin idari işler aktörü tarafından tanımlanmış ve
güncellenmiş olması gerekir. Bu fonksiyonel girişleri kaydettikten sonra fazla
mesai taslağını oluşturmuş olur.
Operasyon yöneticisi aktörü ofis uzmanı
tarafından oluşturulan fazla mesai taslağını kontrol eder ve gerekirse düzenleme
yapıp onaylar. Operasyon yönetici aynı zamanda fazla mesai raporlarını da
sistemden alabilir.
İdari işler uzmanı aktörü ise taslağı
excel formatında alır ve sorumlu bulunduğu tablo ve girdileri günceller.
UML Use Case Diagramı’nın Flow
Chart‘la arasındaki farklar nelerdir?
Use case diyagramları
fonksiyoniteyi yukarıdan-aşağı yöntemi ile sunarlar. Bunun yerine flow
chart’lar lineer ve zaman bazlı bir davranış sergilerler. Ayrıca ikisini üretiş
şekli de başlı başına farklıdır.
Use case diyagramları
oluştururken ilk adım, en üst seviye davranışın belirlenmesidir. Bir kez yapıldı
mı (zor bir süreç değil), sistemin üst seviye yetenekleri hali hazırda
tanımlanmış olur. Use case’ler, top-seviye use case’in kullanacağı alt use
case’lere bölünerek daha fazla detaylandırılabilinir. Geliştirme sürecinin her
aşamasında, use case diyagram sistemin fonksiyonun tam bir açıklamasını içerir.
Detay vermeyebilir, ancak özellikleri eksiksiz gösterir. Proje süresince
sisteme fonksiyonlar ya da davranışlar eklenip silindiğinde, yapmanız gereken
değişikliğin kapsamı, sistemin kendisi ile, modelin olgunluğundaki değişikliğin
kapsamı ile orantılıdır. Sadece yüksek seviyeli diyagramların çizilmesi,
modelinizin genç olması ve şiddetli değişliklerin çok fazla çalışmayı çöpe
atmayı gerektirmemesi açısından faydalıdır. Halbuki flow chart, çizimi
tamamlanmadan, sistemi doğru şekilde tarif edemez ve küçük sistem
değişiklikleri flow chart’ların ciddi anlamda değişmesi ile sonuçlanır. Genel
olarak, use case diyagramları analiz ve tasarım sürecine flow chart’lara oranla
çok daha fazla katkıda bulunur.
![]() |
Şekil 8. Big Picture |
Kısaca özetlemek gerekirse, use case projelerin stratejik analiz süreçlerinde ihtiyacın doğru tespit edilebilmesi için talep sahibi gözüyle “bütün resmin görülmesi”dir. Use Case diyagramları projelerin
analiz süreçlerinde “Mevcut Durum”u ve “Hedef Durum”u tespit etmek ve talep
sahibi paydaşlar ile mutabık kalmak üzere kullanılabilecek araçlardır. Use Case
diyagramlarının odak noktası “bütün resim”dir. Use case diyagramları, sistemin kullanıcı gözünde hangi fonksiyonlara sahip olduğu ve fonksiyonlar arasındaki ilişkiyi kullanıcıların bir bütün olarak görmelerini sağlar.
Kaynaklar:
1. Use Case Analizi #1 – Use Case Diyagramları, Emre Alagöz,
2. UML ve Modelleme, Neslihan ÇALIŞKANEL, Deniz KILINÇ,
3. What is Use Case Diagram?, Visual Paradigm,
4. Kullanım Durumu Diyagramları (Use-case Diyagramları), Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği Bölümü, - Dr. Muhammet BAYKARA,
5. UML Nedir?, ENES KURU,
Bilgilendirici bir içerik olmuş , ellerine sağlık :)
YanıtlaSil