A software architectural pattern that facilitates the separation of the development of the graphical user interface from the development of the business logic or back-end logic (the data model).
"MVVM enables developers to separate their UI design (View) from the underlying models through a ViewModel, which facilitates two-way data binding and modular development."