12 Mayıs 2010 Çarşamba

Object Oriented Programming (18) - Class Diagram Aracını Kullanarak Class Oluşturmak

Class Diagram Aracını Kullanarak Class Oluşturmak

Class Diagram, Object Oriented(nesne tabanlı) uygulamalarda, Classlar arasındaki ilişkilerin şema halinde gösterilmesini sağlayan bir araçtır. Bu araç içerisinde aynı zamanda Class öğelerini de(Field, Property, Method, Event) gösterebiliriz.

Class Diagram, Class ve öğeleri oluşturabildiği, bu Class ve öğeleri ilişkisel bir şema halinde gösterebildiği için, biz yazılım geliştiriciler için önemli bir araçtır.

Aşağıdaki şekilde; Inheritance, Class ve öğelerinin birlikte gösterildiği bir Class Diagram şeması gösterilmektedir.
Şimdi daha önce yazdığımız Sifre Class’ını Class Diagram ile oluşturalım. Öncelikle projemize yeni bir Class Diagram ekleyelim.


Projeye Class Diagram eklemek için, Solution Explorer penceresi içerisinde proje adı üzerinde sağ tıklayıp, çıkan kısayol menüsünden Add --> New Item komutu seçilir. Açılan Add New Item diyalog penceresinden, Class Diagram seçilir.

Açılan Class Diagram item’ına, Toolbox üzerindeki Class Designer sekmesinden, Class kontrolunu sürükleyerek Class ekleyebiliriz. Class kontrolunu Class Diagram üzerine sürükleyip bıraktığımızda karşımıza aşağıdaki pencere çıkacaktır.

Ayrıca Class Diagram item’ına, Class Designer sekmesinden Enum, Interface, Struct ve Delegate gibi diğer OOP nesnelerinide ekleyebiliriz.



Bu ekran üzerinde ki 3 alan bizim için önemlidir. Bunlar sırasıyla Class’ın adı, Access Modifier’ı ve Class’ın yeni bir dosyada mı yoksa varalan bir dosya üzerinde oluşturulacağıdır.

Class name alanına class ismini yazdıktan sonra, OK butonunu tıklayarak, Sifre Class’ımızı oluşturabiliriz.

Class’ımızın görüntüşü aşağıdaki gibi olacaktır.




Artık Class’ımızı oluşturduktan sonra sıra Class öğelerini(Property, Method) oluşturmaya geldi. Class öğelerini oluşturmak için Class Details penceresini kullanabiliriz. Eğer Class Details penceresi ekranda gözükmüyorsa View --> Other Windows --> Class Details menüsünden görüntüleyebiliriz.

Property eklemek için, Class Details penceresindeki Property sekmesini kullanabiliriz. Aşağıdaki resimde Sifre Class’ına Uzunluk Property’sinin eklenmesi gösterilmektedir.



Method eklemek için, Class Details penceresindeki Method sekmesini kullanabiliriz. Aşağıdaki resimde Sifre Class’ına SifreUret Method’unun eklenmesi gösterilmektedir.

Şimdi Karakter tipi Enum’u ve bu enum türünden olacak SifreKaraterTipi Property’sini tanımlayalım.


Önce Class Designer sekmesinden Enum kontrolunu Class Diagram üzerine sürükleyelim. Açılan penceredeki alanları aşağıdaki gibi değiştirin.

Ok butonunu tıklayarak Enum’ı oluşturduktan sonra, Enum değerlerini Class Details penceresinden girebiliriz. KarakterTipi Enum’ına Basit,Kompleks ve Ozel değerlerini ekliyoruz. Enum’un son hali aşağıdaki gibidir.
  
 
Artık KarakterTipi Enum’un türünden olacak SifreKarakterTipi Property’sini tanımlayabiliriz. Propery’nin tanımlanmış hali aşağıdaki resimde gösterilmektedir.

 
Son olarak Sifre Class’ımıza daha önce eklemiş (kod ile) olduğumuz 3 Constructor’ı Class Diagram üzerinden oluşturalım. Constructor’lar da method olduğuna göre Class Details penceresindeki Method sekmesinden tanımlanabililer. Fakat burada Class ismi ile Constructor isminin aynı olmasına dikkat edilmesi gerekir. Constructor’ların tanımlanmış hali aşağıdaki resimde gösterilmektedir. 

 
Class Diagram ile oluşturduğumuz Sifre Class’ın son hali aşağıdaki gibidir. Artık öğelerin (Property,Method) içerisine kod yazarak Sifre Class’ımızı tamamlayabilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Class_Designer_ile_Calismak
{

public class Sifre
{

public Sifre()
{
throw new System.NotImplementedException();
}


public Sifre(int UzunlukDegeri)
{
throw new System.NotImplementedException();
}


public Sifre(int UzunlukDegeri, KarakterTipi SifreTipiDegeri)
{
throw new System.NotImplementedException();
}


public int Uzunluk
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}


public KarakterTipi SifreKarakterTipi
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}


public string SifreUret()
{
throw new System.NotImplementedException();
}

}


public enum KarakterTipi
{
Basit,
Kompleks,
Ozel,
}


}

Hiç yorum yok: