

Referanslar:
MODEL : ÖRNEK, NUMUNE, KALIP
MODELLING (MODELLEMEK) : KALIBINI ÇIKARTMAK
Kalıbı çıkartılmış(modellenmiş) bir sistem düşünüyorum. Yani sistemin her türlü bilgisini içeren bir kalıbımız var.
Elbise mankeni olsun bu sistem. Ve çıkan cam elyaftan yapılmış mankenin ölçüleri ideal bir insan ölçüsünde. Ayrıca başını sağa, sola çevirebiliyoruz. Kolunu yukarı-aşağı, ayaklarını yine aynı şekilde HAREKET ettirebiliyoruz.
DIAGRAM : Diyagram, Şema, Taslak
STATIC : Sabit, Değişmez, Durgun
STRUCTURE : Yapı, Bünye, Bina
İşte bu elbise mankenimizin ölçüleri, rengi v.s. bizim için statik(değişmez, sabit) bilgileri gösteren taslak, yapı(STRUCTURE) diyagramıdır(şeması, taslağı). Yapı taslağı; sınıfları, bileşenleri içerir.
BEHAVIORAL : Davranış, Davranışsal
Hareket edebilmesi(hareketleri ile görsel etkileşime geçebilmesi) ise davranışsal(behaivoral) taslağıdır(diyagramıdır). Davranışsal diyagramlar ise yöntemleri(METHODS), işbirliklerini(COLLABRATIONS) ve aktiviteleri(ACTIVITIES) içerir. Collaboration will be in one of two forms: a request for information or a request to perform a task. İşbirliklerini çıkartmak için sınıfın her sorumluluğunu düşünerek şu soruyu sormalıyız: "Sınıfın bu sorumluluğu yerine getirmek için yeteneği var mı?" Eğer bu sorunun cevabı "HAYIR" ise, bu işi yapacak yeni bir sınıf aramak gerekir.
UML : Unified Modelling Language (Birleşik Modelleme Dili)
İşte UML de hem statik, hem de davranışsal taslaklarını esas alır.
Yapısal Taslaklar(Structural Diagrams), sistem türlerini(sınıfları) ve bunların örneklerini(nesneleri) gösteren yanı sıra, yapı diyagramlarının kendi iç yapısı arasındaki ilişkiyi göstermektedir. Yazılımın hayat çevrimi boyunca gerekecektir.
Yapısal Taslak(structural diagram), bir diyagram olmayıp UML 2 nin ana kategorilerinden birisidir (diğer behavioral diagram-davranışsal taslak-).
Sınıf Diyagramı(Class Diagram), yapısal taslağın bir türü olup, sistemin tiplerini diğer taslakların kullanımı için en önemli taslaktır.
UML modellerinin çoğu şu türleri içerir:
- Sınıf(class)
- Arayüz(interface)
- Veri Tipi(Data Type)
- Bileşen(Component)
Aşağıdaki gösterim bir havayolu şirketinin uçuşunu gösteren bir sınıf diyagramıdır. 3 Bölmeden oluşan bu diyagramda ilk satır sınıfın adını, ikinci satır uçuş sınıfının özelliklerini ve üçüncü satır ise uçuş sınıfının işlemlerini(method) göstermektedir. Geniş bir sistem modeli gösteriminde sadece birinci satır(sınıf adı) gösterilir.

Bir sınıf özelliğinin başlangıç değeri olabilir. Örneğin aşağıdaki sınıf tanımında hesap açıldığında 0 bakiye ile açılmalıdır.

Miras(Inheritance)
Bir sınıfın özelliklerini başka bir sınıfa geçirmek için miras kullanılır. Bu tarafını biliyor olmalıyızki UML öğrenmeye geldik değilmi. Miras almayı gösterme şekli önemli kısmıdır. Düz, kesiksiz bir çizgi ve kapalı, içi boş bir üçgen ok başıyla miras alma gösterilir.


