This document discusses the model-view-controller (MVC) architectural pattern. It originated in the Smalltalk-80 programming language in the late 1970s for building user interfaces. MVC segregates an application's data and presentation into three distinct components: the model, the view, and the controller. The model manages the behavior and data of the application domain. The view renders the model into a form suitable for interaction, such as a user interface element. The controller receives user input and initiates a response by making calls on model objects or updating the view.