UML Sınıf Diyagramları
Bu yazıda UML sınıf diyagramlarının temel notasyonlarından(gösterimlerinden) bahsedilecektir. Öncelikle UML nedir ondan başlayalım. UML nesne yönelimli tasarım metodolojisi geliştirme aşamasındaki ilk adım olarak gerçek dünya nesnelerinin modellenmesi için var olan standard bir notasyondur. Yani bizler bir yazılım geliştirmeden önce uml diyagramları ile işin temelini atarız. UML'in açılımı Unified Modelin Language'dir. Kodlamadaki class(sınıf) varlığı UML Class Diagram'larında aşağıdaki gibi kutu şeklinde ifade edilir.





Kutudaki Animal yazısının olduğu bölgeye sınıfın ismi yazılır. Bu bölgenin altında kalan iki kompartımandan ilki sınıfın instance variable'larının sıralandığı, ikincisi ise sınıfın methodlarının sıralandığı bölgeyi temsil eder. İlk kompartımanda fark ettiyseniz instance variable'lardan önce "-" sembolü konulmuş. Bu sembol instance variable'ın private erişim belirtecine sahip olduğunu belirtir. Bu ve diğer erişim belirteçleri aşağıdaki gibidir:

-  : Private
# : Protected
~ : Package Access
+ : Public


Yukarıdaki semboller - sembolünün yerine konularak instance variable'ların erişim belirteçleri değiştirilebilir.





Yukarıda cımbızlanmış kompartımandan da görebileceğiniz üzere Instance variable kompartımanındaki instance variable'ların yanında iki nokta üst üste yer almaktadır. Bu iki nokta üst üstenin sağına instance variable'ın veri tipi yazılır.





Methodların kompartımanına gelecek olursak bu kompartımanda yukarıdaki resimden de takip edebileceğiniz üzere ilk önce erişim belirteci sembolü yazılır. Ardından methodun adı ve parantezler yazılır. Eğer method parametreye sahipse parantezler arasında önce parametre adı sonra iki nokta üst üste ve sonra parametre tipi yazılır. Eğer birden fazla parametre var ise virgül ile birbirlerinden ayrılırlar. Parantez kapanışından sonra iki nokta üst üste yer alır ve onun akabinde methodun dönüş tipi yer alır.

Sınıf isimleri bold tipinde, yani kalın yazılmaktadır. Eğer sınıf abstract ise sınıf ismi italic bold tipinde kutuya yazılır. Eğer diyagram elle çiziliyorsa italic ve bold tipinde sınıfın ismini yazmaya çalışmak pek de pratik değildir ve anlaşılır olmayacaktır. Dolayısıyla italic kullanım yerine {abstract} ifadesini sınıfın isminin soluna ya da üstüne yerleştirerek abstract özelliğini yansıtabilirsiniz.





Eğer sınıf static bir instance variable'a ya da methoda sahipse o instance variable ya da method kompartımanda altı çizili olarak yer alır.





Yukarıdaki resimde yer alan [1..10], [*] gibi ifadeler multiplicity'yi, yani çokluğu ifade eder. [1..10] ile denilen şudur ki her bir Animal nesnesi 1'den 10'a kadar farklı Food nesnesi içerebilir. [*] ile kastedilen şey ise çokluğun bilinmeyen oluşudur.

Sıra geldi label'lardan bahsetmeye. Label'lara geçebilmek için önce ilişkileri sıralamakta fayda var. Sınıfların birbiri ile ilişkilerini ifade etmek için UML sınıf diyagramlarında başlıca şu ilişki türleri yer almaktadır:

1. Dependency
2. Association
3. Aggregation
4. Composiiton
5. Generalization(Inheritance)
6. Realization


Bu ilişkilerin detaylarına bu yazıda girilmeyecektir. Eğer dilerseniz bir sonraki yazıyı okuyarak bu ilişkilerin gösterimlerine ve detaylarına vakıf olabilirsiniz. Bu yazıda association ilişkisinde yer alan label'lardan bahsedilecektir. Farz-ı muhal aşağıdaki örneği ele alalım.





İki sınıf arasındaki çizgi association ilişkisini temsil etmektedir. Bu iki sınıf arasında yer alan çizginin ortasındaki(üzerindeki) label ise ilişkinin şekline bir anlam katan işleve sahiptir. Bu label'ın yanındaki siyah ok okumanın yönünü ifade eder. Yani yukarıdaki şekle bakacak olursak siyah ok sağı göstermektedir. O zaman okuyuş soldan sağa doğru şu şekilde olmalıdır: Sürücü kullanır Araba. Biraz bozuk bir Türkçe oldu, fakat ingilizce düşününce her şey yolunda(A Driver uses a Car). Eğer ok olmasaydı ve sadece sınıflar ve label olsaydı okuyuş şeklimiz çoğunluğumuzun yine böyle olurdu. Yani bu örnek için "okuyuşun yönünü" tahmin etmek o kadar da zor değil. İşte böyle durumlarda siyah oku kullanmamız gerekmiyor. Siyah ok sadece ilişkinin okunuşun yönü açık olmadığı zamanlarda kullanılmalıdır. Siyah ok sağa doğru olabileceği gibi sola doğru, aşağıya doğru ya da yukarıya doğru da olabilir. Yani sınıflar arasındaki ilişki çizgisinin pozisyonuna göre bu ok yönlerinin çeşitli opsiyonları kullanılabilir.



Yararlanılan Kaynaklar

Bu yazı 19.07.2015 tarihinde, saat 22:05:46'de yazılmıştır. 01.11.2018 tarihi ve 07:37:02 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 4181
Yorumlar
Henüz yorum girilmemiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :