UML ve UML Diyagramları - II - En iyi C# kitabı
Bağıntı sınıfı, iki nesne arasında kurulmuş bağıntı ile başka bir sınıfın ilişkilendirilmesidir. Bu yöntem ana nesneler arasındaki bağıntının kendisine yeni nitelikler kazandırmak için kullanılır. Örneğin öğrenci-ders bağıntısında öğrencinin kayıt tarihi, kayıt ücreti ve kredisi gibi nitelikler ancak öğrenci o derse kayıt olduktan sonra anlam kazanır. Bu nitelikleri bağıntının kendisine tanımlamak gerekir. Diyagram üzerinde bağıntı sınıfları bağıntıya kesik çizgi ile bağlanır.
Genelleştirme İlişkisi (Generalization)
Bir nesnenin bir diğerinin özel türü olduğunu göstermek için kullanılır. Diyagram üzerinde nesneler genelden özele doğru ağaç görünümünde yerleştirilir. Nesne yönelimli programlamadaki karşılığı < ı>kalıtım (inheritance) kavramıdır. Alt nesneler içi boş bir ok simgesiyle üst nesneye bağlanır. Aşağıdaki örnekte bir şirkete ait kişilerin genellemesi gösterilmiştir.
Bu gösterime göre “Müdür” nesnesi “Kişi” nesnesinin özel türüdür. Genelleştirme işleminin temelinde sınıflandırma işlemi yapılır. Alt nesneler farklı kriterlere göre gruplandırılabilir. Örneğin önceki gösterimde soldaki nesneler cinsiyetlerine göre, sağdaki nesneler ünvanlarına göre sınıflandırılmıştır.
Bağımlılık ilişkisi (Dependency)
İki nesne arasındaki anlamsal ilişkiyi modellemek için kullanılır. Bir sınıfın başka bir sınıfı kullanması durumunda ortaya çıkar. Bu ilişkide rol oynayan sınıflardan biri < ı>bağımlı diğeri < ı>bağımsız niteliktedir. Bağımlı nesnenin niteliklerinden biri bağımsız nesneyi referans olarak kullanır. Bu durumda bağımsız nesnedeki değişiklik bağımlı nesnenin anlamını değiştir. Bağımlılık ilişkisi, bağımlı sınıftan bağımsız sınıfa doğru kesikli çizgi ile ifade edilir.
Sağdaki üç nesne < ı>Alışveriş nesnesinin yordamlarında parametre olarak kullanılmaktadır. Yani Alışveriş nesnesi bu nesneleri kullanır. Bu yüzden bu nesnelerde yapılacak bir değişiklik < ı>Alışveriş nesnesinde değişikliğe neden olur.
Gerçekleştirim ilişkisi (Realization)
Arabirim yapılarından türemiş nesne yapısını modellemek için kullanılır. Bilindiği gibi arabirimler bir sınıfın temelde hangi üyelerden oluşacağını belirleyen şablonlardır. Bu şablonlar, oluşturulacak sınıflara öncülük eder ve içermeleri gereken üyelerin tanımlamaları için yol gösterir. Arabirimler nitelik içermez sadece fonksiyonlar içerir. OOP’deki karşılığı gerçekleştirmek olan < ı>gerçekleştirim ilişkisi kesikli bir çizgiye sahip iç boş bir üçgenle ifade edilir. Aşağıdaki örnekte Müşteri sınıfı IKişi arabirimini uygulamıştır.
Gerçekleştirim ilişkisi aşağıdaki şekilde de gösterilebilir.
Ardışıllık (Etkileşim) Diyagramları (Sequence Diagrams)
Sınıf diyagramı sistemin durağan yapısını gösterir. Fakat gerçek yaşamda olduğu gibi sistem üzerinde nesneler zamanla durumlarını değiştirir ve birbirleriyle etkileşime geçerler. Bu dinamik davranışları modellemek için ardışıllık (etkileşim) ve durum diyagramları kullanılır. Nesneler arasındaki etkileşim yordamlar üzerinden gerçekleşir. Ardışıllık diyagramları, nesneler arasında yordam çağırma işlemlerinin zaman çizgisindeki sıralı gösterimini modeller. Zaman çizgisi dikey eksen üzerinde yukarıdan aşağı, ilişkili nesneler ise yatay eksen üzerinde en üstte soldan sağa sıralanır. Bir nesneden diğer bir nesneye mesaj gönderileceği zaman mesaj yönüne uygun bir ok çizilir ve mesaj okun üzerine yazılır. Geri dönüş mesajı kesik çizgili ok ile ifade edilir.
Durum Şeması Diyagramları (Statechart Diagrams)
Nesnelerin sistem içerisinde meydana gelen olaylara karşı nasıl davranış sergilediğini modellemek için kullanılır. Nesneler olaylar aracılığıyla tetiklenerek durumlarını değiştirirler ve bu esnada tanımlı bazı işlemleri de çalıştırabilirler. Bir nesnenin durumları arasındaki geçiş transition simgesiyle ifade edilir. Nesnenin yaşamı sonlandığında, aldığı durum final state simgesiyle ifade edilir. Aşağıdaki diyagramda sipariş sürecinin durumu modellenmiştir.
Örnek: Bir e-ticaret uygulamasında sipariş
Bir e-ticaret projesinin önemli nesnelerinden birisi olan sipariş ve onunla ilgili nesneler bir sonraki sayfada verilen UML diyagramında olduğu gibi modellenebilir.
Verilen diyagram aşağıdaki gibi yorumlanabilir:
Bu projede iki tür müşteri bulunmaktadır; genelleştirme (generalization). Müşteriler ya doğrudan İnternet’ten kendileri sipariş verebilir veya bir mağazaya gidip oradan sipariş verebilirler.
Müşteri nesnesi için bir koşul/kısıt (constraint) tanımlanmıştır. Bu koşula göre, ancak ve ancak siteye üye girişi yapmış kişiler sipariş verebilir.
Müşteri ile sipariş arasında ilişki vardır. Bir müşterinin 0 veya daha fazla sayıda siparişi olabilir (0..*). Fakat bir sipariş ancak bir tek müşteriye (1) bağlı olabilir. Bir siparişte en az 1 ürün vardır (1..*) ve bir sipariş en az bir ödeme şekline sahiptir (1..*).
Sipariş ile “sipariş detay” arasında oluşum (composition) bağıntısı vardır. Sözkonusu sipariş silindiği zaman o siparişe ilişkin ayrıntı detay kayıtlar da silinir. “Sipariş detay” ile ürün arasında içerim (aggregation) bağıntısı vardır. Bu durumda sipariş detay kaydı silindiği zaman o kayıtla ilişkili ürün nesnesi silinmez.
Bir müşterinin sistemde 0 (sıfır) veya daha fazla sayıda adresi tanımlı olabilir. Her siparişin bağlı olduğu iki adres vardır. Bu adreslerden biri fatura adresi diğeri teslimat adresi olarak kullanılır ve her sipariş için ancak 1 (bir) fatura adresi ve 1 (bir) teslimat adresi tanımlanabilir.
← UML ve UML Diyagramları – I SQL Server Linked Server (Bağlı Sunucu) →
“UML ve UML Diyagramları – II” üzerine 2 düşünce
meh1 03 Aralık 2010, 01:48
Çok teşekkür ederim derste nlayamadıgım konuyu burda anlayabildim saygılarımla.
Tolga 09 Aralık 2010, 12:58
Güzel bir yazi dizisi. anlatimi da güzel ve kolay anlasilir. Devami gelecek mi? Yada kac seriden olusacak tam olarak bu UML makaleleri? II ile kalmaz umarim