|  | 
        
            | 
                    
                        | Türetme, Genelleme ve Arayüz Kavramları |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | Bir önceki makalemizde 
  sınıfların gösterimini ve sınıflararası ilişkiyi görmüştük, bu makalemizde ise 
  sınıflar arasındaki türetmeyi, genellemeyi ve arayüz kavramlarını göreceğiz. 
 TÜRETME(INHERITANCE)
 
 Eğer eşyalar arasında genellemeler yapabiliyorsak genellemeyi yaptığımız 
  eşyalarda ortak özelliklerin olduğunu biliriz. Mesela, "Hayvan" diye bir 
  sınıfımız olsun.Memeliler, Sürüngenler, Kuşlar da diğer sınıflarımız 
  olsun.Memeliler, Sürüngenler ve Kuşlar sınıfının farklı özellikleri olduğu gibi hepsinin 
  Hayvan olmasından dolayı birtakım ortak özellikleri vardır. Bu yüzden Memeliler, Sürüngenler 
  ve Kuşlar birer hayvandır deriz. Yani kısacası Memeliler, Sürüngenler ve Kuşlar, 
  Hayvan sınıfından türemiş ve herbirinin kendine özgü özellikleri vardır deriz. 
  Nesne yönelimli programlamada buna türetme (Inheritance) denir. UML 'de türetme 
  aşağıdaki şekilde olduğu gibi gösterilir.
 
 
 
   
    |  | Yanda 
      gördüğünüz türetme ağacında Sürüngenler, Kuşlar ve Memeliler hayvandır.İnsan, 
      Kedi ve Köpek ise memelidir anlamı çıkmaktadır. Sınıflar arasındaki türetme 
      işlemi yandaki gibi ucu açık üçgen ve düz bir çizgiyle gösterilir. Bu durumda 
      "HAYVAN" sınıfı ana sınıf(parent class), Memeliler, Kuşlar ve 
      Sürüngenler ise yavru (sub class) sınıflardır. 
 Türetmeye sınıflar arası ilişki açısından baktığımızda türetmenin "is 
      kind of" (bir çeşit) ilişkisinin olduğu görülür.Yani Kuş bir çeşit 
      Hayvan'dır deriz. (Bird is kind of Animal)
 |   
    | Kısaca toplarlarsak, türetmenin ve genellemenin programcı açısından önemi 
      büyüktür.Nesneler arasında ortak özellikler varsa bunu her sınıfta belirtmenin 
      yerine ortak özellikleri bir sınıfta toplayıp diğer sınıfları ondan türetip 
      yeni özellikler ekleyerek organizasyonu daha etkin hale getirebiliriz.Tabi 
      istersek ortak özelliklerin toplandığı sınıf ile gerçek nesneler oluşturmayı 
      engelleyebiliriz.Bu tür sınıflara "abstract class" denir.Bir sınıfın 
      "Abstract" olması için Sınıf ismini italik yazmamız gerekir.
 |  
 İÇERME (AGGREGATIONS)
 
 Bazı sınıflar birden 
fazla parçadan oluşur.Bu tür özel ilişkiye "Aggregation" denir.Mesela 
,bir TV 'yi ele alalım.Bir televizyon çeşitli parçalardan oluşmuştur.Ekran,Uzaktan 
Kumanda,Devreler vs.. Bütün bu parçaları birer sınıf ile temsil edersek TV bir 
bütün olarak oluşturulduğunda parçalarını istediğimiz gibi ekleyebiliriz. Aggregation 
ilişkisini 'bütün parça' yukarıda olacak şekilde ve 'bütün parça'nın ucuna içi boş 
elmas yerleştirecek şekilde gösteririz.Örnek bir şekil aşağıdaki gibidir.
 
 
 
   
    |  | Yandaki şekilden de görüldüğü üzere bir TV sistemi 1 EKRAN,1 KUMANDA, birden çok 
      DEVRE 'den oluşmaktadır. TV' nin bir parçası olan KUMANDA ise 2 PİL, 1 TUŞ 
      TAKIMI ve 1 IŞIK LAMBASI 'ndan oluşmaktadır. İçi boş elma ile gösterilen 
      ilşkilerde herbir parça ayrı bir sınıftır ve tek başlarına anlam ifade ederler. 
      Parça bütün arasında çok sıkı bir ilişki yoktur. TV nesnesi yaratıldığında bir 
      ekran veya bir kumanda nesnesi daha sonradan oluşturularak TV ye takılır. Ama 
      bazı durumlarda bütün nesneyi yarattığımızda parçalarının da yaratılmasını 
      isteriz. Mesela bir insan bedenini analizini yapalım.Bir insan vücudu baş, 
      gövde, el ve ayaklardan oluşur. Bir insan vücudunu düşündüğümüzde tümüyle 
      düşünürüz. |   
    | Sadece "Beden" nesnesini 
      oluşturup sonradan bedene el, ayak, baş takmak çok mantıksız 
      olurdu. Bu tür ilişkilerin gösterilmesine ise "COMPOSITE ASSOCATION" denir. Bu 
      ilişki diğerine göre daha sıkıdır. Bu tür ilişkilerde bütün nesne 
      yaratıldığında parçalar da anında yaratılır. Bazı durumlarda, takılacak 
      parçalar duruma göre değişebilir.Belirli koşullarda Kumanda, bazı durumlarda 
      da Ekran olmayacaksa bu tür durumlar koşul ifadeleri ile birlikte 
      noktalı çizgilerle belirtilir.Bu konuyu daha sonraki makalelerimizde detaylı 
      bir şekilde ele alacağız. Bu durumda takılacak parçalar "constraint(koşul)" 
      ile belirtilir. |  Bir "COMPOSITE" 