ASSOCIATION : Ortaklık, işbirliği, birleşme
Ortaklık, İşbirliği
Ortaklıklar (iş birlikleri), sınıfların örnekleri arasındaki ilişkileri gösteren bağlantılardır.
5 tip ortaklık(association) vardır.
- bi-directional (çift yönlü)
- uni-directional(tek yönlü)
- Association Class(İşbirliği Sınıfı)
- Aggregation (includes Composition aggregation)(Toplama)
- Reflexive
Çift Yönlü (Bi-Directional)
Örneğin uçuş sınıfı, uçak sınıfıyla çift yönlü bir işbirliği içindedir. Bu ortaklık, iki sınıfın nesneleri arasında paylaşılan statik bir ilişkiyi temsil etmektedir. Bi-directional ilişkide her iki taraftaki sınıfta etkileşim içindedir. Bir çift yönlü bir ilişki iki sınıf arasındaki düz bir çizgi ile gösterilir.
Plane(uçak) sınıfının rol adı hemen yanında "assignedPlane" olarak belirlenmiş. Uçak sınıfının yanındaki 0..1 ile Flight(uçuş) sınıfından üretilmiş bir örneğinin "ya 1 uçak nesnesi ile ilişkisi var ya da henüz bir uçak nesnesi tayin edilmemiş" tanımı yapılıyor.
Flight(uçuş) sınıfının rol adı ise "assignedFlights" (atanmış uçuşLAR -0..*-) olarak belirlenmiş. Her uçak nesnesi ya 0 uçuşla ya da sonsuz uçuşlarla(örneğin son 5 yıllık uçuşlar gibi) ilişkilidir.
Gösterge | Anlam |
---|---|
0 .. 1 | Sıfır ya da bir |
1 | Sadece tek bir |
0..* | Sıfır veya daha fazla |
* | Sıfır veya daha fazla |
1..* | Bir veya daha fazla |
3 | Sadece üç |
0..5 | Sıfır ya da Beş |
5..15 | Beş ila On Beş |
Tek Yönlü (Uni-Directional)
İki sınıfla ilgili bir ilişki ama sadece bir sınıf bu ilişkiden haberdardır. Çift yönlü ilişki, düz bir çizgi ile belirtilir.
Paketler
Sınıflar paket (namespace) adı verilen mantıksal kümelere ayrılabilir.Amaç: Kendi içerisinde anlam bütünlüğü olan ve belli bir amaca yönelik olarak birlikte kullanılabilecek sınıfları bir araya toplamaktır.


Eğer tersi durumda göstermek istersek yani paketin üyelerini(konuya özel sınıfları) paketin dışında göstermek istersek aşağıdaki gibi sınıflardan pakete düz çizgiler çizer ve paketin altında içi artı olan bir dairede birleştiririz.

İşbirlikleri(associations) ile ilgili kalan 3 işbirliği tipini ilerleyen kısımlarda göreceğiz (İşbirliği sınıfları(association class), Toplama(Aggregation) ve Reflexive İşbirliği(Reflexive Association)).
Arayüzler (Interfaces)
Arayüzlerde sınıflar gibi veri tipleridir. Sınıflardan nesneler örneklenirken arayüzler bir sınıf tarafından uygulandıktan sonra örneklenebilirler. Aşağıdaki resimde olduğu gibi, Profesör ve Öğrenci sınıfları Kişi arayüzünü uygulamış oldukları için bu sınıflar aynı zamanda Kişi tipindedirler. Arayüzleri gösterirken sınıflardan farklı olarak "<<interface>>" şeklinde gösterilir. UML 2 de sınıflar içinde "<<class>>" yazmanızda sakınca yok ama buna gerekte yok.
Sıra Ortaklıklarda anlatılmamış 3 tipte (Association Class, Aggregation, Reflexie Association)
Association Class (Ortaklık Sınıfı)
Normal sınıflar gibidirler tek farkı, birincil iki sınıf arasındaki ilişkiyi noktalı bir çizgi ile kesmesidir.
when an association itself has attributes or operations of its own …
or when it participates in relationships with other classes
Hiç yorum yok:
Yorum Gönder