An Empirical Evaluation and Comparison of the Impact of MVVM and MVC GUI Driven Application Architectures on Maintainability and Testability
Amy Wilson, Fadi I. Wedyan, Safwan Omari · 2022
Model View Controller (MVC) and Main-View-ViewModel (MVVM) are two similar, but different, architectural frameworks that utilize differing sets of components to produce a graphical user interface driven application. The primary difference between these two architectures resides in MVC’s use of a controller, MVVM’s use of a viewmodel, and how these two components interact with their respective views. These differing usages are factors that effect how tightly coupled their layered systems are and effects the ability to test and maintain systems built using these architectures. This paper seeks to explain both frameworks, evaluate a sample code base, collect metrics, and then compare the testability and maintainability of both architectures.