A Journey Through the Land of Model-View-* Design Patterns
Independent thesis Advanced level (degree of Master (One Year)), 20 credits / 30 HE creditsStudent thesis
Every software program that interacts with a user requires a user interface. Model-View-Controller (MVC) is a common design pattern to integrate a user interface with the application domain logic. MVC separates the representation of the application domain (Model) from the display of the application's state (View) and user interaction control (Controller). However, studying the literature reveals that a variety of other related patterns exists, which we denote with Model-View-* (MV*) design patterns. This thesis discusses existing MV* patterns classified in three main families: Model-View-Controller (MVC), Model-View-View Model (MVVM), and Model-View-Presenter (MVP). We take a practitioners' point of view and emphasize the essentials of each family as well as the differences. The study shows that the selection of patterns should take into account the use cases and quality requirements at hand, and chosen technology. We illustrate the selection of a pattern with an example of our practice. The study results aim to bring more clarity in the variety of MV* design patterns and help practitioners to make better grounded decisions when selecting patterns.
Place, publisher, year, edition, pages
2014. , 50 p.
patterns, model-view-controller, presenter, viewmodel, mvc, mvp, mvvm, separation of concerns, flow synchronization, observer synchronization
IdentifiersURN: urn:nbn:se:lnu:diva-36398OAI: oai:DiVA.org:lnu-36398DiVA: diva2:738269
Subject / course
Software Technology Programme, Master Programme, 120 credits
Weyns, Danny, Professor
Löwe, Welf, Professor