Model-View-Controller is an architectural pattern for developing user interfaces. The pattern was formulated by Trygve Reenskaug in 1978 while visiting the Xerox PARC. MVC was conceived as a general solution to the problem of users controlling complex data sets. Its first name was Model-View-Editor. It later evolved into Model-View-Controller.

The essential purpose of MVC is to bridge the gap between the user mental model and the digital model that exists in the computer.

Jim Althoff and others implemented a version of the MVC pattern for Smalltalk-80.