UML (Unified Modeling Language, Ortak Modelleme Dili)
Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinin, yazılım mühendisliği bölümünde yazılım modellemesi sırasında kullanılan gösterim şekilleri standartlaştırılmış ve ortak bir modelleme şekli oluşturulmuştur. Bu modelleme şekli UML yaygınlaşmadan önce her yazılım modelleme sisteminde farklı şekillerde yapılmaktaydı ve her yazılım firması kendi standartlarını belirleme çalışmasındaydı. UML ile birlikte bu rekabet ortadan kalkmış ve ortak bir standart üzerinden modelleme işlemleri yapılmaya başlanmıştır.
UML’in temel olarak 3 çeşidi bulunur:
- Yapısal modeller (Strucutred Diagrams)
- Davranışsal modeller (Behavioral Diagrams)
- Etkileşimli modeller (Interactive Diagrams)
Yukarıdaki bu üç çeşit modelleme şekillerinin de alt sınıfları bulunur. Örneğin çok sık kullanılan Sınıf diyagramları (Class diagrams) ve Yayılma diyagramları (Deployment Diagrams) birer yapısal model örneğidir. Veya Kullanıcı Durum Diyagramları (Use Case Diagrams) bir davranışsal model örneğidir.
Hocam Merhaba,
UML grafiklerinde kullanmak için sınıflar arası ilişki türleri hakkında bir kaç sorum olacaktı.
Bir class’ın genişletilerek başka bir class elde edilmesi olayı. Örneğin araç classının genişletilerek Araba, Kamyon gibi classlar elde edersem, Araç class’ı ile Araba class’ı arasındaki ilişki ne olur? Örnek C# kodu aşağıdaki gibi.
Bir class’ı Data Type olarak başka bir class içinde kullanmak veya bir class ı parametre olarak başka bir class ın metotlarından birine vermek. Örneğin;
Burdaki File ile FileManager arasındaki ilişki ne olur?
Bir abstract classın genişletilerek başka bir class oluşturulması olayı. Örneğin abstract class olan Hayvan classının genişletilerek Omurgalı adında abstract olmayan class oluşturulursa Hayvan ile Omurgalı adlı classlar arasında nasıl bir ilişki olur?
Diyagram çizerken Visual Paradigm 8.3 kullanıyoruz. Classlar arasındaki ilişkiyi tanımlayabileceğimiz şu yollar var:
Generalization
Realization
Usage
Aggregation
Association
Composition
Dependency
Binding Dependency
Permission
Access
Import
Merge
Instantiation
Substitution
Abstraction
Derive
Refine
Trace
Anchor
Constraint
Containment
Bahsettiğiniz ilişki türleri, farklı kaynaklarda farklı isimlerle geçebiliyor. Örneğin ilk örnekte anlattığınız ilişki tipi, bir miras (inheritance) ilişkisidir ve bazı kaynaklarda ISA olarak geçmektedir. Ne yazık ki sizin verdiğiniz listede bu iki isim de kullanılmıyor. Bunun sebebi kaynaklardaki farklılık. Yani bu ilişki tipini bir kaç farklı tipte göstermeye çalışıyorlar. Sizin bahsettiğniz ortamda (visual paradigm) ilişki tiplerini bilmeniz, bu ilişkileri sağlıklı kurmanızı sağlar. Bunun için aşağıdaki kaynağa bakmanızda yarar var :
http://www.visual-paradigm.com/VPGallery/diagrams/Class.html
başarılar