UML (Unified Modelling Language, Birleşik Modelleme Dili) yazılım modellenmesi ve planlanması için kullanılan standart bir dildir.
UML, yazılım ağırlıklı bir sistemi ve bu sistemin parçalarını gözde canlandırmak, belirtmek, kurmak ve belgelemek için kullanılabilir. Kurumsal bilgi sistemlerinden, dağıtımlı ağ-tabanlı uygulamalara ve gerçek zamanlı gömülü sistemlere kadar birçok sistemi modellemek için uygun bir dildir.
UML bir programlama ya da yazılım geliştirme dili değil, sistem modellemelerinde kullanılan yöntemlerin bir araya getirilmiş halidir. UML hangi modelleri kullanmanız gerektiğini söylemez, sadece iyi biçimlendirilmiş modelleri anlamanızı ve yaratmanızı öğretir. Yazılım mühendisliğinde önemli bir yere sahip olan UML’nin ortaya çıkışı kısaca şöyle özetlenebilir:
1989-1994 yılları arasında yazılım dünyasında sistemleri modellemek için onlarca modelleme dili kullanılıyordu. Bu dilleri kullanan yöntemler belirli tip sistemler için tasarlanmıştı ve yazılım yaşam döngüsünü tam olarak tanımlayamıyorlardı. Bu yöntemlerden zaman içinde en çok tercih edilenleri Booch, OMT (Object Modelling Technology, Nesne Modelleme Teknolojisi) ve OOSE (Object Oriented Software Engineering, Nesne Yönelimli Yazılım Mühendisliği) oldu. Booch, Nesne Yönelimli Tasarım konusunda; OMT, Nesne Yönelimli Analiz gerektiren sistemlerde mükemmeldi. OOSE yöntemi ise sistemin genel yapısını anlamayı çok kolaylaştıran Kullanım Senaryosu (Use-Case) adlı güçlü bir tekniği içeriyordu.
1994 yılında Grady Booch (Booch yönteminin yaratıcısı) ve Jim Rumbaugh (OMT yönteminin yaratıcısı) Rational firmasının çatısı altında sahip oldukları iki yöntemi tekrar gözden geçirerek birleşik bir yöntem yaratmak için çalışmaya başladılar. Firmaya 1995 yılında Ivar Jacobson’ın (OOSE yönteminin yaratıcısı) da katılmasıyla, 3 Amigolar olarak bilinen grup, kendi yöntemlerinin güçlü yönlerini birleştirip eksiksiz bir sistem modelleme dili yaratmak üzere çalışmaya başladılar.
1996 yılında 3 Amigoların önderliğinde, Unified Modelling Language (UML) ismi verilen birleşik modelleme dilinin sonuçlandırılması amacıyla UML Partners isimli bir şirkeler birliği kuruldu. Microsoft, IBM, Oracle, Hewlett-Packard, Texas Instruments gibi dev şirketleri de içeren birlik üyeleri UML’yi kendi modellemelerinde kullanmaya başladılar. UML 1.0, taslak olarak 1997 Ocak ayında OMG’ye (Object Management Group, nesne yönelimli sistemler için standartlar belirlemek amacıyla kurulan, kar gütmeyen bir organizasyon) tanıtıldı. Birkaç aylık bir çalışmanın ardından UML 1.1, Ağustos’ta OMG’ye sunuldu ve Kasım ayında kabul edilerek, belirli bir kişi ya da şirkete ait olmayan bir modelleme dili yazılım dünyasına kazandırılmış oldu.
UML 1997’den bu yana 1.1, 1.3, 1.4 ve 1.5 gibi versiyonların ardından 2005’te çıkan 2.0 versiyonu ile birçok yönden geliştirilmiş, dildeki eksikler tamamlanmış ve hatalar ortadan kaldırılmıştır.
Grafiksel bir dil olan UML, modelleme için değişik diyagramlar kullanır. Diyagramlar, bir sistem modelini kısmen tarif eden grafiklerdir. UML diyagramları bir sistem modelini 3 farklı açıdan ele alırlar. Modelin,
-İşlevsel gereksinimler açısında, kullanıcının bakış açısından sistemin gereksinimleri vurgulanır. Kullanım Senaryosu (Use-Case) diyagramını içerir.
-Statik yapısal açısında, nesneler, nesnelere ait özellikler ve ilişkiler kullanılarak sistemin statik yapısı incelenir. Sınıf (Class) ve Birleşik Yapı (Composite Structure) diyagramlarını içerir.
-Dinamik davranış açısında, nesneler arası ortak çalışmalar ve nesnelerin durumlarındaki değişiklikler gösterilerek sistemin dinamik davranışı incelenir. Sıralama (Sequence), Faaliyet (Activity) ve Durum (Statechart) diyagramlarını içerir.
UML 2.0, 3 ana bölüme ayırabileceğimiz 13 çeşit diyagram içerir. Yapısal diyagramlarda modellenen sistemde nelerin var olması gerektiği vurgulanır. Davranış diyagramlarında modellenen sistemde nelerin meydana gelmesi gerektiğini belirtir. Davranış diyagramlarının bir alt kümesi olan Etkileşim diyagramlarında ise modellenen sistemdeki elemanlar arasındaki veri ve komut akışı gösterilir.
Yapısal Diyagramlar
Sınıf (Class) diyagramı, sistemin yapısını anlatmak için sistemde var olan sınıfları, sınıfların özelliklerini ve sınıflar arası ilişkileri kullanır. Nesneye yönelik sistemleri modellemede kullanılan en yaygın diyagramdır.
Nesne (Object) diyagramı, modellenen sistemin yapısının belirli bir andaki bütün ya da kısmi görünüşü tarif edilir.
Bileşen (Component) diyagramı, bir yazılım sisteminin hangi tür bileşenlere ayrıldığını ve bu bileşenlerin nasıl birbiriyle ilişkili olduğunu betimler. Bir bileşen genellikle bir veya birden fazla sınıf, arayüz ve iletişime karşılık gelir.
Paket (Package) diyagramı, bir sistemin hangi mantıksal gruplara bölündüğünü ve bu gruplar arasındaki bağımlılıkları betimler.
Dağılım (Deployment) diyagramı, sistemde kullanılan donanımları, bu donanımların içinde yer alan bileşenleri ve bu bileşenlerin arasındaki bağlantıları gösterir.
Birleşik Yapı (Composite Structure) diyagramı, bir sınıfın iç yapısını ve bu yapının mümkün kıldığı iletişimleri tarif eder.
Davranış Diyagramları
Kullanım Senaryosu (Use-Case) diyagramı, modellenen sistem tarafından sağlanan işlevselliği sistemde yer alan aktörleri, aktörlerin sahip olduğu kullanım senaryolarını ve bu senaryolar arasındaki bağımlılıkları göstererek açıklar.
Durum (Statechart) diyagramı, bilgisayar programlarından iş süreçlerine kadar birçok sistemi tarif eden standartlaşmış bir gösterimdir. Durumlar, geçişler, olaylar ve faaliyetler gösterilir.
Faaliyet (Activity) diyagramı, modellenen sistemdeki iş akışını adım adım gösterir. Faaliyet diyagramı kapsamlı bir komut akışını tarif eder. Faaliyetler arası akışı gösteren Durum diyagramıdır.
Etkileşim Diyagramları
Sıralama (Sequence) diyagramı, nesnelerin birbiriyle nasıl iletişim sağladıklarını sıralı iletiler şeklinde gösterir. Ayrıca nesnelerin yaşam süreleri de gösterilir.
İletişim (Communication) diyagramı, nesneler ve parçalar arasındaki etkileşimi sıralı iletiler olarak gösterir. Sınıf, Sıralama ve Kullanım Senaryoları diyagramlarındaki bilgileri kullanarak sistemin hem statik yapısını hem de dinamik davranışını gösterir.
Etkileşime Bakış (Interaction Overview) diyagramı, farklı etkileşim diyagramları kullanarak, bunlar arasındaki komut akışını gösterir. Bir başka deyişle, elemanları etkileşim diyagramları olan faaliyet diyagramlarıdır.
Zaman Akış (Timing) diyagramı, odağın zaman kısıtlamarı olduğu etkileşim diyagramıdır.
UML Ne Kazandırır?
Takım çalışmasında yardımcı olur, UML standartlaşmış uluslararası bir dildir ve bu dili bilen herkes diyagramlardan aynı şeyleri anlar. Müşteri ve teknik sorumlular diyagramlar üzerinden rahatça iletişim kurabilirler. Ekibinizde yer alan çalışma arkadaşlarınızla uyumlu bir şekilde çalışabilirsiniz ve ekibe yeni giren bir çalışan da projeye rahatlıkla dahil edilebilir.
Kodlamayı kolaylaştırır, UML ile uygulamanızın tasarımı analiz aşamasında yapıldığı için, modellemeniz bittikten hemen sonra kod yazmaya başlayabilirsiniz.
Hataları en aza indirir, UML ile bütün sistem tasarlandığı için sistemde hata çıkma olasılığı azdır. Çıkan hataları düzeltmek ise çok daha kolaydır.
Tekrar kullanılabilir bileşenleriniz artar, UML ile tüm sistem ve sistemin bileşenleri daha baştan belirlendiği için, o bölümler tekrar tekrar yazılmayacaktır.
Program kararlılığı artar, UML ile ayrıntılı gereksinim analizleri yapıldıktan sonra senaryolar belirlenir. Senaryoların baştan belirli olması programınızı daha kararlı hale getirmenizde size yardımcı olur.
Kaynak: http://e-bergi.com/y/UML
ASKON Konya’da MEVKA TeknoGirişim Girişimci-Yatırımcı Buluşmaları’na katıldım
ASKON Konya’nın MEVKA TeknoGirişim Girişimci-Yatırımcı Buluşmaları kapsamında 23 Ağustos 2023 Çarşamba günü ASKON Konya şubesinde>>>
Ağu
Matlab’da matrisin tüm elemanlarını belirli bir sayıdan nasıl çıkarırız?
Elimizde doğruluk oranlarının olduğu bir k matrisi olduğu varsayalım, bu matris içerisindeki tüm değerleri 1>>>
Şub
Matlab’ta iç içe döngüyle matris gezerek istediğimiz veriyi nasıl buluruz?
Başlık tam ifade eder mi bilmiyorum ama benim ihtiyacım olan şey 10 sütun, 1593 satıra>>>
Şub
A Review on Deep Learning-Based Methods Developed for Lung Cancer Diagnosis
Yüksek Lisans öğrencilerimden Türkan Beyza KARA’nın sunmuş olduğu “A Review on Deep Learning-Based Methods Developed>>>
Oca
İlk yabancı yazarlı ortak makalem yayınlandı
Birbirimizi hiç görmeden ve sesli olarak da hiç konuşmadan e-posta üzerinden tanışıp ortak bir çalışma>>>
4 Comments
Eki
Konya’da göz lazer ameliyatı oldum
25 yıldır takmakta olduğum ve kendisinden ayrılırken 6,5 numara olan gözlüğüme Konya’da göz lazer ameliyatımı>>>
Ağu
Tek kelimeyle beni nasıl tanımladılar?
YouTube üzerinden yapmış olduğum bir yoruma gelen yanıtta “…dürüst olun…” içeriğini görünce aklıma geçtiğimiz günlerde>>>
3 Comments
Ağu
Konya Akıllı Şehir HACKATHON’unda 3.olduk
Kısaca daha önceki yazımda bahsettiğim Konya Akıllı Şehir HACKATHON’unda 3.olduk. Selçuk Üniversitesi Teknoloji Fakültesi Bilgisayar>>>
1 Comment
May
Sentius ekibi olarak, Akıllı Şehir HACKATHON’una katıldık
Konya Akıllı Şehir HACKATHON’unda 3.olduk Konya Bilim Merkezi ile GDG Konya’nın düzenlediği Akıllı Şehir HACKATHON’una>>>
1 Comment
May
BİLMÖK 2022 için yazılmış gecikmiş bir yazı :)
Türkiye’nin en büyük öğrenci kongresi BİLMÖK 21-23 Mayıs 2022 günlerinde Konya’da Konya Teknik Üniversitesi’nin organizasyonuyla>>>
May
Genç Bakış Gazetesi’nden Beyzanur Polat’ın yaptığı haber…
Genç Bakış Gazetesi’nden Beyzanur Polat’ın yaptığı haber…>>>
Kas
Binary Sooty Tern Optimization Algorithms for solving Wind Turbine Placement Problem
Binary Sooty Tern Optimization Algorithms for solving Wind Turbine Placement Problem İndirmek için tıklayınız.>>>
Eyl
Konya Model Fabrika’yı Ziyaretim ve Konya Dijital Dönüşüm
“konya dijital dönüşüm” kelimesini Google üzerinden arattığım zaman Konya Model Fabrika‘yı keşfettim. 5 Ağustos 2021>>>
Ağu
Otomatlar, Biçimsel Diller ve Turing Makineleri – Dr. Emre Sermutlu – Cinius Yayınları
2020-2021 bahar yarıyılında Otomata Teorisi ve Biçimsel Diller dersini verirken kullanmam için Selçuk Üniversitesi Teknoloji>>>
Mar
4-6 MART 2021 ÇEVRİMİÇİ TÜBİTAK-2237-B PROJE EĞİTİMİ ETKİNLİĞİ KTÜ – TRABZON
Alanında dünyada öncü Prof. Dr. Yener EYÜBOĞLU, Prof. Dr. Asım KADIOĞLU, Prof. Dr. Nurettin YAYLI,>>>
Mar
ARDEB 1001 – 2020 Sonuçlarını Değerlendirme ve Yenilikler Toplantısı
>>>
Şub
2021 yılı içerisinde değerlendirilebilecek konferanslar
GLOBAL CONFERENCE on ENGINEERING RESEARCH online 2-5 June 2021 Abstract or Full Paper Submission: 2>>>
Şub
Sayfamda paylaştığım bütün Karikatürler silinmiştir
İsimsiz bir uyarı yorumuyla araştırdığım vakit gördüm ki bazı karikatüristler blog sayfalarında karikatür paylaşanlara dava>>>
Oca
MATLAB – Error: Functions cannot be indexed using {} or . indexing.
data = get(z9).OutputData{1}; satırında aşağıdaki şekilde hata vermekteydi. Error: Functions cannot be indexed using {}>>>
Oca
“ERASMUS+ Yüksek Öğretim” konulu seminer notları
“ERASMUS + Yüksek Öğretim” konulu seminer notları Dr. Öğretim Üyesi Kemal TÜTÜNCÜ hocam tarafından sunulan>>>
Oca