UML

8 Aralık 2010 Çarşamba 14:04 Gönderen Merve Yüzbaşıoğlu
TEMELLERİ
Sınıf diagramının amacı sistem içinde modellenen türleri göstermektir.UML modelleri en çok
bu tipleri içerir;
  • Sınıf
  • Arayüz
  • Veri tipi
  • Bileşen(component)
UML bu tipler için özel bir isim kullanır:"Sınıflandırıcılar(classifiers)."Genel olarak sınıflandırıcıları sınıflar gibi düşünebiliriz, Fakat teknik olarak sınıflandırıcı, yukarıdaki diğer 3 terimede referans sağlayan genel bir terimdir.
Sınıf İsmi
UML diagramları genel olarak şekil 1'deki gibi tanımlanır. 3 bölmeden oluşur ve En üstteki kutuda sınıfın ismi ,orta bölgede sınıfın nitelikleri listelenir, son bölümde ise sınıfın işlemleri listelenir. Bir sınıf diagramı oluştururken sınıf ismi oluşturmak gerekir ancak diğer iki bölüm isteğe bağlıdır.Şekil 1 de bir havaalanı uçuşları ile ilgili UML modellenmiştir.

Şekil 1

Sınıf Özellikleri Listesi

Bir sınıfın özelliklerinin listesi(ortadaki bölme), sınıfın niteliklerini ayrı ayrı satırlarda listeler. Bu listenin yazımı için ağağıdaki format kullanılır.

name : attribute type (özelliğin ismi : özelliğin tipi)
Örneğin; flightNumber : Integer

Business sınıf diagramlarında, diagramı okuyacak olana göre de değişen farklı özellik tipleri kullanılabilir(minutes, dollars, gibi). Ancak genel olarak bir programlama dilinin kabul edeceği özellik tipleri yazılması daha uygundur.

Bazen bir özellik varsayılan bir değere sahip olduğunda bunu belirtmek gerekebilir(Örneğin, bir banka hesabı uygulamasında yeni bir banka hesabının sıfır bakiye ile başlamasını istiyoruz.) UML özellikleri aşağıdaki notasyonu kullanarak özellik listesi bölümünde varsayılan değerlerini tanımlamamızı sağlar:

name : attribute type = default valueÖrneğin; balance : Dollars = 0

Özelliklerin varsayılan değerini göstermek isteğe bağlıdır; Şekil 2'de, Banka Hesabı sınıfı.


Şekil 2

Sınıf Operasyonları Listesi

En alt bölümde belirtilen sınıf metotları yine sınıf özellikleri gibi satır satır aşağıdaki gibi belirtilir;

name(parameter list) : type of value returned

Şekil 1 deki metotlarıda inceleyebilirsiniz.

Miras

Nesneye yönelik tasarımda Miras kavramı oldukça önemlidir. Bir sınıftan miras alarak onun açık olan metotlarını kullanabilirsiniz ve miras alan sınıfa bu metotlar dışında yeni metotlarda ekleyebilirsiniz.
Bir sınıf diagramında miras 'ı modellemek için, çocuk sınıftan ana sınıfa içi doldurulmamış,düz bir ok çizilir. Şekil 3 te CheckingAccount ve SavingsAccount, BankAccount sınıfından miras almıştır.


Şekil 3

Yukarıda miras alan sınıflardan ayrı ayrı iki ok çizilmiştir. Bunu bir şekilde daha ifade edebiliriz.
Şekil 4' te ağaç yapısı şeklinde miras alan sınıfları görebiliriz.


Şekil 4

Soyut sınıflar ve işlemleri

Dikkatli okuyucular Şekil 3 ve 4 te BankAccount sınıfının italic olarak yazıldığını görecektir. Bu BankAccount sınıfının soyut bir sınıf olduğunu "withdrawal" metodunun ise soyut bir metot olduğunu gösterir. Başka bir deyişle BankAccount sınıfı,"withdrawal" soyut metodunun imzasını sağlar ve BankAccount sınıfını miras alan sınıflar bu soyut metot için kendi versiyonlarını uygular.

