UML - Genel Bakış
UML, yazılım sistemlerinin yapıtlarını belirlemek, görselleştirmek, oluşturmak ve belgelemek için standart bir dildir.
UML, Object Management Group (OMG) tarafından oluşturuldu ve UML 1.0 spesifikasyon taslağı, Ocak 1997'de OMG'ye önerildi.
OMG, gerçek bir endüstri standardı oluşturmak için sürekli çaba göstermektedir.
UML, Unified Modeling Language.
UML, C ++, Java, COBOL vb. Gibi diğer yaygın programlama dillerinden farklıdır.
UML, yazılım planları yapmak için kullanılan resimli bir dildir.
UML, yazılım sistemini görselleştirmek, belirlemek, yapılandırmak ve belgelemek için genel amaçlı bir görsel modelleme dili olarak tanımlanabilir.
UML genellikle yazılım sistemlerini modellemek için kullanılsa da, bu sınır içinde sınırlı değildir. Yazılım olmayan sistemleri modellemek için de kullanılır. Örneğin, bir üretim birimindeki süreç akışı vb.
UML bir programlama dili değildir ancak araçlar, UML diyagramları kullanılarak çeşitli dillerde kod oluşturmak için kullanılabilir. UML'nin nesne yönelimli analiz ve tasarımla doğrudan bir ilişkisi vardır. Bazı standardizasyondan sonra, UML bir OMG standardı haline geldi.
UML'nin hedefleri
Bir resim bin kelimeye bedeldir , bu deyim UML'yi tanımlamaya kesinlikle uygundur. Nesne yönelimli kavramlar, UML'den çok daha önce tanıtıldı. Bu noktada, nesne yönelimli geliştirmeyi organize etmek ve pekiştirmek için standart metodolojiler yoktu. O zaman UML ortaya çıktı.
UML'yi geliştirmek için bir dizi hedef vardır, ancak en önemlisi, tüm modelleyicilerin kullanabileceği bazı genel amaçlı modelleme dilini tanımlamaktır ve aynı zamanda anlaşılması ve kullanılması da basitleştirilmelidir.
UML diyagramları sadece geliştiriciler için değil, aynı zamanda iş kullanıcıları, sıradan insanlar ve sistemi anlamak isteyen herkes için yapılır. Sistem, yazılım veya yazılım olmayan bir sistem olabilir. Bu nedenle, UML'nin bir geliştirme yöntemi olmadığı, onu başarılı bir sistem haline getirmek için süreçlere eşlik ettiği açık olmalıdır.
Sonuç olarak, UML'nin amacı, günümüzün karmaşık ortamında tüm olası pratik sistemleri modellemek için basit bir modelleme mekanizması olarak tanımlanabilir.
UML'nin Kavramsal Modeli
UML'nin kavramsal modelini anlamak için önce kavramsal modelin ne olduğunu netleştirmemiz gerekir? ve neden kavramsal bir model gerekli?
Kavramsal bir model, kavramlardan ve bunların ilişkilerinden oluşan bir model olarak tanımlanabilir.
Kavramsal bir model, bir UML diyagramı çizmeden önceki ilk adımdır. Gerçek dünyadaki varlıkları ve birbirleriyle nasıl etkileştiklerini anlamaya yardımcı olur.
UML gerçek zamanlı sistemleri tanımladığından kavramsal bir model yapmak ve ardından kademeli olarak ilerlemek çok önemlidir. UML'nin kavramsal modeli, aşağıdaki üç ana unsuru öğrenerek ustalaşabilir -
- UML yapı taşları
- Yapı taşlarını bağlama kuralları
- UML'nin ortak mekanizmaları
Nesneye Yönelik Kavramlar
UML, nesne yönelimli (OO) analiz ve tasarımın devamı olarak tanımlanabilir.
Bir nesne hem verileri hem de verileri kontrol eden yöntemleri içerir. Veriler, nesnenin durumunu temsil eder. Bir sınıf bir nesneyi tanımlar ve aynı zamanda gerçek dünya sistemini modellemek için bir hiyerarşi oluşturur. Hiyerarşi, miras olarak temsil edilir ve sınıflar, ihtiyaca göre farklı şekillerde de ilişkilendirilebilir.
Nesneler, etrafımızda var olan gerçek dünya varlıklarıdır ve soyutlama, kapsülleme, kalıtım ve polimorfizm gibi temel kavramların tümü UML kullanılarak temsil edilebilir.
UML, nesne yönelimli analiz ve tasarımda var olan tüm kavramları temsil edecek kadar güçlüdür. UML diyagramları yalnızca nesneye yönelik kavramların temsilidir. Bu nedenle, UML'yi öğrenmeden önce, OO kavramını ayrıntılı olarak anlamak önemli hale gelir.
Aşağıda, nesne yönelimli dünyanın bazı temel kavramları verilmiştir -
Objects - Nesneler bir varlığı ve temel yapı taşını temsil eder.
Class - Sınıf, bir nesnenin mavi baskısıdır.
Abstraction - Soyutlama, gerçek dünya varlığının davranışını temsil eder.
Encapsulation - Kapsülleme, verileri birbirine bağlama ve dış dünyadan gizleme mekanizmasıdır.
Inheritance - Kalıtım, mevcut sınıflardan yeni sınıflar oluşturma mekanizmasıdır.
Polymorphism - Mekanizmayı farklı şekillerde tanımlar.
OO Analizi ve Tasarımı
OO bir soruşturma olarak tanımlanabilir ve daha spesifik olmak gerekirse, nesnelerin araştırılmasıdır. Tasarım, tanımlanan nesnelerin işbirliği anlamına gelir.
Bu nedenle, OO analizi ve tasarım konseptlerini anlamak önemlidir. OO analizinin en önemli amacı, tasarlanacak bir sistemin nesnelerini belirlemektir. Bu analiz, mevcut bir sistem için de yapılır. Artık etkili bir analiz, ancak nesnelerin tanımlanabileceği bir şekilde düşünmeye başlayabildiğimizde mümkün. Nesnelerin tanımlanmasının ardından ilişkileri belirlenir ve son olarak tasarım üretilir.
OO analizinin ve tasarımının amacı şu şekilde tanımlanabilir:
Bir sistemin nesnelerini tanımlama.
İlişkilerini tanımlama.
OO dilleri kullanılarak yürütülebilir dosyalara dönüştürülebilen bir tasarım yapmak.
OO kavramlarının uygulandığı ve uygulandığı üç temel adım vardır. Adımlar şu şekilde tanımlanabilir:
OO Analysis → OO Design → OO implementation using OO languages
Yukarıdaki üç nokta şu şekilde ayrıntılı olarak açıklanabilir:
OO analizi sırasında en önemli amaç, nesneleri tanımlamak ve bunları uygun bir şekilde tanımlamaktır. Bu nesneler verimli bir şekilde tanımlanırsa, bir sonraki tasarım işi kolaydır. Hedefler sorumluluklarla tanımlanmalıdır. Sorumluluklar, nesne tarafından gerçekleştirilen işlevlerdir. Her nesnenin yerine getirilmesi gereken bazı sorumlulukları vardır. Bu sorumluluklar birlikte yapıldığında sistemin amacı yerine getirilir.
İkinci aşama OO tasarımıdır. Bu aşamada, gereksinimlere ve bunların yerine getirilmesine vurgu yapılır. Bu aşamada nesneler, amaçladıkları ilişkiye göre işbirliği yapar. İlişkilendirme tamamlandıktan sonra tasarım da tamamlanır.
Üçüncü aşama OO uygulamasıdır. Bu aşamada tasarım Java, C ++ vb. OO dilleri kullanılarak gerçekleştirilir.
OO Tasarımında UML'nin Rolü
UML, yazılım ve yazılım olmayan sistemleri modellemek için kullanılan bir modelleme dilidir. Yazılım olmayan sistemler için UML kullanılmasına rağmen, vurgu OO yazılım uygulamalarının modellenmesidir. Şimdiye kadar tartışılan UML diyagramlarının çoğu statik, dinamik vb. Gibi farklı yönleri modellemek için kullanılır. Şimdi, yönü ne olursa olsun, yapay nesneler nesnelerden başka bir şey değildir.
Sınıf diyagramı, nesne diyagramı, işbirliği diyagramı, etkileşim diyagramlarına bakarsak, hepsi temelde nesnelere göre tasarlanır.
Bu nedenle, OO tasarımı ile UML arasındaki ilişkiyi anlamak çok önemlidir. OO tasarımı ihtiyaca göre UML diyagramlarına dönüştürülür. UML'yi ayrıntılı olarak anlamadan önce, OO kavramı doğru bir şekilde öğrenilmelidir. OO analizi ve tasarımı tamamlandıktan sonra, bir sonraki adım çok kolaydır. OO analizi ve tasarımından elde edilen girdi, UML diyagramlarının girdisidir.