Model-Görünüm-Kontrol yöntemi

Giriş

İlk olarak, Smalltalk üzerinde çalışmış Trygve Reenskaug tarafından, 1979 yılında, Applications Programming in Smalltalk-80(TM):How to use Model-View-Controller makalesi ile sunulmuş olan, Model-Görünüm-Kontrol ("Model-View-Controller") tasarım yönteminin kullanım amacı büyük ve karmaşık sistemlerin tasarımında, mühendislere fikirsel bir temel sunmaktır.

Bu temelde önerilen ana öğeler şunlardır:

  • Model: sistemin temel modelini içerir. Sistemin dinamiklerinin hangi elemanlar etrafından işletileceğini, tasarımın üzerine kurulacağı temel yapı taşlarını belirtir. Bilgisayar dünyasındaki karşılığı bir programın veri tipleri ve veri isimleridir.
  • Görüntü: her sistemin kullanıcıları ve/veya geliştiricileri bir şekilde sistemin işleyişini görüntülemek ihtiyacı duyarlar. Tasarımın görüntü kısmında bu ihtiyaç için gerekli tasarım ortaya çıkarılır.
  • Kontrol: her sistem bir çeşit kontrol elemanına gereksinim duyar. Tasarımın kontrol kısmında, ilgili kontrol elemanı tasarlanır.


Model-Görüntü-Kontrol yönteminin temel faydası, en üst seviyeden tasarıma olanak vermesidir. Neredeyse olası bütün sistemler için geçerli olan üç koldan problemin çözümü için verimli bir düşünsel alt yapı kurar.

Yöntemin ortaya koyduğu bir mucize yoktur. Ancak yöntemin kullanılmadığı zaman oluşan tasarım karmaşasının götürüsü çoktur. Sistematik bir şekilde planlama yapılmadan oluşturulan tasarımlar çoğu zaman karmaşık yumaklara dönerler.

Örnek uygulama

Örnek olarak bir robot yazılımını ele alalım.

Model



Robot yazılımının kullandığı bütün değişkenler kümesi, robot sisteminin modelini oluşturur. Bu modelin ortaya çıkarılması için yazılımda kullanılan bütün değişkenler kategorilerine göre listelenirler. Hazırlanan listenin birkaç faydası şöyle sıralanabilir:
  • Modelin durumu herhangi bir anda analiz edilebilir. Modelin bu şekilde açıkça ortaya konması, geliştiricilerin heran en son geçerli olan yapıya hızlı ulaşımını sağlar.
  • Kolayca ulaşılabilen modelin üzerinde yapılan sık kontroller, modelin sağlıklı gelişimi için vazgeçilmez bir kaynaktır. Modelin eksikleri yada fazlaları teşhis edilip, genel tasarımın ilerlemesi için verimli bir yol haritası çiziminde faydalı olacaktır.
  • Model deki çakışmalar farkedilebilir. Aynı değerin birkaç yerde bulunan kopyalarının bir kısmı unutuluyorsa yada yanlış zamanlarda eşitleniyorlarsa, yanlışlıklar olacaktır.
  • Birden çok geliştirici tarafından ortak bir şekilde hazırlanan model, geliştiriciler arasında iletişim kurulması için sağlıklı bir yol oluşturur. Model üzerinden kurulan iletişim hem yazılan programların iletişimini kolaylaştırır, hem de olası kod tekrarlarını önler.
  • Model aynı zamanda belgeleme amacıyla da kullanılabilir

Görüntü



Robot kontrol sistemi tasarımının görüntü aşamasında tasarlanacak yapılar, sadece ve sadece belirtilen modelin değişik şekillerde nasıl görüntüleneceğini belirtir. Ve sadece bunu yapar. Bu sayede tasarlanan model çalışırken herhangi bir andaki görüntüsüne ulaşmak için gerekli tasarım ortaya çıkmış olur.

Görüntü tasarımı hem geliştiriciler için bir araç hem de kullanıcılar için görsel bir arayüz olarak düşünülebilir.

Kontrol



Robot kontrol sistemi, aynı görüntü tasarımının görüntüleme işleri için yaptığını robot sisteminin kontrolü için yapar. Kontrol tek başına tasarlandığında zor bir işlem değildir, ancak hem görüntü tasarımı hem de model tasarımı ile beraber yapılmaya çalışıldığında eksiklerin doğması kaçınılmazdır.

Robot kontrol sistemleri, bir robotun işlemesi için gereken bütün fonksiyonları içerir. Bu fonksiyonlar herhangi bir anda, robotun sisteminin bir sonraki andaki adımını belirtir.

Sonuç

Model-Görüntü-Kontrol tasarım yönteminin temel getirisi bir sistemin tasarımındaki önemli adımları ayrı birer adım olarak tanımlamaktır. Herbir parça kendi içinde kontrollü ve diğer yöntemlere göre daha başarılı bir şekilde yapılabilir.

Sistemin modelinin tasarlanması sırasında sistemin genel sınırları çizilir. Bu sınırlar içerisinde sistemin nasıl davranacağı nispeten daha sınırlı olduğu için sonuçta daha başarılı bir tasarım ortaya çıkar.

Görüntüleme ve kontrol tasarımının model tanımlanmasından ayrılması, bu işlemleri daha basitleşir. Ayrıca görüntüleme ve kontrol tasarımının birbirlerinden ayrılması, bir anda bir işin yapılmasını sağlar. Böylece her bir adım daha verimli bir şekilde oluşturulabilir.

Sonuçta anlatılan methodun kullanılması başarı için mutlak anahtar yada şart değildir. Bu güne kadar birçok başarılı yazılım bu mehtod kullanılmadan ortaya konmuştur ve ileride de konacaktır. Ancak anlatılan methodun kullanılması geliştirme sürecini daha hızlı ve verimli kılacaktır.

Referanslar: