|
Class Diagramları ve UML Temelleri |
|
Gönderiliyor lütfen bekleyin... |
|
|
UML ile sınıf diyagramları
oluşturmak nesne temelli programlamanın getirdiği bir gerekliliktir, biz bu
makalede UML ile sınıf gösterimi ve sınıf ilişkileri gibi kavramları inceleyeceğiz.
Sınıf diyagramları oluşturmak için temel bilgileri teker teker inceleyeceğiz.
UML ile oluşturulan "Sınıf Diagramları", aralarında bizim belirlediğimiz
ilişkileri içeren sınıflar topluluğudur.UML' de bir sınıf aşağıdaki gibi dikdörtgen
ile gösterilir. Dikdörtgenin en üstünde sınıfın adı vardır.
|
Sınıflara isim verirken, her kelimenin baş harfinin büyük olması diyagramlarımızın
başkaları tarafından incelenmesi sırasında kolaylık sağlayacaktır. |
Bir sınıfın çeşitli
özellikleri olabilir.Mesela, bir insan nesnesi olan 'ali' nesnesinin yaşı bir
özellik(attribute) bildirir. Bir sınıfın özellikleri
SınıfAdı'nın hemen altına yazılır. Bir sınıfın hiç özelliği olmayabileceği gibi
birden fazla özelliği de olabilir. Aşağıda bir sınıfın özelliklerinin grafik
olarak gösterimi vardır.
|
Bir
özelliğin değerini sonradan değiştirebileceğimiz gibi yandaki "yaş" özelliği
gibi varsayılan bir değer de verebiliriz. Bu değerler number,string,
boolean,float,double veya kullanıcı tanımlı bir tür olabilir. |
Sınıfların bir
diğer önemli elemanı da işlevlerdir (operations). İşlevler bir sınıfta iş yapabilen elemanlardır.Bu
iş başka bir sınıfa yönelik olabileceği gibi kendi içindeki bir
iş de olabilir.Class diyagramında işlevler aşağıdaki gibi özelliklerin hemen
altında gösterilir.
|
İşlevler özelliklerden farklı olarak birtakım bilgilere
ihtiyaç duyabilir, veya birtakım bilgileri dışarıya verebilir, ya da bunların
hiçbirini yapmaz. Yandaki işlev1, birtakım işler yapar bunun için dışardan bir bilgiye
ihtiyaç duymaz ve dışarıya bir bilgi vermez, işlev2, işini yapabilmek için birtakım
bilgilere ihtiyaç duyar.Mesela, işlev2, eğer bir toplama işlemi yapıyorsa
toplanacak elemanları ister. işlev3 ise iş yaptıktan sonra işinin sonucunu
dış dünyaya verir. |
Bir sınıf diyagramında kullanılabilecek temel yapılar bunlar olmasına rağmen
"constraints" ve "notes"
dediğimiz elemanları da ekleyebiliriz.Notes(Notlar) genellikle işlevlerin
ve özelliklerin hakkında bilgi veren opsiyonel kutucuklardır.Constraints
(koşullar) 'ler ise sınıfa ilişkin birtakım koşulların belirtildiği ve parentez içinde
yazılan bilgilerdir.
Şimdi
de sınıflar arasındaki ilişkiye(Assocation) değinelim.
ASSOCATION (Sınıflar
arası ilişki)
Sınıflar arasındaki
ilişkiyi göstermek için iki sınıf arasına düz bir çizgi çekilir.İlişkiyi gösteren
çizginin üzerine ilişkinin türü yazılır.Mesela Kitap ve İnsan sınıfları olsun.Kitap
ile insan sınıfı arasında "okuma" ilişkisi vardır.Bunu sınıf diyagramında
aşağıdaki gibi gösteririz.
|
Bir İnsan sınıfı gerçek nesnesi olan "Ali" ile kitap sınıfı gerçek
nesnesi olan "UML kitabı" arasında "okuma" ilşkisi vardı.Kısaca
şöyle deriz. Ali, UML kitabı okur.Tabi gerçek bir sistemde ilşkiler bu kadar
basit olmayabilir. Bazı durumlarda ikiden fazla sınıf arasında ilişki olabilir,
o zaman da her sınıf arasındaki ilşkiyi tanımlamamız gerekir.Bazı durumlarda
ise belirtilen ilişkinin bir kurala uyması gerekebilir.Bu durumda ilişki
çizgisinin yanına "constraints"(ilişki kuralı) yazılır. |
Bazı durumlarda sınıflar arasındaki ilişki, bir çizgiyle belirtebileceğimiz şekilde
basit olmayabilir.Bu durumda ilişki sınıfları kullanılır.İlişki sınıfları bildigimiz
sınıflarla aynıdır.Özellik ve işlev elemanları olabilir.Sınıflar arasındaki ilişki
eğer bir sınıf türüyle belirleniyorsa UML ile gösterimi aşağıdaki şekildeki gibi
yapılır.
|
Görüldüğü gibi Müşteri ile Kitapçı sınıfı arasında "satın alma"
ilişkisi vardır.Fakat müşteri satın alırken Ücret ödemek zorundadır.Bu ilişkiyi
göstermek için Ücret sınıfı ilişki ile kesikli çizgi ile birleştirilir. |
Şu ana kadar gördüğümüz
ilişkiler bire-bir ilişkilerdi.İlişkiler bire-bir olmak zorunda değildir.Bir
sınıf, n tane başka bir sınıf ile ilişkiliyse buna bire-çok ilişiki denir.Mesela
Yüzbaşı ile Er arasında bire-yüz bir ilişki vardır.Diyagramda bunu gösterirken
Yüzbaşı sınıfına 1 Er sınıfına ise 100 yazacağız.Gösterimi aşağıdaki gibidir.
|
Burda 1 yüzbaşı 100 Er'e komut(emir) verebilir anlamı vardır. |
En temel ilişkiler
aşağıdaki gibi listelenebilir:
-> Bire-bir
-> Bire-çok
-> Bire-bir veya daha fazla
-> Bire-sıfır veya bir
-> Bire-sınırlı aralık (mesela:bire-[0,20] aralığı)
-> Bire-n (UML de birden çok ifadesini kullanmak için '*' simgesi kullanılır.)
-> Bire-Beş yada Bire-sekiz
Diğer bir ilişki
türü ise bir sınıfın kendisiyle kurduğu ilişkidir.Bu tür ilişkiler genellikle
bir sınıfın sistemde birden fazla rolü varsa ortaya çıkar.Bu tür ilişkilere "reflexive
associations" denir.Bu tür bir ilişki UML ile aşağıdaki gibi gösterilir.
|
Patron bir eleman olmasına rağmen kendisi gibi eleman olan birden çok çalışan
'dan sorumludur. |
Ve işte Sınıf diyagramlarına
kısa ama önemli bir giriş yapmış olduk. Bu makalemizde anlatacaklarımız bu
kadar,bir sonraki makalemizde ;genellemeler,türetme kavramı ,arayüz ve görünürlük
kavramlarından bahsedecez.
Yazar: Sefer Algan([email protected])
Makale:
Class Diagramları ve UML Temelleri UML ve Sistem Analizi Sefer Algan
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|