Bununla beraber süper sınıf , soyut bir sınıf olmak zorunda değildir. Standart bir sınıfında süper sınıf olması normaldir.

Birleşmeler(Associations)

Bir sistem modellediğimizde, belirli nesnelerin diğerleriyle ilişkisi olacaktır, bu ilişkilerin açık bir şekilde ifade edilmesi için gereklidir. 5 tip birleşme vardır. Bu bölümde -tek ve iki yönlü birleşmeler - olmak üzere ikisine göz atacağız. Bu birleşmelerle ilgili olarak çok fazla ayrıntıya girilmeyecektir. Temel olarak amaçları ve şekille nasıl gösterileceğinden bahsedeceğiz.

Çift yönlü(standart) ilişki

İki sınıf arasında bir çizgi varsa buna ilişki diyoruz. İlişkiler daima çift yönlü olarak kabul edilirler; Bunun anlamı, iki sınıfın birbirlerinden haberdar olduğudur ve başka bir ilişki tipi olmadığı sürece bu şekilde kabul edilir. Flight örneğinden devam edelim, Şekil 5 Flight ve Plane sınıfları arasında standart bir ilişki tanımlamasını gösterir.


Şekil 5

İkili ilişkiler düz bir çizgi ile ifade edilir. Çizgilerin sonunda, bir rol ismi ve çoklu değerler yer alır. Burada Flight ve Plane sınıfları ilişkili ve Flight sınıfının bu ilişkiden haberi var. Bu ilişkide, Plane "assignedPlane" rolunu alır, Çünki Plane sınıfının yanında rol ismi olarak "assignedPlane" yazıyor. Plane sınıfına gelen 0..1 çoklu değerinin anlamı, Bir Flight örneği oluşturulduğunda , Ya bir Plane örneği ile ilişkilidir yada onunla ilgili hiç bir Plane örneği yoktur. Aynı zamanda Plane sınıfıda Flight ile olan ilişkisinden haberdardır. Bu ilişkide Flight sınıfı "assignedFlights" rolünü alır; Plane, ya hiçbir Flight ile ilişkili değildir(Örneğin; yeni marka bir uçak), yada uçuş sayısı sonsuza kadar olabilir(Uçak,Son 5 yıldır görevlendirilmiştir.) Çoklu değerlerle ilgili olarak aşağıdaki tabloya göz atabilirsiniz.


Tablo 1

Tek Yönlü İlişkiler

Tek yönlü ilişkilerde, sadece bir sınıf ilişkinin var olduğundan haberdardır. Şekil 6 buna örnektir.


Şekil 6

Tek yönlü ilişki olduğunu göstermek için açık bir ok kullanılır(kapalı ve içi dolu olmayan ok miras için kullanılıyordu).Bu ok bilinen sınıfa doğru düz bir çizgi olarak çizilir. Standart ilişkiler gibi tek yönlü ilişkilerde rol ismi ve çoklu değer kısmını içerir, farklı olarak burada sadece bilinen sınıf için bu değerler belirtilir. Bizim örneğimizde "OverdrawnAccountsReport" ,"BankAccount" sınıfını tanıyor ve "BankAccount" sınıfı "overdrawnAccounts" rolünü oynuyor. "BankAccount" sınıfının diğer sınıfla ilişkisi olduğundan haberi yok.[NOT: "BankAccount" sınıfının diğer sınıfı bilmiyor olması garip gelebilir. Bu nesne kalıplarını gevşetir ve sistemi değişikliklere uyumlu hale getirir.]
NOT: 3 tip ilişki daha bulunmaktadır. Bu ilişkiler; Basic aggregation,
Composition aggregation, Reflexive associations
Bu ilişkiler ile ilgili olarak daha fazla bilgi almak için Çevirinin yapıldığı kaynak bölümüne bakabilirsiniz.

Görülebilirlik(Visibility)


Tablo 2

Kaynak

www.Ibm.com

Kaynağa gitmek için Tıklayınız..

0 Response to "UML"

Yorum Gönder