C#nedir?com
 
YAZAR HAKKINDA
Sefer Algan
Sefer Algan
http://www.seferalgan.com
İletişme geçmek için tıklayın.
71 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  UML / Analiz Sefer Algan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : UML / Analiz
Yayınlanma Tarihi : 6.10.2002
Okunma Sayısı : 58938
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 16.12.2017
Turhal Temizer 'in Blogu
C# – IRR Function 16.12.2017
Burak Selim Şenyurt
JWT(JSON Web Token) Kullanımı 16.12.2017
Burak Selim Şenyurt
Apache Kafka ile Konuşmaya Çalışmak 16.12.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Class Diagramları ve UML Temelleri
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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(algans@itu.edu.tr)

Makale:
Class Diagramları ve UML Temelleri UML ve Sistem Analizi Sefer Algan
  • Yazılan Yorumlar
  • Yorum Yaz
ŞUB
3
2005
Gokhan Oztoruna: Class ya da sınıf olarak gosterilenleri public clas SınıfAdı{ string Özellik1 String Özellik2 void İşlev1() {} } vs gibi yazarsınız..
ŞUB
3
2005
Sanırım ilişkiler ile ilgili tek makaleniz bu. sizin makalelerinize göz atmak isterken Microsoft VBScript runtime error 800a000d Type mismatch: CInt makale_yazar.asp, line 87 hatasıyla karsılastım. onun icin eger yazdıklarım sizin yazmadıklarınız ise kusura bakmayın. Static diagramdaki ilişkiler, Realizaiton,Generalization, Association ve Dependency ilişkileridir. Ayrıca association ile ilgili olarak, Aggregation ve Composition dan da söz edilebilir ama bu makale de göremedim. yine de baslayanlar icin hos bi makale..
TEM
7
2003
Bir Sınıf Diyagramının Nasıl kodlanacagı hakkında bir Yazı yazarsanız çok yaralı olur bence
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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