vignette|370x370px|Interactions entre le modèle, la vue et le contrôleur. Modèle-vue-contrôleur ou MVC est un motif d'architecture logicielle destiné aux interfaces graphiques, lancé en 1978 et très populaire pour les applications web. Le motif est composé de trois types de modules ayant trois responsabilités différentes : les modèles, les vues et les contrôleurs. Un modèle (Model) contient les données à afficher ; Une vue (View) contient la présentation de l'interface graphique ; Un contrôleur (en) contient la logique concernant les actions effectuées par l'utilisateur. Ce motif est utilisé par de nombreux frameworks pour applications web tels que Ruby on Rails, Grails, ASP.NET MVC, Spring, Struts, Symfony, Apache Tapestry, Laravel, AdonisJS, Django ou AngularJS. Le motif MVC a été créé par Trygve Reenskaug lors de sa visite du Palo Alto Research Center (abr. PARC) en 1978. Le nom original est en, puis il a été rapidement renommé en. Le patron MVC a été utilisé la première fois pour créer des interfaces graphiques avec le langage de programmation Smalltalk en 1980. Une application conforme au motif MVC comporte trois types de modules : les modèles, les vues et les contrôleurs. Modèle Élément qui contient les données ainsi que de la logique en rapport avec les données : validation, lecture et enregistrement. Il peut, dans sa forme la plus simple, contenir uniquement une simple valeur, ou une structure de données plus complexe. Le modèle représente l'univers dans lequel s'inscrit l'application. Par exemple pour une application de banque, le modèle représente des comptes, des clients, ainsi que les opérations telles que dépôt et retraits, et vérifie que les retraits ne dépassent pas la limite de crédit. Vue Partie visible d'une interface graphique. La vue se sert du modèle, et peut être un diagramme, un formulaire, des boutons, etc. Une vue contient des éléments visuels ainsi que la logique nécessaire pour afficher les données provenant du modèle. Dans une application de bureau classique, la vue obtient les données nécessaires à la présentation du modèle en posant des questions.
Pascal Fua, François Fleuret, Alexandre Massoud Alahi, Timur Bagautdinov
Jean-Yves Le Boudec, Eleni Stai, Mia Primorac, Maaz Mashood Mohiuddin
Nikolaos Geroliminis, Dimitrios Tsitsokas, Anastasios Kouvelas