UML’i Nasıl Kullanabiliriz? – II: Use-case ve Activity Diyagramları

Daha önceki aynı başlıklı yazımızda UML’in kullanımıyla ilgili bir giriş yapmış ve genel prensiplerden ve UML ile ilgili bazı yanlış algılardan bahsetmiştik. Bu yazıda ise daha  UML’in bir yazılım geliştirme sürecinde nasıl kullanılabileceğini daha detaylı ve teknik olarak ele alalım. UML, yazılım modellemenin pek çok farklı safhasına hitap ettiğinden, makul olan yazılım geliştirme süreci içinde çıkan modelleme ihtiyaçlarına göre UML’i kullanmaktır. Bu arada UML’i kullanmaktan temelde onun diyagramlarını kullanmayı kastediyoruz. Ama işin açıkçası bu diyagramları çizebilmek için bazı faaliyetlerde bulunmak gerekir. UML bu faaliyetler hakkında daha ınce de belirttiğim gibi size yol göstermez, bu faaliyetler olsa olsa sizin seçtiğiniz bir yazılım geliştirme metodolojisinin parçası olabilir. Bu anlamda UML diyagramları birer sonuçtur, kendi başına bir amaç değildir. DolayIısıyla bir önceki yazıda da belirtmeye çalıştığım gibi aslında UML diyagramları, buz dağının sadece görünen kısmıdır. Bu konuda şu yazıya bakmanız faydalı olabilir. Peki şimdi artık sadede gelelim ve tek tek diyagramların üzerinden geçelim. Aşağıdaki şekilde UML’in son şu anki halinde var olan 14 diyagram gösterilmiş durumda.

UML 2.4’ün diyagramları.

UML’in behavioral ya da davranışsal diyagramlarda, adından da anlaşılacağı üzere bir davranış vardır. Halbuki structural ya da yapısal diyagramlarda durağanlık söz konusudur. Davranışsal diyagramlar da bir akış dolayısıyla da ya öncelik-sonralık ya da zamansallık sıklıkla vardır. Ama yapısal diyagramlarda bir oluşdan ziyade bir olmuşluk vardır. Bu yüzden yapısal diyagramlar bir fotoğraf gibidir, yani bir futbol takımının maça başlamadan verdiği hatıra pozu gibi. Ama davranışsal diyagramlar, örneğin aynı takımın hücum ederken ya da kalesini savunurkenki sahadaki görünüşünü yansıtır diyebiliriz.

Use-case (UC) diyagramı: UC diyagramları, sistemin dışarıdan gözlemlenebilen en temel özelliği olan davranışlarını ya da fonksiyonlarını, sistem ile davranışları üzerinden etkileşimde bulunan aktörleriyle birlikte kavramsal olarak ifade eder. Bir UC, bu anlamda sistemin bir aktörüne bir değer üretecek şekilde, aktörüyle etkileşimli bir şekilde yerine getirdiği davranışlar bütünüdür öyle ki biz bu bütüne zaman zaman süreç de deriz. (Bu anlamda süreci “kullanıcı süreci” olarak algılamakta fayda vardır.)

Aşağıdaki UC diyagramı, bir açık arttırma işinin UC modelini göstermektedir.

Açık arttırma işinin use case diyagramı.

Bir UC diyagramında UC elips, aktörler ise “Cin Ali” şeklinde gösterilir. UC diyagramlarında ayrıca “include”, “extend” ya da “generalize” gibi yukarıdaki diyagramda bulunumayan, aktörler ve UCler kendi aralarında bulunan farklı ilişkiler de gösterilebilir.

UC diyagramları bir yazılım sisteminin ya da modülünün tüm davranışlarını ve etkileşimde olduğu insan olan ya da olmayan aktörlerini bir arada göstermesi açısından önemlidir. Lakin UC diyagramları görsel olarak anlamlı olsa bile UClerin esas katkısı, düzgün bir şekilde ifade edilmiş ve ana, alternatif, sıra dışı akışlarla, ön ve son şartları ve iş kuralları gibi diğer tür ihtiyaçları içeren dokümanlarındadır. Dolayısıyla UC diyagramı çizmek anlamlıdır, gereklidir ve kolaydır ama kendi başına yeterli olamaz çünkü UC diyagramı, UC modellemenin sadece suyun üstündeki kısmıdır.

Aktivite (activity) diyagramı: Aktivite diyagramı, UCin aktör ve sistem etkileşimini betimler. Veri akış (data flow) diyagramlarına benzer bir yapıya sahip olan aktivite diyagramları, özellikle karmaşık akışlara sahip UCler için biçilmiş kaftandır.

Her aktivite diyagramı sadece bir UCi modeller. UClerin görsel modeli olarak özellikle developerlara hitap eder.

Örnek bir activity diyagramı.

Yukarıdaki aktivite diyagramı, aktiviteleri, aktiviteler arasındaki geçişleri, dallanan ve sonra tekrar birleşen paralel işlemleri ve UCin başlangıç ve sonunu göstermektedir. Diyagramda ayrıca Ingilizce’de “swim lane” olarak adlandırılan ve farklı aktörlerin aktivitelerini gösteren kanallar da vardır.

Benim tecrübem, karmaşık UCler için aktivite diyagramlarını çizmenin katkısı olduğu yönündedir. Aktivite diyagramlarını okumayı müşterilerinize de kolayca ögretebilirsiniz. Bu durumda müşterileriniz aktivite diyagramları ile UC dokümanlarınızı doğrulama ve test etme imkanı bulacaktır. Aktivite diyagramlarını çizdiğinizde developerlarınız size minnettar olacaklardır.

UC diyagramları ile aktivite diyagramları, temel olarak analiz safhasında çizilen ve sistemin davranışsal özelliklerini vetimleyen diyagramlardır. Bu diyagramlar SRS olarak kısalttığımız (Software Requirements Specification ya da dilimizde Yazılım Ihtiyaç Belgesi, YİB) nihai ihtiyaç dokümanın içinde bulunur.

Bir sonraki yazıda devam etmek üzere.

 

Toplam görüntülenme sayısı: 5279