MVC veya model görünümü denetleyicisi, yazılımda kullanılan bir tekniktir. Temel amacı, yazılımın veri işleme şekli ile yazılımın kullanıcı ile etkileşim biçimi arasında bir ayrım oluşturmaktır. Bu ayrım, işlemlerin ayrı ayrı ele alınabileceği, geliştirilebileceği ve kontrol edilebileceği anlamına gelir; bu daha verimli olabilir.
Süreç, en basit seviyede, tüm yazılımların aynı üç aşamalı işlevi yerine getirdiği kavramına dayanıyor. İlk önce bir kullanıcı veri girişi yapar, ardından yazılım verileri işler ve son olarak da yazılım sonuçları yeni bir veri kümesi olarak verir. Bunun çok basit bir örneği, bir hesap makinesine “2 + 2 =” yazan bir kullanıcı, cevabı hesaplayan hesap makinesi ve ardından “4” görüntüleyen hesap makinesidir.
MVC sisteminde, bilgisayarın verileri işleme şekli model olarak bilinir. Sonuçların çıktısı görünüm olarak bilinir. Kullanıcı tarafından veri girişi kontrolör olarak bilinir. Görünümün ve denetleyicinin programın giriş ve çıkışı kontrol eden bölümleri olduğunu hatırlamak önemlidir. Terimler genellikle klavye veya monitör gibi fiziksel nesnelere atıfta bulunmaz.
MVC kullanmanın amacı, bir yazılım işleminin farklı elemanlarını izole etmeyi kolaylaştırmaktır. Sistem kullanılarak, bir program etkili bir şekilde üç bölüme ayrılır: veri işleme, giriş süreci ve çıktı süreci. Bu, programın bir kısmındaki değişikliklerin, programın diğer kısımlarını da yeniden yazmak zorunda kalmadan daha sorunsuz bir şekilde yapılabileceği anlamına gelir.
Model görünümü denetleyici sistemi, Smalltalk başlıklı bir programlama dilinde öncülük etmiş sayılır. 1970'lerde Xerox'ta oluşturulan Smalltalk, insanlara bilgisayar modelinin nesnesini öğretmek için kısmen tasarlanmıştır. Basitçe ifade etmek gerekirse, bu bir hesaplama görevinin ayrı parçalara bölünmesini ve programı bu parçaların etkileşime girme şeklini oluşturmayı içerir. Smalltalk ayrıca, bir program çalışırken bile gözden geçirilebilen dinamik bir programlama örneğiydi.
MVC sistemi genellikle dinamik veya etkileşimli web sitelerinde kullanılanlar gibi web tabanlı yazılımlarda kullanılır. Bu durumlarda görünüm, bir sorgu işledikten sonra yazılım tarafından oluşturulan HTML gibi bir koddur. Örneğin, bir arama motorunda, arama sorgusu kutusu denetleyici olur ve sonuçlar görünümde görünür.


