The Model-View-Controller architecture separates the domain logic of the software from the actual user interface elements. This decoupling of components allows each part of the software to be developed, tested, and maintained independently.
In the MVC architecture, the model component manages the business logic of the software, including calculations, data access, and communications with external data sources. The view component manages only the graphics-related functions of the user interface. The controller component contains the control logic that governs communication between the model component and the view component.