Unified Modeling Language (UML) Class (Sınıf) diyagramı, sistemin sınıflarını, niteliklerini, işlemlerini (metotlarını) ve nesneler arasındaki ilişkileri göstererek bir sistemin yapısını açıklayan Yapısal (Structural) Diyagram tipidir.
Class (Sınıf) Diyagramların Amacı
- Bir sistemde ki sınıfların statik yapısını gösterir.
- Sınıfların öğelerini ve birbirleriyle olan ilişkilerini gösterir.
- Diyagram, UML tarafından öngörülen diğer yapı diyagramları için temel bir notasyon sağlar.
- Geliştiriciler ve diğer ekip üyeleri için de şablon görevi görür.
- İş Analistleri, sistemleri iş perspektifinden modellemek için sınıf diyagramlarını kullanır.
Class Diyagram Gösterimi
Bir sınıf’ın (class) diyagram üzerinde gösterimi üç bölümden oluşur.
1 Class Name
- Sınıfın adı ilk bölümde gösterilir.
2 Class Özellikler
- Özellikler ikinci bölümde gösterilir.
- Erişim Belirliyici, Özellik adı, iki nokta (:), türü şeklinde belirtilir.
3 Class Metotlar
- Metotlar üçüncü bölümde gösterilir.
- Erişim Belirliyici, Metot Adı, Parametre, İki nokta (:), dönüş tipi şeklinde belirtilir.
Yukarıda ki diyagramda baktığımız zaman “YeniClass” adında bir sınıf olduğunu 3 adet özelliğe sahip olduğu (sırasıyla: public string ozellik1, private double ozelliik2, protected string ozellik3) ve bir geriye string döndüren iki parametreli bir public metota sahip olduğunu bildirir.
Class Diyagram Erişim Belirleyici Gösterimi
Yukarıda ki örnek class diyagramı incelediğimizde sınıftaki özellik ve metotların adından önce +, – ve # sembollerinin bulunduğunu fark etmişsizinizdir. Bu semboller erişim belirleyicileridir.
( + ) Public
( – ) Private
( # ) Protected
Class Diyagram Parametre Yönü Gösterimi
Bir metottaki parametrelerin yönü in, out veya inout anahtar kelimeleri ile gösterilebilir.
Class Diyagram İlişki Gösterimi
Bir sınıf, diğer sınıflarla bir veya daha fazla ilişki içinde olabilir. Bu ilişkiler aşağıda ki sembollerle gösterilir.
Association (İlişki)
Bir UML Sınıf Diyagramındaki sınıflar arasındaki ilişkilerdir. Sınıflar arasında düz bir çizgi ile temsil edilirler.
İlişki tipler şu şekilde ifade edilir.
- one to one (bire bir)
- one to many (bire çok)
- many to many (çoka çok)
Inheritance
Nesne tabanlı programlama dillerinin en temel yapılarından olan Inheritance (Kalıtım) yapılarının gösteriminde kullanılır. Base Class – Child Class ilişkisi.
Abstract sınıflardan alınan kalıtım ilişkisi bu aynı gösterim şekline sahiptir.
Bu tip kalıtım ilişkilerinde IS-A ilişkisi vardır. -> Eagle is a bird. – Kartal bir kuştur.
Bu şekilde türetmenin yapıldığı sınıfları modellerken ok şeklinde çizgiler kullanılır. Okun ucunun olduğu taraftaki sınıf türetilen sınıftır, diğer taraftaki sınıf ise türeyen sınıftır.
Realization
Interface (arayüz)’ler ile sınıflar arasında ilişki modelini göstermek için kullanılır. Inheritance’da kullanılan çizginin kesik kesik olan haliyle temsil edilir.
Dependency
Bazen sınıfların işlevselliklerini yerine getirebilmeleri için dış kaynaklara ihtiyaçları olur. (Bir sınıfın diğer bir sınıfın bir parçası olduğu durumlar.) Bu gibi durumlarda modellemeyi ok çizerek yaparız ve okun ucu kullanılan sınıfı gösterir.
Aggregation – Composition
Aggregation ve Composition aslında bir dependency’dir. Bir sınıfın bir parçası olma durumu olarak düşünebiliriz.
Bu modelleme tipinde Aggregation zayıf bir ilişkiyi temsil ederken Composition güçlü bir ilişki temsil eder. Bu ilişkiler HAS-A ya da IS-PART-OF şeklinde temsil edilirler.