ilişkisi aşağıdaki şekilde gösterilir.
 
 
   
    |  | Gerçek bir BEDEN nesnesi oluştuğunda mutlaka ve mutlaka 1 KAFA, 1 GÖVDE 
      ve 4 EL_AYAK nesnesi yaratılacaktır.Gördüğünüz gibi sıkı bir parça-bütün 
      ilişkisi mevcuttur. |  ARAYÜZ(INTERFACE)
 
 Bazı durumlarda bir sınıf sadece belirli işlemleri yapmak için kullanılır. Herhangi 
  bir sınıfla ilişkisi olmayan ve standart bazı işlemleri yerine getiren sınıfa 
  benzer yapılara arayüz(interface) denir.Arayüzlerin özellikleri yoktur. Yalnızca 
  bir takım işleri yerine getirmek için başka sınıflar tarafından kullanılırlar. 
  Mesela, bir "TuşaBasma" arayüzü yaparak ister onu "KUMANDA" 
  sınıfında istersek de aşağıdaki şekilde görüldüğü gibi "KLAVYE" 
  sınıfında kullanabiliriz. Sınıf ile arayüz arasındaki ilişkiyi kesik çizgilerle ve 
  çizginin ucunda boş üçgen olacak şekilde gösteririz. Sınıf ile arayüz arasındaki bu 
  ilişkiye gerçekleme(realization) denir. Sınıfla, arayüz arasında UML gösterimi 
  açısından fazla bir fark yoktur.Tek fark arayüzde özellik(attribute) yoktur.Diğer bir 
  fark ise arayüz adlarını yazarken adın üstüne  yazısını 
  eklemektir.Aşağıda bir arayüz-sınıf ilişkisi mevcuttur.
 
 
 
 
   
    |  | KLAVYE sınıfı YAZICI arayüzündeki TusBasma() işlevini kullanır.Bu ilişkiye 
      gerçekleme(realization) denildiğini unutmayın. |  GÖRÜNÜRLÜK(VISIBILITY)
 
 Görünürlük işlemi bir sınıfın 
  işlevlerine ve özelliklerine ilişkin kullanım alanını belirler.Görünürlük belirtmek için 
  işlevin ya da özelliğin başına görünürlük seviyesi ile ilgili simge 
  yazılır. 3 çeşit görünürlük seviyesi vardır.
 
 Public Seviyesi : Bütün sınıflara açık seviye. 
  İşareti : +
 Protected Seviyesi : Sadece ilgili sınıfa ve kendisinden türeyen 
  sınıfların kullanımına açık seviye.İşareti : #
 Private 
  Seviyesi : 
  Sadece ilgili sınıfın (orjinal sınıf) erişebileceği seviye. İşareti : -
 
 Mesela bir bilgisayar dosyası ilgili sınıfın özellikleri 
  ve işlevleri ile ilgili görünülürlük özelliği aşağıdaki gibi gösterilebilir.
 
 
 
 
 
  Yazan : Sefer Algan 
  ([email protected]) 
    |  | Class 
      diyagramlarıyla ilgili söyleyeceklerimiz bunlar.Bir sonraki yazımızda UML 
      'in diğer önemli yapısı olan "USE CASE" diyagramlarını ele alacağız. |  
 
 
                Makale:Türetme, Genelleme ve Arayüz Kavramları 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
                         | 
        
            |  |