Model-view-controller (MVC) is a prevalent architectural design pattern in modern Software development that promotes the separation of an Application into 3 components: This architecture has risen in popularity as this isolation of data (the model), user-interface (the view) and logic (the controller) allow each component to be developed, tested and maintained independently.