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: