Modelleme Dili Nedir?

İnsanlar merak duygusu ile donatılmış varlıklardır. Çağlar boyunca çevrelerinde bilmedikleri ne varsa merak duygusu hemen kabarmış, bilmediklerinin üzerine giderek öğrenmek istemiş ve bazen de bu uğurda canlarından olmuşlardır. Çevremizde her gün 5 duyu organımızla algılayabileceğimiz ve algılayamayacağımız onlarca olay gerçekleşmektedir. Bunların bir kısmını anında öğrenebiliriz. Örneğin bir yerden ses gelir ve sesin kaynağına gidip hemen nedenini öğrenebiliriz. Fakat bir şeyin nedenini öğrenmek her zaman bu kadar kolay olmayabilir.

Bilim adamları asırlardır makro ve mikro evrendeki olayları incelemeye almışlardır. Yıldızlar, gezegenler, güneş sistemleri ve galaksiler gibi bizim boyumuzu aşan konularla uğraştıkları gibi, virüsler, bakteriler ve atomlar gibi bizim çıplak gözle göremeyeceğimiz pek çok şeyi de araştırmaktadırlar. Peki bizim boyumuzu aşan veya bizim çıplak gözle görmemizin imkansız olduğu şeyleri nasıl bu şekilde araştırıp bilgi sahibi olabilirler?

Elbette makro evren için teleskop, mikro evren için de mikroskop gibi cihazlarla bunu yaparlar. Ancak araştırmalar sırasında her şey umulduğu gibi gitmeyebilir. Örneğin mikroskop altında görünen bir virüsün belli başlı davranışları hakkında bilgi sahibi olsanız bile, onun bütün mekanizmasını çözmek için ya çok fazla gözlem yapmalı ya da elinizde olan verilerden bir model oluşturup bu model üzerinden çıkarımlar yapmalısınız. Örneğin bu yazıyı yazdığım günlerde ülkemizin ve bütün dünyanın mücadele ettiği Corona Virüsü’nün, aylar geçmesine ve üzerinde neredeyse bütün dünyanın çalışmasına rağmen hala davranışları tam olarak anlaşılamamış ve tedavisi bulunamamıştır.

İşte bu gibi konularda modelleme hayati bir önem kazanır. Modelleme (Bilimsel Modelleme, Scientific Modelling), dünya üzerinde bulunan bir özelliği veya onun bir kısmını daha kolay bir biçimde anlamak, tanımlamak, ölçmek, görselleştirmek veya simüle etmek için varolan ve genellikle kabul edilmiş olan bir bilgiden yola çıkarak gerçekleştirilen bilimsel bir aktivitedir.[1] Model ise bu aktivitenin bir sonucudur. Modelleme hem bir şeyi daha iyi anlamak hem de bilmeyen kişilere daha iyi aktarmak amacıyla yapılabilir.

Örneğin güneş sistemimizdeki her bir gezegenin belli bir sırası, büyüklüğü ve dönme periyodu vardır. Bu gezegenlerin bilgilerini ve birbirleri arasındaki ilişkileri insanlara anlatmak için çeşitli modellemeler yapılabilir. Bu modelleme bilgisayar ortamındaki çizimlerle veya küre şeklindeki cisimleri belli bir biçimde ard arda yerleştirerek yapılabilir. Örneğin bir okul projesinde yapılmış güneş sistemi modeli şöyledir:

Figür 1: Güneş Sistemi Modelleme Örnek Okul Projesi[2]

Modellemenin pek çok farklı türü bulunmaktadır. Veri modelleme, ayrık modelleme, ekonomik modeller, deneysel modelleme, sistem modelleme, matematiksel modelleme bunlardan bazılarıdır. Bizim burada ilgileneceğimiz tür ise Yazılım Modelleme (Software Modelling) konusudur. Tıpkı diğer konularda olduğu gibi yazılım dünyasında da implementasyondan önce çeşitli aşamalar bulunur. Bu aşamalar şöyle özetlenebilir:

Figür 2: Yazılım Geliştirme Yaşam Döngüsü Aşamaları[3]

İşte burada planlama (planning) ve analiz (analysis) aşamalarında yazılım modelleme tekniklerine ihtiyaç duyulur. Çünkü yazılımlar oldukça karmaşık ve belirsiz olabilirler. Yazılımı yazan kişinin ihtiyaçları daha iyi anlaması için yazılımın görsel veya metinsel olarak modellenmesi gerekir. Peki bunu nasıl yapabiliriz? Tıpkı yazılım dünyasındaki programlama dilleri gibi modelleme dünyasında da bu işi standart hale getiren Modelleme Dili (Modelling Language) kavramı ortaya çıkmıştır. Modelleme dili, belli kurallar ile tanımlanmış bir yapı içerisinde yer alan bir bilgiyi veya sistemi ifade etmek için kullanılan yapay bir dildir.[4] Modelleme dili grafiksel ve metinsel olmak üzere ikiye ayrılır.

Grafiksel modelleme dilleri çeşitli semboller ve bu semboller arasındaki ilişkiyi gösteren çizgiler ile belirtilen diyagramlardır. Diyagramlar üzerinde kullanılan bu semboller ve çizgiler önceden belirlenmiş belli kurallara göre çizilirler. Grafiksel modelleme dillerine örnek olarak şu diller verilebilir:

  • EXPRESS
  • EXPRESS-G
  • Flowchart
  • IDEF
  • SDL
  • UML
  • ADL
  • AADL
Figür 3: EXPRESS-G Gösterimi ile Hazırlanmış Bir Diyagram[5]

Metinsel modelleme dilleri ise çeşitli anahtar kelimeler ile bazen düz bir metin bazen ise formatlı bir liste gibi çeşitli biçimlerde karşımıza çıkabilen bir modelleme dili türüdür. Günümüzde genellikle grafiksel modelleme dillerinden faydalanılsa da biraz daha fazla ayrıntı gereken işlerde metinsel modelleme dilleri de kullanılabilmektedir.

Grafiksel modelleme dillerinin çok fazla örneği bulunmaktadır. Bunun en önemli nedeni bu dillerin sadece yazılımda değil; proje yönetimi, sistem mühendisliği, askeri planlama gibi pek çok farklı alanda da kullanılıyor olmasındandır. Örneğin daha önceden adını duyma ihtimaliniz yüksek olan Flowchart (Akış Şeması) ile hem algoritmaları görsel olarak modelleyebilir hem de herhangi bir sistemdeki bir işi adım adım modelleyebilirsiniz. Belli alanlara özel modelleme dilleri tanımlı olsa da bir modelleme dili birçok farklı alanda da kullanılabilmektedir.

Modelleme dillerinden yazılım ile en ilişkili olan ve adını en çok duyduğumuz dil UML (Unified Modelling Language) dilidir. Bu dil ile nesne yönelimli programlama (object-oriented programming) yaklaşımını doğrudan modelleyebiliriz. Bu dil ile ilgili ayrıntılara bu yazıda girmeyeceğim. Aşağıda UML diyagramlarından olan sınıf diyagramı (class diagram) örneğini görebilirsiniz:

Figür 4: UML Sınıf Diyagramı Örneği[6]

Bu yazıda modellemenin önemini çeşitli örneklerle anlatmaya çalışıp modellemeyi gerçekleştirmekte önemli bir rol oynayan modelleme dillerine değindim. Ayrıca modelleme dillerinin çeşitlerinden ve grafiksel modelleme dilleri ile ilgili örneklerden bahsettim. Bu yazı UML diyagramları başta olmak üzere ileride yazacağım ve modelleme dilleri ile ilgili olan pek çok yazıya giriş niteliği taşımaktadır.

REFERANSLAR

  1. https://en.wikipedia.org/wiki/Scientific_modelling
  2. https://d1whtlypfis84e.cloudfront.net/guides/wp-content/uploads/2019/09/03115156/Solar-System-768×404.jpg
  3. http://www.dignitasdigital.com/wp-content/uploads/2016/07/original-blog-image.png
  4. https://en.wikipedia.org/wiki/Modeling_language
  5. https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/A_01_Audio_compact_disc_collection.svg/1024px-A_01_Audio_compact_disc_collection.svg.png
  6. https://www.researchgate.net/profile/Susanne_Graf/publication/220643515/figure/fig8/AS:670326090371089@1536829602547/UML-class-diagram-for-the-example-31-Running-example-In-order-to-illustrate-both.ppm
5 6 votes
Article Rating
Subscribe
Bildir
guest

0 Yorum
Eskiler
En Yeniler Beğenilenler
nera

verdiğiniz bilgilerden dolayı teşekkür ederim sizin web sitenizi yakından takip edeceğim

ahmet

Hocam yüreyiğinize sağlık okudukça okuyası gelior insanın çok güzel yazmışsınız teşşekür ederim.